diff options
Diffstat (limited to 'packages/main')
28 files changed, 72 insertions, 71 deletions
diff --git a/packages/main/jest.integ.config.cjs b/packages/main/jest.integ.config.cjs new file mode 100644 index 0000000..474d722 --- /dev/null +++ b/packages/main/jest.integ.config.cjs | |||
@@ -0,0 +1,20 @@ | |||
1 | const path = require('node:path'); | ||
2 | |||
3 | const baseConfig = require('../../config/jest.config.base.cjs'); | ||
4 | |||
5 | /** @type {import('@jest/types').Config.InitialOptions} */ | ||
6 | module.exports = { | ||
7 | ...baseConfig, | ||
8 | globalSetup: path.join(__dirname, '../../config/electronJestGlobalSetup.cjs'), | ||
9 | globalTeardown: path.join( | ||
10 | __dirname, | ||
11 | '../../config/electronJestGlobalTeardown.cjs', | ||
12 | ), | ||
13 | testEnvironment: path.join( | ||
14 | __dirname, | ||
15 | '../../config/electronJestEnvironment.cjs', | ||
16 | ), | ||
17 | setupFilesAfterEnv: [ | ||
18 | path.join(__dirname, '../../config/electronJestSetup.cjs'), | ||
19 | ], | ||
20 | }; | ||
diff --git a/packages/main/package.json b/packages/main/package.json index fc972ba..ab8155c 100644 --- a/packages/main/package.json +++ b/packages/main/package.json | |||
@@ -11,7 +11,7 @@ | |||
11 | "@sophie/service-shared": "workspace:*", | 11 | "@sophie/service-shared": "workspace:*", |
12 | "@sophie/shared": "workspace:*", | 12 | "@sophie/shared": "workspace:*", |
13 | "chalk": "^5.0.1", | 13 | "chalk": "^5.0.1", |
14 | "electron": "^19.0.0-alpha.1", | 14 | "electron": "^19.0.0-beta.3", |
15 | "i18next": "^21.6.16", | 15 | "i18next": "^21.6.16", |
16 | "lodash-es": "^4.17.21", | 16 | "lodash-es": "^4.17.21", |
17 | "loglevel": "^1.8.0", | 17 | "loglevel": "^1.8.0", |
@@ -22,19 +22,19 @@ | |||
22 | "slug": "^5.3.0" | 22 | "slug": "^5.3.0" |
23 | }, | 23 | }, |
24 | "devDependencies": { | 24 | "devDependencies": { |
25 | "@jest/globals": "^27.5.1", | 25 | "@jest/globals": "^28.0.3", |
26 | "@sophie/test-utils": "workspace:*", | 26 | "@sophie/test-utils": "workspace:*", |
27 | "@types/electron-devtools-installer": "^2.2.2", | 27 | "@types/electron-devtools-installer": "^2.2.2", |
28 | "@types/lodash-es": "^4.17.6", | 28 | "@types/lodash-es": "^4.17.6", |
29 | "@types/mkdirp": "^1", | 29 | "@types/mkdirp": "^1", |
30 | "@types/node": "^17.0.25", | 30 | "@types/node": "^17.0.31", |
31 | "@types/slug": "^5.0.3", | 31 | "@types/slug": "^5.0.3", |
32 | "@types/source-map-support": "^0.5.4", | 32 | "@types/source-map-support": "^0.5.4", |
33 | "electron-devtools-installer": "^3.2.0", | 33 | "electron-devtools-installer": "^3.2.0", |
34 | "esbuild": "^0.14.38", | 34 | "esbuild": "^0.14.38", |
35 | "git-repo-info": "^2.1.1", | 35 | "git-repo-info": "^2.1.1", |
36 | "jest": "^27.5.1", | 36 | "jest": "^28.0.3", |
37 | "jest-mock": "^27.5.1", | 37 | "jest-mock": "^28.0.2", |
38 | "mkdirp": "^1.0.4", | 38 | "mkdirp": "^1.0.4", |
39 | "source-map-support": "^0.5.21" | 39 | "source-map-support": "^0.5.21" |
40 | } | 40 | } |
diff --git a/packages/main/src/i18n/I18nStore.ts b/packages/main/src/i18n/I18nStore.ts index 54c3d20..8ea4430 100644 --- a/packages/main/src/i18n/I18nStore.ts +++ b/packages/main/src/i18n/I18nStore.ts | |||
@@ -21,7 +21,7 @@ | |||
21 | import type { i18n, ResourceKey, TFunction } from 'i18next'; | 21 | import type { i18n, ResourceKey, TFunction } from 'i18next'; |
22 | import { IAtom, createAtom } from 'mobx'; | 22 | import { IAtom, createAtom } from 'mobx'; |
23 | 23 | ||
24 | import { getLogger } from '../utils/log'; | 24 | import getLogger from '../utils/getLogger'; |
25 | 25 | ||
26 | const log = getLogger('I18nStore'); | 26 | const log = getLogger('I18nStore'); |
27 | 27 | ||
diff --git a/packages/main/src/i18n/RepositoryBasedI18nBackend.ts b/packages/main/src/i18n/RepositoryBasedI18nBackend.ts index 1f7bf5d..23f70d7 100644 --- a/packages/main/src/i18n/RepositoryBasedI18nBackend.ts +++ b/packages/main/src/i18n/RepositoryBasedI18nBackend.ts | |||
@@ -26,7 +26,7 @@ import type { | |||
26 | } from 'i18next'; | 26 | } from 'i18next'; |
27 | import { debounce } from 'lodash-es'; | 27 | import { debounce } from 'lodash-es'; |
28 | 28 | ||
29 | import { getLogger } from '../utils/log'; | 29 | import getLogger from '../utils/getLogger'; |
30 | 30 | ||
31 | import type LocatlizationRepository from './LocalizationRepository'; | 31 | import type LocatlizationRepository from './LocalizationRepository'; |
32 | 32 | ||
diff --git a/packages/main/src/i18n/i18nLog.ts b/packages/main/src/i18n/i18nLog.ts index 33a8c4e..308a1cc 100644 --- a/packages/main/src/i18n/i18nLog.ts +++ b/packages/main/src/i18n/i18nLog.ts | |||
@@ -20,7 +20,7 @@ | |||
20 | 20 | ||
21 | import type { LoggerModule } from 'i18next'; | 21 | import type { LoggerModule } from 'i18next'; |
22 | 22 | ||
23 | import { getLogger } from '../utils/log'; | 23 | import getLogger from '../utils/getLogger'; |
24 | 24 | ||
25 | const log = getLogger('i18nLog'); | 25 | const log = getLogger('i18nLog'); |
26 | 26 | ||
diff --git a/packages/main/src/i18n/impl/LocaltizationFiles.ts b/packages/main/src/i18n/impl/LocaltizationFiles.ts index 73a769e..9cd854e 100644 --- a/packages/main/src/i18n/impl/LocaltizationFiles.ts +++ b/packages/main/src/i18n/impl/LocaltizationFiles.ts | |||
@@ -23,8 +23,8 @@ import { readFile, writeFile } from 'node:fs/promises'; | |||
23 | import type { ResourceKey } from 'i18next'; | 23 | import type { ResourceKey } from 'i18next'; |
24 | 24 | ||
25 | import type Resources from '../../infrastructure/resources/Resources'; | 25 | import type Resources from '../../infrastructure/resources/Resources'; |
26 | import getLogger from '../../utils/getLogger'; | ||
26 | import isErrno from '../../utils/isErrno'; | 27 | import isErrno from '../../utils/isErrno'; |
27 | import { getLogger } from '../../utils/log'; | ||
28 | import type LocatlizationRepository from '../LocalizationRepository'; | 28 | import type LocatlizationRepository from '../LocalizationRepository'; |
29 | 29 | ||
30 | const log = getLogger('LocalizationFiles'); | 30 | const log = getLogger('LocalizationFiles'); |
diff --git a/packages/main/src/i18n/loadLocalization.ts b/packages/main/src/i18n/loadLocalization.ts index 507075d..e62b3e3 100644 --- a/packages/main/src/i18n/loadLocalization.ts +++ b/packages/main/src/i18n/loadLocalization.ts | |||
@@ -24,7 +24,7 @@ import { reaction } from 'mobx'; | |||
24 | import { addDisposer } from 'mobx-state-tree'; | 24 | import { addDisposer } from 'mobx-state-tree'; |
25 | 25 | ||
26 | import type MainStore from '../stores/MainStore'; | 26 | import type MainStore from '../stores/MainStore'; |
27 | import { getLogger } from '../utils/log'; | 27 | import getLogger from '../utils/getLogger'; |
28 | 28 | ||
29 | import I18nStore from './I18nStore'; | 29 | import I18nStore from './I18nStore'; |
30 | import type LocatlizationRepository from './LocalizationRepository'; | 30 | import type LocatlizationRepository from './LocalizationRepository'; |
diff --git a/packages/main/src/index.ts b/packages/main/src/index.ts index 78861c2..3494f25 100644 --- a/packages/main/src/index.ts +++ b/packages/main/src/index.ts | |||
@@ -23,14 +23,11 @@ import os from 'node:os'; | |||
23 | 23 | ||
24 | import { app } from 'electron'; | 24 | import { app } from 'electron'; |
25 | 25 | ||
26 | import { | 26 | import { enableStacktraceSourceMaps } from './infrastructure/electron/impl/devTools'; |
27 | enableStacktraceSourceMaps, | ||
28 | ensureDevDataDir, | ||
29 | } from './infrastructure/electron/impl/devTools'; | ||
30 | import electronShell from './infrastructure/electron/impl/electronShell'; | 27 | import electronShell from './infrastructure/electron/impl/electronShell'; |
31 | import initReactions from './initReactions'; | 28 | import initReactions from './initReactions'; |
32 | import MainStore from './stores/MainStore'; | 29 | import MainStore from './stores/MainStore'; |
33 | import { getLogger } from './utils/log'; | 30 | import getLogger from './utils/getLogger'; |
34 | 31 | ||
35 | const isDevelopment = import.meta.env.MODE === 'development'; | 32 | const isDevelopment = import.meta.env.MODE === 'development'; |
36 | 33 | ||
@@ -40,7 +37,6 @@ const log = getLogger('index'); | |||
40 | app.enableSandbox(); | 37 | app.enableSandbox(); |
41 | 38 | ||
42 | if (isDevelopment) { | 39 | if (isDevelopment) { |
43 | ensureDevDataDir(); | ||
44 | enableStacktraceSourceMaps(); | 40 | enableStacktraceSourceMaps(); |
45 | } | 41 | } |
46 | 42 | ||
diff --git a/packages/main/src/infrastructure/config/impl/ConfigFile.ts b/packages/main/src/infrastructure/config/impl/ConfigFile.ts index 8b110a2..6203c89 100644 --- a/packages/main/src/infrastructure/config/impl/ConfigFile.ts +++ b/packages/main/src/infrastructure/config/impl/ConfigFile.ts | |||
@@ -25,8 +25,8 @@ import path from 'node:path'; | |||
25 | import { throttle } from 'lodash-es'; | 25 | import { throttle } from 'lodash-es'; |
26 | 26 | ||
27 | import type Disposer from '../../../utils/Disposer'; | 27 | import type Disposer from '../../../utils/Disposer'; |
28 | import getLogger from '../../../utils/getLogger'; | ||
28 | import isErrno from '../../../utils/isErrno'; | 29 | import isErrno from '../../../utils/isErrno'; |
29 | import { getLogger } from '../../../utils/log'; | ||
30 | import type ConfigRepository from '../ConfigRepository'; | 30 | import type ConfigRepository from '../ConfigRepository'; |
31 | import type { ReadConfigResult } from '../ConfigRepository'; | 31 | import type { ReadConfigResult } from '../ConfigRepository'; |
32 | 32 | ||
diff --git a/packages/main/src/infrastructure/electron/RendererBridge.ts b/packages/main/src/infrastructure/electron/RendererBridge.ts index c26aa94..3f9b512 100644 --- a/packages/main/src/infrastructure/electron/RendererBridge.ts +++ b/packages/main/src/infrastructure/electron/RendererBridge.ts | |||
@@ -29,7 +29,7 @@ import { | |||
29 | 29 | ||
30 | import type MainStore from '../../stores/MainStore'; | 30 | import type MainStore from '../../stores/MainStore'; |
31 | import Disposer from '../../utils/Disposer'; | 31 | import Disposer from '../../utils/Disposer'; |
32 | import { getLogger } from '../../utils/log'; | 32 | import getLogger from '../../utils/getLogger'; |
33 | 33 | ||
34 | const log = getLogger('RendererBridge'); | 34 | const log = getLogger('RendererBridge'); |
35 | 35 | ||
diff --git a/packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts b/packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts index b0db115..20a1f70 100644 --- a/packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts +++ b/packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts | |||
@@ -28,7 +28,7 @@ import { BrowserWindow, ipcMain, IpcMainEvent } from 'electron'; | |||
28 | import type { IJsonPatch } from 'mobx-state-tree'; | 28 | import type { IJsonPatch } from 'mobx-state-tree'; |
29 | 29 | ||
30 | import type MainStore from '../../../stores/MainStore'; | 30 | import type MainStore from '../../../stores/MainStore'; |
31 | import { getLogger } from '../../../utils/log'; | 31 | import getLogger from '../../../utils/getLogger'; |
32 | import RendererBridge from '../RendererBridge'; | 32 | import RendererBridge from '../RendererBridge'; |
33 | import type { MainWindow, ServiceView } from '../types'; | 33 | import type { MainWindow, ServiceView } from '../types'; |
34 | 34 | ||
diff --git a/packages/main/src/infrastructure/electron/impl/ElectronServiceView.ts b/packages/main/src/infrastructure/electron/impl/ElectronServiceView.ts index 3118efc..a9298bd 100644 --- a/packages/main/src/infrastructure/electron/impl/ElectronServiceView.ts +++ b/packages/main/src/infrastructure/electron/impl/ElectronServiceView.ts | |||
@@ -21,7 +21,7 @@ | |||
21 | import { BrowserView } from 'electron'; | 21 | import { BrowserView } from 'electron'; |
22 | 22 | ||
23 | import type Service from '../../../stores/Service'; | 23 | import type Service from '../../../stores/Service'; |
24 | import { getLogger } from '../../../utils/log'; | 24 | import getLogger from '../../../utils/getLogger'; |
25 | import type Resources from '../../resources/Resources'; | 25 | import type Resources from '../../resources/Resources'; |
26 | import type { ServiceView } from '../types'; | 26 | import type { ServiceView } from '../types'; |
27 | 27 | ||
diff --git a/packages/main/src/infrastructure/electron/impl/__tests__/electron.integ.spec.ts b/packages/main/src/infrastructure/electron/impl/__tests__/electron.integ.spec.ts new file mode 100644 index 0000000..f6bd440 --- /dev/null +++ b/packages/main/src/infrastructure/electron/impl/__tests__/electron.integ.spec.ts | |||
@@ -0,0 +1,9 @@ | |||
1 | import { BrowserWindow } from 'electron'; | ||
2 | |||
3 | import '../ElectronMainWindow'; | ||
4 | |||
5 | it('should create a BrowserWindow', async () => { | ||
6 | const w = new BrowserWindow(); | ||
7 | await expect(w.loadURL('https://example.org')).resolves.toBeUndefined(); | ||
8 | w.close(); | ||
9 | }); | ||
diff --git a/packages/main/src/infrastructure/electron/impl/__tests__/hardenSession.spec.ts b/packages/main/src/infrastructure/electron/impl/__tests__/hardenSession.spec.ts index 7457729..ae10677 100644 --- a/packages/main/src/infrastructure/electron/impl/__tests__/hardenSession.spec.ts +++ b/packages/main/src/infrastructure/electron/impl/__tests__/hardenSession.spec.ts | |||
@@ -30,7 +30,6 @@ import type { | |||
30 | WebContents, | 30 | WebContents, |
31 | } from 'electron'; | 31 | } from 'electron'; |
32 | 32 | ||
33 | import { silenceLogger } from '../../../../utils/log'; | ||
34 | import type Resources from '../../../resources/Resources'; | 33 | import type Resources from '../../../resources/Resources'; |
35 | import hardenSession from '../hardenSession'; | 34 | import hardenSession from '../hardenSession'; |
36 | 35 | ||
@@ -90,10 +89,6 @@ const fakeSession = fake<Session>({ | |||
90 | }, | 89 | }, |
91 | }); | 90 | }); |
92 | 91 | ||
93 | beforeAll(() => { | ||
94 | silenceLogger(); | ||
95 | }); | ||
96 | |||
97 | beforeEach(() => { | 92 | beforeEach(() => { |
98 | permissionRequestHandler = undefined; | 93 | permissionRequestHandler = undefined; |
99 | onBeforeRequest = undefined; | 94 | onBeforeRequest = undefined; |
diff --git a/packages/main/src/infrastructure/electron/impl/__tests__/lockWebContentsToFile.spec.ts b/packages/main/src/infrastructure/electron/impl/__tests__/lockWebContentsToFile.spec.ts index 29c0516..f7bad0a 100644 --- a/packages/main/src/infrastructure/electron/impl/__tests__/lockWebContentsToFile.spec.ts +++ b/packages/main/src/infrastructure/electron/impl/__tests__/lockWebContentsToFile.spec.ts | |||
@@ -25,7 +25,6 @@ import { fake } from '@sophie/test-utils'; | |||
25 | import type { Event, HandlerDetails, WebContents } from 'electron'; | 25 | import type { Event, HandlerDetails, WebContents } from 'electron'; |
26 | import { mocked } from 'jest-mock'; | 26 | import { mocked } from 'jest-mock'; |
27 | 27 | ||
28 | import { silenceLogger } from '../../../../utils/log'; | ||
29 | import type Resources from '../../../resources/Resources'; | 28 | import type Resources from '../../../resources/Resources'; |
30 | import lockWebContentsToFile from '../lockWebContentsToFile'; | 29 | import lockWebContentsToFile from '../lockWebContentsToFile'; |
31 | 30 | ||
@@ -59,17 +58,13 @@ const fakeWebContents = fake<WebContents>({ | |||
59 | } | 58 | } |
60 | return this as WebContents; | 59 | return this as WebContents; |
61 | }, | 60 | }, |
62 | loadURL: jest.fn(), | 61 | loadURL: jest.fn<WebContents['loadURL']>(), |
63 | }); | 62 | }); |
64 | 63 | ||
65 | const event: Event = { | 64 | const event: Event = { |
66 | preventDefault: jest.fn(), | 65 | preventDefault: jest.fn(), |
67 | }; | 66 | }; |
68 | 67 | ||
69 | beforeAll(() => { | ||
70 | silenceLogger(); | ||
71 | }); | ||
72 | |||
73 | beforeEach(async () => { | 68 | beforeEach(async () => { |
74 | windowOpenHandler = undefined; | 69 | windowOpenHandler = undefined; |
75 | willNavigate = undefined; | 70 | willNavigate = undefined; |
diff --git a/packages/main/src/infrastructure/electron/impl/devTools.ts b/packages/main/src/infrastructure/electron/impl/devTools.ts index 6db88d1..6b06d8f 100644 --- a/packages/main/src/infrastructure/electron/impl/devTools.ts +++ b/packages/main/src/infrastructure/electron/impl/devTools.ts | |||
@@ -18,7 +18,7 @@ | |||
18 | * SPDX-License-Identifier: AGPL-3.0-only | 18 | * SPDX-License-Identifier: AGPL-3.0-only |
19 | */ | 19 | */ |
20 | 20 | ||
21 | import { app, type BrowserWindow } from 'electron'; | 21 | import type { BrowserWindow } from 'electron'; |
22 | 22 | ||
23 | /* eslint-disable | 23 | /* eslint-disable |
24 | import/no-extraneous-dependencies, | 24 | import/no-extraneous-dependencies, |
@@ -29,17 +29,6 @@ import { app, type BrowserWindow } from 'electron'; | |||
29 | */ | 29 | */ |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * Makes sure we use a separate data dir for development. | ||
33 | */ | ||
34 | export function ensureDevDataDir(): void { | ||
35 | // Use alternative directory when debugging to avoid clobbering the main installation. | ||
36 | app.setPath('userData', `${app.getPath('userData')}-dev`); | ||
37 | const userData = app.getPath('userData'); | ||
38 | const mkdirp = require('mkdirp') as typeof import('mkdirp'); | ||
39 | mkdirp.sync(userData); | ||
40 | } | ||
41 | |||
42 | /** | ||
43 | * Enables using source maps for node stack traces. | 32 | * Enables using source maps for node stack traces. |
44 | */ | 33 | */ |
45 | export function enableStacktraceSourceMaps(): void { | 34 | export function enableStacktraceSourceMaps(): void { |
diff --git a/packages/main/src/infrastructure/electron/impl/hardenSession.ts b/packages/main/src/infrastructure/electron/impl/hardenSession.ts index 53675a7..fc358a1 100644 --- a/packages/main/src/infrastructure/electron/impl/hardenSession.ts +++ b/packages/main/src/infrastructure/electron/impl/hardenSession.ts | |||
@@ -22,7 +22,7 @@ import { URL } from 'node:url'; | |||
22 | 22 | ||
23 | import type { Session } from 'electron'; | 23 | import type { Session } from 'electron'; |
24 | 24 | ||
25 | import { getLogger } from '../../../utils/log'; | 25 | import getLogger from '../../../utils/getLogger'; |
26 | import type Resources from '../../resources/Resources'; | 26 | import type Resources from '../../resources/Resources'; |
27 | 27 | ||
28 | /** | 28 | /** |
diff --git a/packages/main/src/infrastructure/electron/impl/lockWebContentsToFile.ts b/packages/main/src/infrastructure/electron/impl/lockWebContentsToFile.ts index 48b1bf0..8d557c4 100644 --- a/packages/main/src/infrastructure/electron/impl/lockWebContentsToFile.ts +++ b/packages/main/src/infrastructure/electron/impl/lockWebContentsToFile.ts | |||
@@ -20,7 +20,7 @@ | |||
20 | 20 | ||
21 | import type { WebContents } from 'electron'; | 21 | import type { WebContents } from 'electron'; |
22 | 22 | ||
23 | import { getLogger } from '../../../utils/log'; | 23 | import getLogger from '../../../utils/getLogger'; |
24 | import type Resources from '../../resources/Resources'; | 24 | import type Resources from '../../resources/Resources'; |
25 | 25 | ||
26 | const log = getLogger('lockWebContentsToFile'); | 26 | const log = getLogger('lockWebContentsToFile'); |
diff --git a/packages/main/src/reactions/__tests__/synchronizeConfig.spec.ts b/packages/main/src/reactions/__tests__/synchronizeConfig.spec.ts index d3338d0..403a608 100644 --- a/packages/main/src/reactions/__tests__/synchronizeConfig.spec.ts +++ b/packages/main/src/reactions/__tests__/synchronizeConfig.spec.ts | |||
@@ -24,21 +24,19 @@ import { mocked } from 'jest-mock'; | |||
24 | import type ConfigRepository from '../../infrastructure/config/ConfigRepository'; | 24 | import type ConfigRepository from '../../infrastructure/config/ConfigRepository'; |
25 | import SharedStore from '../../stores/SharedStore'; | 25 | import SharedStore from '../../stores/SharedStore'; |
26 | import type Disposer from '../../utils/Disposer'; | 26 | import type Disposer from '../../utils/Disposer'; |
27 | import { silenceLogger } from '../../utils/log'; | ||
28 | import synchronizeConfig, { serializeConfig } from '../synchronizeConfig'; | 27 | import synchronizeConfig, { serializeConfig } from '../synchronizeConfig'; |
29 | 28 | ||
30 | let store: SharedStore; | 29 | let store: SharedStore; |
31 | const repository: ConfigRepository = { | 30 | const repository: ConfigRepository = { |
32 | readConfig: jest.fn(), | 31 | readConfig: jest.fn<ConfigRepository['readConfig']>(), |
33 | writeConfig: jest.fn(), | 32 | writeConfig: jest.fn<ConfigRepository['writeConfig']>(), |
34 | watchConfig: jest.fn(), | 33 | watchConfig: jest.fn<ConfigRepository['watchConfig']>(), |
35 | }; | 34 | }; |
36 | const lessThanThrottleMs = 100; | 35 | const lessThanThrottleMs = 100; |
37 | const throttleMs = 1000; | 36 | const throttleMs = 1000; |
38 | 37 | ||
39 | beforeAll(() => { | 38 | beforeAll(() => { |
40 | jest.useFakeTimers(); | 39 | jest.useFakeTimers(); |
41 | silenceLogger(); | ||
42 | }); | 40 | }); |
43 | 41 | ||
44 | beforeEach(() => { | 42 | beforeEach(() => { |
diff --git a/packages/main/src/reactions/loadServices.ts b/packages/main/src/reactions/loadServices.ts index f56ac62..50fd2cb 100644 --- a/packages/main/src/reactions/loadServices.ts +++ b/packages/main/src/reactions/loadServices.ts | |||
@@ -29,7 +29,7 @@ import type { | |||
29 | } from '../infrastructure/electron/types'; | 29 | } from '../infrastructure/electron/types'; |
30 | import type MainStore from '../stores/MainStore'; | 30 | import type MainStore from '../stores/MainStore'; |
31 | import type Service from '../stores/Service'; | 31 | import type Service from '../stores/Service'; |
32 | import { getLogger } from '../utils/log'; | 32 | import getLogger from '../utils/getLogger'; |
33 | 33 | ||
34 | const log = getLogger('loadServices'); | 34 | const log = getLogger('loadServices'); |
35 | 35 | ||
diff --git a/packages/main/src/reactions/synchronizeConfig.ts b/packages/main/src/reactions/synchronizeConfig.ts index 247c2e2..5fe924a 100644 --- a/packages/main/src/reactions/synchronizeConfig.ts +++ b/packages/main/src/reactions/synchronizeConfig.ts | |||
@@ -25,7 +25,7 @@ import type ConfigRepository from '../infrastructure/config/ConfigRepository'; | |||
25 | import type SharedStore from '../stores/SharedStore'; | 25 | import type SharedStore from '../stores/SharedStore'; |
26 | import type Config from '../stores/config/Config'; | 26 | import type Config from '../stores/config/Config'; |
27 | import type Disposer from '../utils/Disposer'; | 27 | import type Disposer from '../utils/Disposer'; |
28 | import { getLogger } from '../utils/log'; | 28 | import getLogger from '../utils/getLogger'; |
29 | 29 | ||
30 | const DEFAULT_CONFIG_DEBOUNCE_TIME_MS = 1000; | 30 | const DEFAULT_CONFIG_DEBOUNCE_TIME_MS = 1000; |
31 | 31 | ||
diff --git a/packages/main/src/reactions/synchronizeNativeTheme.ts b/packages/main/src/reactions/synchronizeNativeTheme.ts index 8c4edb3..384d54d 100644 --- a/packages/main/src/reactions/synchronizeNativeTheme.ts +++ b/packages/main/src/reactions/synchronizeNativeTheme.ts | |||
@@ -23,7 +23,7 @@ import { autorun } from 'mobx'; | |||
23 | 23 | ||
24 | import type SharedStore from '../stores/SharedStore'; | 24 | import type SharedStore from '../stores/SharedStore'; |
25 | import type Disposer from '../utils/Disposer'; | 25 | import type Disposer from '../utils/Disposer'; |
26 | import { getLogger } from '../utils/log'; | 26 | import getLogger from '../utils/getLogger'; |
27 | 27 | ||
28 | const log = getLogger('synchronizeNativeTheme'); | 28 | const log = getLogger('synchronizeNativeTheme'); |
29 | 29 | ||
diff --git a/packages/main/src/stores/GlobalSettings.ts b/packages/main/src/stores/GlobalSettings.ts index 4e6aa13..84248ea 100644 --- a/packages/main/src/stores/GlobalSettings.ts +++ b/packages/main/src/stores/GlobalSettings.ts | |||
@@ -21,7 +21,7 @@ | |||
21 | import { defineGlobalSettingsModel, ThemeSource } from '@sophie/shared'; | 21 | import { defineGlobalSettingsModel, ThemeSource } from '@sophie/shared'; |
22 | import { Instance, resolveIdentifier } from 'mobx-state-tree'; | 22 | import { Instance, resolveIdentifier } from 'mobx-state-tree'; |
23 | 23 | ||
24 | import { getLogger } from '../utils/log'; | 24 | import getLogger from '../utils/getLogger'; |
25 | 25 | ||
26 | import Service from './Service'; | 26 | import Service from './Service'; |
27 | 27 | ||
diff --git a/packages/main/src/stores/MainStore.ts b/packages/main/src/stores/MainStore.ts index 9affbd0..b3e2830 100644 --- a/packages/main/src/stores/MainStore.ts +++ b/packages/main/src/stores/MainStore.ts | |||
@@ -25,7 +25,7 @@ import { flow, Instance, types } from 'mobx-state-tree'; | |||
25 | import type I18nStore from '../i18n/I18nStore'; | 25 | import type I18nStore from '../i18n/I18nStore'; |
26 | import type { UseTranslationResult } from '../i18n/I18nStore'; | 26 | import type { UseTranslationResult } from '../i18n/I18nStore'; |
27 | import type { MainWindow } from '../infrastructure/electron/types'; | 27 | import type { MainWindow } from '../infrastructure/electron/types'; |
28 | import { getLogger } from '../utils/log'; | 28 | import getLogger from '../utils/getLogger'; |
29 | 29 | ||
30 | import GlobalSettings from './GlobalSettings'; | 30 | import GlobalSettings from './GlobalSettings'; |
31 | import { getEnv } from './MainEnv'; | 31 | import { getEnv } from './MainEnv'; |
diff --git a/packages/main/src/stores/Service.ts b/packages/main/src/stores/Service.ts index 8ba8098..9256f65 100644 --- a/packages/main/src/stores/Service.ts +++ b/packages/main/src/stores/Service.ts | |||
@@ -30,7 +30,7 @@ import { | |||
30 | import { type Instance, getSnapshot, cast, flow } from 'mobx-state-tree'; | 30 | import { type Instance, getSnapshot, cast, flow } from 'mobx-state-tree'; |
31 | 31 | ||
32 | import type { ServiceView } from '../infrastructure/electron/types'; | 32 | import type { ServiceView } from '../infrastructure/electron/types'; |
33 | import { getLogger } from '../utils/log'; | 33 | import getLogger from '../utils/getLogger'; |
34 | 34 | ||
35 | import { getEnv } from './MainEnv'; | 35 | import { getEnv } from './MainEnv'; |
36 | import ServiceSettings from './ServiceSettings'; | 36 | import ServiceSettings from './ServiceSettings'; |
diff --git a/packages/main/src/stores/SharedStore.ts b/packages/main/src/stores/SharedStore.ts index 3aa8c73..f93c3d4 100644 --- a/packages/main/src/stores/SharedStore.ts +++ b/packages/main/src/stores/SharedStore.ts | |||
@@ -21,7 +21,7 @@ | |||
21 | import { defineSharedStoreModel, WritingDirection } from '@sophie/shared'; | 21 | import { defineSharedStoreModel, WritingDirection } from '@sophie/shared'; |
22 | import { getSnapshot, Instance } from 'mobx-state-tree'; | 22 | import { getSnapshot, Instance } from 'mobx-state-tree'; |
23 | 23 | ||
24 | import { getLogger } from '../utils/log'; | 24 | import getLogger from '../utils/getLogger'; |
25 | 25 | ||
26 | import GlobalSettings from './GlobalSettings'; | 26 | import GlobalSettings from './GlobalSettings'; |
27 | import Profile from './Profile'; | 27 | import Profile from './Profile'; |
diff --git a/packages/main/src/utils/log.ts b/packages/main/src/utils/getLogger.ts index d9748f4..7ed38de 100644 --- a/packages/main/src/utils/log.ts +++ b/packages/main/src/utils/getLogger.ts | |||
@@ -23,10 +23,16 @@ import chalk, { ChalkInstance } from 'chalk'; | |||
23 | import loglevel from 'loglevel'; | 23 | import loglevel from 'loglevel'; |
24 | import prefix from 'loglevel-plugin-prefix'; | 24 | import prefix from 'loglevel-plugin-prefix'; |
25 | 25 | ||
26 | if (import.meta.env?.DEV) { | 26 | switch (import.meta.env.MODE) { |
27 | loglevel.setLevel('debug'); | 27 | case 'development': |
28 | } else { | 28 | loglevel.setLevel('debug', false); |
29 | loglevel.setLevel('info'); | 29 | break; |
30 | case 'test': | ||
31 | loglevel.setLevel('silent', false); | ||
32 | break; | ||
33 | default: | ||
34 | loglevel.setLevel('info', false); | ||
35 | break; | ||
30 | } | 36 | } |
31 | 37 | ||
32 | const COLORS: Map<string, ChalkInstance> = new Map([ | 38 | const COLORS: Map<string, ChalkInstance> = new Map([ |
@@ -51,14 +57,6 @@ prefix.apply(loglevel, { | |||
51 | }, | 57 | }, |
52 | }); | 58 | }); |
53 | 59 | ||
54 | export function getLogger(loggerName: string): loglevel.Logger { | 60 | export default function getLogger(loggerName: string): loglevel.Logger { |
55 | return loglevel.getLogger(loggerName); | 61 | return loglevel.getLogger(loggerName); |
56 | } | 62 | } |
57 | |||
58 | export function silenceLogger(): void { | ||
59 | loglevel.disableAll(); | ||
60 | const loggers = loglevel.getLoggers(); | ||
61 | Object.values(loggers).forEach((logger) => { | ||
62 | logger.disableAll(); | ||
63 | }); | ||
64 | } | ||
diff --git a/packages/main/tsconfig.json b/packages/main/tsconfig.json index e18e7d3..943a8e3 100644 --- a/packages/main/tsconfig.json +++ b/packages/main/tsconfig.json | |||
@@ -20,6 +20,7 @@ | |||
20 | "types/**/*.d.ts", | 20 | "types/**/*.d.ts", |
21 | ".eslintrc.cjs", | 21 | ".eslintrc.cjs", |
22 | "esbuild.config.js", | 22 | "esbuild.config.js", |
23 | "jest.config.js" | 23 | "jest.config.js", |
24 | "jest.integ.config.cjs" | ||
24 | ] | 25 | ] |
25 | } | 26 | } |