UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

64 lines (63 loc) 2.64 kB
import { it, describe, expect, beforeAll, afterAll } from 'vitest'; import StateToggleManager from './stateToggleManager'; import MockHelper from '../tests/mockhelper'; import StateManager from '../state/statemanager'; let stateManager; beforeAll(() => { MockHelper.startMocking(); stateManager = StateManager.getInstance(); }); afterAll(() => { MockHelper.stopMocking(); }); describe('StateToggleManager class', () => { let state; let stateToggleManager; const paths = [ 'interface.helpVisible', 'interface.drawingPanelVisible', 'interface.printPanelVisible', 'state.language', 'interface.userPreferencesPanelVisible', 'interface.sharePanelVisible' ]; beforeAll(() => { state = stateManager.state; state.interface.helpVisible = true; state.interface.drawingPanelVisible = false; state.interface.printPanelVisible = true; state.interface.sharePanelVisible = false; state.interface.userPreferencesPanelVisible = false; state.language = 'fr'; stateToggleManager = new StateToggleManager(paths, stateManager); }); it('initToggle', () => { expect(state.interface.helpVisible).toBeTruthy(); expect(state.interface.drawingPanelVisible).toBeFalsy(); expect(state.interface.printPanelVisible).toBeFalsy(); expect(state.interface.sharePanelVisible).toBeFalsy(); expect(state.interface.userPreferencesPanelVisible).toBeFalsy(); expect(state.language).toEqual('fr'); }); it('toggles by watching', () => { state.interface.drawingPanelVisible = true; expect(state.interface.helpVisible).toBeFalsy(); expect(state.interface.drawingPanelVisible).toBeTruthy(); expect(state.interface.printPanelVisible).toBeFalsy(); expect(state.interface.sharePanelVisible).toBeFalsy(); expect(state.interface.userPreferencesPanelVisible).toBeFalsy(); }); it('deactivateAll', () => { stateToggleManager.deactivateAll(); expect(state.interface.helpVisible).toBeFalsy(); expect(state.interface.drawingPanelVisible).toBeFalsy(); expect(state.interface.printPanelVisible).toBeFalsy(); expect(state.interface.sharePanelVisible).toBeFalsy(); expect(state.interface.userPreferencesPanelVisible).toBeFalsy(); }); it('filterValidTogglePaths', () => { const filteredPaths = StateToggleManager.filterValidTogglePaths(stateManager, paths); expect(filteredPaths).not.toContain(paths[3]); expect(filteredPaths.length).toEqual(5); }); });