72 lines
2.3 KiB
TypeScript

import '../fixtures/window';
import flagsCtrl from '../../src/flags';
import domready from 'domready';
jest.mock('domready', () => {
return (fn) => fn();
});
// domready.mockImplementation((fn) => fn());
describe('flags 测试', () => {
it('flags', () => {
const mockFlagsChange = jest.fn();
flagsCtrl.flags = [];
const off = flagsCtrl.onFlagsChange(mockFlagsChange);
flagsCtrl.add('a');
expect(mockFlagsChange).toHaveBeenCalledTimes(1);
off();
flagsCtrl.add('b');
expect(mockFlagsChange).toHaveBeenCalledTimes(1);
expect(flagsCtrl.getFlags()).toEqual(['a', 'b']);
flagsCtrl.flags = [];
flagsCtrl.setDragMode(true);
expect(flagsCtrl.getFlags()).toEqual(['drag-mode']);
flagsCtrl.setDragMode(false);
expect(flagsCtrl.getFlags()).toEqual([]);
flagsCtrl.setPreviewMode(true);
expect(flagsCtrl.getFlags()).toEqual(['preview-mode']);
flagsCtrl.setPreviewMode(false);
expect(flagsCtrl.getFlags()).toEqual(['design-mode']);
flagsCtrl.flags = [];
flagsCtrl.setHideSlate(true);
expect(flagsCtrl.getFlags()).toEqual(['hide-slate']);
flagsCtrl.setHideSlate(false);
expect(flagsCtrl.getFlags()).toEqual([]);
flagsCtrl.flags = [];
flagsCtrl.setSlateFixedMode(true);
expect(flagsCtrl.getFlags()).toEqual(['slate-fixed']);
flagsCtrl.setHideSlate(true);
expect(flagsCtrl.getFlags()).toEqual(['slate-fixed']);
flagsCtrl.setSlateFixedMode(false);
expect(flagsCtrl.getFlags()).toEqual([]);
flagsCtrl.flags = [];
flagsCtrl.setSlateFullMode(true);
expect(flagsCtrl.getFlags()).toEqual(['slate-full-screen']);
flagsCtrl.setSlateFullMode(false);
expect(flagsCtrl.getFlags()).toEqual([]);
expect([].slice.apply(document.documentElement.classList)).toEqual(flagsCtrl.getFlags());
flagsCtrl.flags = [];
// setWithShell
flagsCtrl.setWithShell('shellA');
expect(flagsCtrl.getFlags()).toEqual(['with-iphone6shell']);
flagsCtrl.setWithShell('iPhone6');
expect(flagsCtrl.getFlags()).toEqual(['with-iphone6shell']);
flagsCtrl.flags = [];
// setSimulator
flagsCtrl.setSimulator('simA');
expect(flagsCtrl.getFlags()).toEqual(['simulator-simA']);
flagsCtrl.setSimulator('simB');
expect(flagsCtrl.getFlags()).toEqual(['simulator-simB']);
});
});