diff options
author | Kristóf Marussy <kristof@marussy.com> | 2022-05-03 19:47:39 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2022-05-16 00:55:02 +0200 |
commit | d2aa484b600dc0d122bb994b9bb29504ffe4cf12 (patch) | |
tree | 1d3e38fdb22f7afe02f1ebcf4b07734761970985 /packages/main/src | |
parent | refactor: config file saving and debugging (diff) | |
download | sophie-d2aa484b600dc0d122bb994b9bb29504ffe4cf12.tar.gz sophie-d2aa484b600dc0d122bb994b9bb29504ffe4cf12.tar.zst sophie-d2aa484b600dc0d122bb994b9bb29504ffe4cf12.zip |
build: integration testing support
Run integration tests in an electron environment for the main process.
Signed-off-by: Kristóf Marussy <kristof@marussy.com>
Diffstat (limited to 'packages/main/src')
25 files changed, 45 insertions, 65 deletions
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 | } | ||