diff --git a/preload.js b/preload.js index 63a544932d..9975439e52 100644 --- a/preload.js +++ b/preload.js @@ -564,6 +564,7 @@ try { /* eslint-disable global-require, import/no-extraneous-dependencies */ require('./ts/test-electron/models/messages_test'); require('./ts/test-electron/linkPreviews/linkPreviewFetch_test'); + require('./ts/test-electron/state/ducks/calling_test'); delete window.describe; diff --git a/ts/test/state/ducks/calling_test.ts b/ts/test-electron/state/ducks/calling_test.ts similarity index 62% rename from ts/test/state/ducks/calling_test.ts rename to ts/test-electron/state/ducks/calling_test.ts index 1548b2e194..2126c2c983 100644 --- a/ts/test/state/ducks/calling_test.ts +++ b/ts/test-electron/state/ducks/calling_test.ts @@ -4,12 +4,61 @@ import { assert } from 'chai'; import { CallDetailsType, + actions, getEmptyState, isCallActive, + reducer, } from '../../../state/ducks/calling'; import { CallState } from '../../../types/Calling'; describe('calling duck', () => { + describe('actions', () => { + describe('toggleSettings', () => { + const { toggleSettings } = actions; + + it('toggles the settings dialog', () => { + const afterOneToggle = reducer(getEmptyState(), toggleSettings()); + const afterTwoToggles = reducer(afterOneToggle, toggleSettings()); + const afterThreeToggles = reducer(afterTwoToggles, toggleSettings()); + + assert.isTrue(afterOneToggle.settingsDialogOpen); + assert.isFalse(afterTwoToggles.settingsDialogOpen); + assert.isTrue(afterThreeToggles.settingsDialogOpen); + }); + }); + + describe('toggleParticipants', () => { + const { toggleParticipants } = actions; + + it('toggles the participants list', () => { + const afterOneToggle = reducer(getEmptyState(), toggleParticipants()); + const afterTwoToggles = reducer(afterOneToggle, toggleParticipants()); + const afterThreeToggles = reducer( + afterTwoToggles, + toggleParticipants() + ); + + assert.isTrue(afterOneToggle.participantsList); + assert.isFalse(afterTwoToggles.participantsList); + assert.isTrue(afterThreeToggles.participantsList); + }); + }); + + describe('togglePip', () => { + const { togglePip } = actions; + + it('toggles the PiP', () => { + const afterOneToggle = reducer(getEmptyState(), togglePip()); + const afterTwoToggles = reducer(afterOneToggle, togglePip()); + const afterThreeToggles = reducer(afterTwoToggles, togglePip()); + + assert.isTrue(afterOneToggle.pip); + assert.isFalse(afterTwoToggles.pip); + assert.isTrue(afterThreeToggles.pip); + }); + }); + }); + describe('helpers', () => { describe('isCallActive', () => { const fakeCallDetails: CallDetailsType = {