benjamincharity
12/17/2016 - 6:40 PM

Test a Pipe with dependencies. https://medium.com/google-developer-experts/angular-2-testing-guide-a485b6cb1ef0#.4rso4xrje

import { TestBed, inject } from '@angular/core/testing';

import { ConvertStatusPipe } from './convert-status.pipe';
import { ConversationStatus } from '@remedy/models';
import { LoggingService } from '../core/services/logging.service';
import { LoggingServiceMock } from './../core/services/logging.service.mock';

describe(`ConvertStatusPipe`, () => {
    let pipe;

    beforeEach(() => TestBed.configureTestingModule({
        providers: [
            ConvertStatusPipe,
            {
                provide: LoggingService,
                useClass: LoggingServiceMock,
            },
        ],
    }));

    beforeEach(inject([ConvertStatusPipe], p => {
        pipe = p;
    }));


    it(`transforms '0' to 'new'`, () => {
        const actual = pipe.transform(0, ConversationStatus);
        const expected = ConversationStatus[0];

        expect(actual).toBe(expected);
    });


    it(`should log an error if the output is incorrect`, () => {
        pipe.transform('closed');

        expect(pipe.loggingService.warn).toHaveBeenCalled();
    });

});