2024-11-08 17:32:05 +02:00
|
|
|
import { AppState, createAppDefaultWindowState } from './app.reducer';
|
2021-09-04 13:37:22 +02:00
|
|
|
import appReducer, { createAppDefaultState } from './app.reducer';
|
|
|
|
|
2023-02-20 17:02:29 +02:00
|
|
|
describe('app.reducer', () => {
|
2021-09-04 13:37:22 +02:00
|
|
|
|
2023-03-08 21:23:49 +02:00
|
|
|
it('should handle DIALOG_OPEN', async () => {
|
2021-09-04 13:37:22 +02:00
|
|
|
const state: AppState = createAppDefaultState({}, {});
|
|
|
|
|
|
|
|
let newState = appReducer(state, {
|
|
|
|
type: 'DIALOG_OPEN',
|
|
|
|
name: 'syncWizard',
|
|
|
|
});
|
|
|
|
|
|
|
|
expect(newState.dialogs.length).toBe(1);
|
|
|
|
expect(newState.dialogs[0].name).toBe('syncWizard');
|
|
|
|
|
|
|
|
expect(() => appReducer(newState, {
|
|
|
|
type: 'DIALOG_OPEN',
|
|
|
|
name: 'syncWizard',
|
|
|
|
})).toThrow();
|
|
|
|
|
|
|
|
newState = appReducer(newState, {
|
|
|
|
type: 'DIALOG_CLOSE',
|
|
|
|
name: 'syncWizard',
|
|
|
|
});
|
|
|
|
|
|
|
|
expect(newState.dialogs.length).toBe(0);
|
|
|
|
|
|
|
|
expect(() => appReducer(newState, {
|
|
|
|
type: 'DIALOG_CLOSE',
|
|
|
|
name: 'syncWizard',
|
|
|
|
})).toThrow();
|
|
|
|
|
|
|
|
newState = appReducer(newState, {
|
|
|
|
type: 'DIALOG_OPEN',
|
|
|
|
name: 'syncWizard',
|
|
|
|
});
|
|
|
|
|
|
|
|
newState = appReducer(newState, {
|
|
|
|
type: 'DIALOG_OPEN',
|
|
|
|
name: 'setPassword',
|
|
|
|
});
|
|
|
|
|
2021-11-15 21:27:31 +02:00
|
|
|
expect(newState.dialogs).toEqual([
|
|
|
|
{ name: 'syncWizard', props: {} },
|
|
|
|
{ name: 'setPassword', props: {} },
|
|
|
|
]);
|
2021-09-04 13:37:22 +02:00
|
|
|
});
|
|
|
|
|
2024-11-08 17:32:05 +02:00
|
|
|
it('showing a dialog in one window should hide dialogs with the same ID in background windows', () => {
|
|
|
|
const state: AppState = {
|
|
|
|
...createAppDefaultState({}, {}),
|
|
|
|
backgroundWindows: {
|
|
|
|
testWindow: {
|
|
|
|
...createAppDefaultWindowState(),
|
|
|
|
windowId: 'testWindow',
|
|
|
|
|
|
|
|
visibleDialogs: {
|
|
|
|
testDialog: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
const newState = appReducer(state, {
|
|
|
|
type: 'VISIBLE_DIALOGS_ADD',
|
|
|
|
name: 'testDialog',
|
|
|
|
});
|
|
|
|
|
|
|
|
expect(newState.backgroundWindows.testWindow.visibleDialogs).toEqual({});
|
|
|
|
expect(newState.visibleDialogs).toEqual({ testDialog: true });
|
|
|
|
});
|
|
|
|
|
2021-09-04 13:37:22 +02:00
|
|
|
});
|