signal-desktop/ts/windows/main/preload_test.ts
2024-04-01 12:19:35 -07:00

69 lines
1.8 KiB
TypeScript

// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
import { ipcRenderer as ipc } from 'electron';
import { sync } from 'fast-glob';
// eslint-disable-next-line import/no-extraneous-dependencies
import { assert } from 'chai';
import { getSignalProtocolStore } from '../../SignalProtocolStore';
import { initMessageCleanup } from '../../services/messageStateCleanup';
import { initializeMessageCounter } from '../../util/incrementMessageCounter';
import { initializeRedux } from '../../state/initializeRedux';
import * as Stickers from '../../types/Stickers';
import { ThemeType } from '../../types/Util';
window.assert = assert;
// This is a hack to let us run TypeScript tests in the renderer process. See the
// code in `test/test.js`.
window.testUtilities = {
debug(info) {
return ipc.invoke('ci:test-electron:debug', info);
},
onComplete(info) {
return ipc.invoke('ci:test-electron:done', info);
},
async initialize() {
initMessageCleanup();
await initializeMessageCounter();
await Stickers.load();
initializeRedux({
callLinks: [],
callsHistory: [],
callsHistoryUnreadCount: 0,
initialBadgesState: { byId: {} },
mainWindowStats: {
isFullScreen: false,
isMaximized: false,
},
menuOptions: {
development: false,
devTools: false,
includeSetup: false,
isProduction: false,
platform: 'test',
},
stories: [],
storyDistributionLists: [],
theme: ThemeType.dark,
});
},
prepareTests() {
console.log('Preparing tests...');
sync('../../test-{both,electron}/**/*_test.js', {
absolute: true,
cwd: __dirname,
}).forEach(require);
},
};
window.getSignalProtocolStore = getSignalProtocolStore;