import 'reflect-metadata'; jest.mock('mixpanel-browser/src/loader-module', () => ({})); import { Http } from '@angular/http'; import { GeneralBrandService, } from './../../../helpers/services/index'; import TranslateBrandingLoaderService from './translate-branding-loader.service'; import * as mock from './../../../mocks/index'; const initMockHttp = mock.http(jest); const initTranslateBrandingLoaderService = ( http?: Http, brandService?: GeneralBrandService, ) => { return new TranslateBrandingLoaderService( http, brandService, ); }; describe('getTranslation', () => { // tslint:disable-next-line test('It calls brandService.getBrandSettings', () => { const brandService = {} as GeneralBrandService; brandService.getBrandSettings = jest.fn() .mockReturnValue({}); const translateBrandingLoaderService = initTranslateBrandingLoaderService( initMockHttp(), brandService, ); translateBrandingLoaderService.getTranslation( 'test', ); expect(brandService.getBrandSettings) .toHaveBeenCalled(); }); // tslint:disable-next-line test('If brandService returns brandSettings with a matching alternativeTranslation, it calls http.get with the translationUrl', () => { const brandService = {} as GeneralBrandService; brandService.getBrandSettings = jest.fn() .mockReturnValue({ alternativeTranslations: { test: 'abc', }, }); const http = initMockHttp(); const translateBrandingLoaderService = initTranslateBrandingLoaderService( http, brandService, ); translateBrandingLoaderService.getTranslation( 'test', ); expect(http.get) .toHaveBeenCalledWith('abc'); }); // tslint:disable-next-line test('If brandService does not return brandSettings with a matching alternativeTranslation, it calls http.get with the url based on the language selected', () => { const brandService = {} as GeneralBrandService; brandService.getBrandSettings = jest.fn() .mockReturnValue({}); const http = initMockHttp(); const translateBrandingLoaderService = initTranslateBrandingLoaderService( http, brandService, ); translateBrandingLoaderService.getTranslation( 'test', ); expect(http.get) .toHaveBeenCalledWith('../assets/translations/test.json'); }); });