import { ServiceErrorController, ServiceErrorField } from './ServiceError'; import { ErrorScroll } from '../../util/ErrorScroll'; import { Mock, IMock, It, Times } from 'typemoq'; import { expect } from 'chai'; interface ServiceErrorControllerFakeForm extends angular.IFormController { fakeField: ServiceErrorField; } describe('Service error directive', () => { it('should bind a service error to the form', () => { const errorScroll = Mock.ofType(); const $setPristine = Mock.ofType<() => void>(); const controller = new ServiceErrorController(errorScroll.object); const fakeForm = { fakeField: { $setPristine: $setPristine.object } } as ServiceErrorControllerFakeForm controller.form = fakeForm; controller.serviceError = { code: '', errorList: [{ id: 'fakeField', description: 'fakeDescription' }] }; expect(fakeForm.fakeField.serviceError).to.equal("fakeDescription"); $setPristine.verify(x => x(), Times.once()) }); });