import 'reflect-metadata'; import { AddIOSVersionClassService, } from './add-ios-version-class.service'; import { SemverInterface, } from './../../../models/index'; const initAddIOSVersionClassService = ( document?: Document, currentIOSVersion?: SemverInterface, ) => { return new AddIOSVersionClassService( document, currentIOSVersion, ); }; describe('addIOSVersionClass', () => { const initAddIOSVersionClassData = ({ currentIOSVersion, } = { currentIOSVersion: { major: 10, } as SemverInterface, }) => { const document = { body: { classList: {}, }, } as Document; document.body.classList.add = jest.fn(); const addIOSVersionClassService = initAddIOSVersionClassService( document, currentIOSVersion, ); return { addIOSVersionClassService, document, }; }; // tslint:disable-next-line test('If there is a current ios version, add the major version to the document body', () => { const { addIOSVersionClassService, document, } = initAddIOSVersionClassData(); addIOSVersionClassService.addIOSVersionClass(); expect(document.body.classList.add).toHaveBeenCalledWith('u-ios-10'); }); // tslint:disable-next-line test('Does not add a class to the document body if htere is no current ios version', () => { const { addIOSVersionClassService, document, } = initAddIOSVersionClassData({ currentIOSVersion: null, }); addIOSVersionClassService.addIOSVersionClass(); expect(document.body.classList.add).not.toHaveBeenCalled(); }); });