Skip to content

Commit 25022d9

Browse files
committed
fix: add tests
1 parent 0fb8703 commit 25022d9

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/components/Dialog/__tests__/DialogsManager.test.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ describe('DialogManager', () => {
88
const dialogManager = new DialogManager({ id });
99
expect(dialogManager.id).toBe(id);
1010
});
11+
1112
it('initiates with default options', () => {
1213
const mockedId = '12345';
1314
const spy = jest.spyOn(Date.prototype, 'getTime').mockReturnValueOnce(mockedId);
1415
const dialogManager = new DialogManager();
1516
expect(dialogManager.id).toBe(mockedId);
1617
spy.mockRestore();
1718
});
19+
1820
it('creates a new closed dialog', () => {
1921
const dialogManager = new DialogManager();
2022
expect(Object.keys(dialogManager.state.getLatestValue().dialogsById)).toHaveLength(0);
@@ -142,4 +144,33 @@ describe('DialogManager', () => {
142144
expect(dialogManager.openDialogCount).toBe(1);
143145
expect(Object.keys(dialogManager.state.getLatestValue().dialogsById)).toHaveLength(1);
144146
});
147+
148+
it('marks dialog for removal', () => {
149+
jest.useFakeTimers();
150+
151+
const dialogManager = new DialogManager();
152+
dialogManager.getOrCreate({ id: dialogId });
153+
dialogManager.open({ id: dialogId });
154+
dialogManager.markForRemoval(dialogId);
155+
156+
jest.runAllTimers();
157+
158+
expect(dialogManager.openDialogCount).toBe(0);
159+
expect(Object.keys(dialogManager.state.getLatestValue().dialogsById)).toHaveLength(0);
160+
});
161+
162+
it('cancels dialog removal if it is referenced again quickly', () => {
163+
jest.useFakeTimers();
164+
165+
const dialogManager = new DialogManager();
166+
dialogManager.getOrCreate({ id: dialogId });
167+
dialogManager.open({ id: dialogId });
168+
dialogManager.markForRemoval(dialogId);
169+
dialogManager.getOrCreate({ id: dialogId });
170+
171+
jest.runAllTimers();
172+
173+
expect(dialogManager.openDialogCount).toBe(1);
174+
expect(Object.keys(dialogManager.state.getLatestValue().dialogsById)).toHaveLength(1);
175+
});
145176
});

0 commit comments

Comments
 (0)