From 85f3b1b179541ca077ed998df191955049b7c750 Mon Sep 17 00:00:00 2001 From: James Yu Date: Sun, 26 Nov 2023 14:52:35 +0000 Subject: [PATCH] Load main.ts to initialize lw before test --- src/completion/completer/environment.ts | 1 - src/utils/logger.ts | 19 +++++++++++++------ test/suites/index.ts | 15 +++++++-------- test/suites/utils.ts | 4 ++-- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/completion/completer/environment.ts b/src/completion/completer/environment.ts index 1ebf40bd9..b823b61d3 100644 --- a/src/completion/completer/environment.ts +++ b/src/completion/completer/environment.ts @@ -6,7 +6,6 @@ import type { FileCache } from '../../types' import type { ICompletionItem, IProvider, IProviderArgs } from '../latex' import { CmdEnvSuggestion, splitSignatureString, filterNonLetterSuggestions, filterArgumentHint } from './completerutils' - const logger = lw.log('Intelli', 'Environment') export type EnvType = { diff --git a/src/utils/logger.ts b/src/utils/logger.ts index 7c1f0eadd..eb377e2e1 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -1,6 +1,7 @@ import * as vscode from 'vscode' import * as fs from 'fs' import * as path from 'path' +import { lw } from '../lw' const LOG_PANEL = vscode.window.createOutputChannel('LaTeX Workshop') const COMPILER_PANEL = vscode.window.createOutputChannel('LaTeX Compiler') @@ -233,14 +234,20 @@ type PackageJSON = { } } -const defaultConf: Configs = (JSON.parse(fs.readFileSync(path.resolve(__dirname, '../../../../package.json')).toString()) as PackageJSON).contributes.configuration.properties - const relatedConf = [ 'editor.acceptSuggestionOnEnter', ] +let defaultConfig: Configs | undefined = undefined +function getDefaultConfig() { + if (defaultConfig === undefined) { + defaultConfig = (JSON.parse(fs.readFileSync(path.resolve(lw.extensionRoot, 'package.json')).toString()) as PackageJSON).contributes.configuration.properties + } + return defaultConfig +} + function logConfig() { - const logConfigs = [...Object.keys(defaultConf), ...relatedConf] + const logConfigs = [...Object.keys(getDefaultConfig()), ...relatedConf] const workspaceFolders = vscode.workspace.workspaceFolders || [undefined] for (const workspace of workspaceFolders) { const configuration = vscode.workspace.getConfiguration(undefined, workspace) @@ -255,7 +262,7 @@ function logConfig() { } function logDeprecatedConfig() { - const deprecatedConfigs = Object.entries(defaultConf) + const deprecatedConfigs = Object.entries(getDefaultConfig()) .filter(([_, value]) => value.deprecationMessage) .map(([config, _]) => config.split('.').slice(1).join('.')) const workspaceFolders = vscode.workspace.workspaceFolders || [undefined] @@ -266,14 +273,14 @@ function logDeprecatedConfig() { const configValue = configuration.get(config) if (JSON.stringify(defaultValue) !== JSON.stringify(configValue)) { logTagless(`Deprecated config ${config} with default value ${JSON.stringify(defaultValue)} is set to ${JSON.stringify(configValue)} at ${workspace?.uri.toString(true)} .`) - void vscode.window.showWarningMessage(`Config "${config}" is deprecated. ${defaultConf[config].deprecationMessage}`) + void vscode.window.showWarningMessage(`Config "${config}" is deprecated. ${getDefaultConfig()[config].deprecationMessage}`) } }) } } function logConfigChange(ev: vscode.ConfigurationChangeEvent) { - const logConfigs = [...Object.keys(defaultConf), ...relatedConf] + const logConfigs = [...Object.keys(getDefaultConfig()), ...relatedConf] const workspaceFolders = vscode.workspace.workspaceFolders || [undefined] for (const workspace of workspaceFolders) { logConfigs.forEach(config => { diff --git a/test/suites/index.ts b/test/suites/index.ts index 8b8fe1866..041aff41d 100644 --- a/test/suites/index.ts +++ b/test/suites/index.ts @@ -12,11 +12,11 @@ export function run(): Promise { }) return new Promise((resolve, reject) => { - try { - glob.sync('**/**.test.js', { cwd: __dirname }) - .sort() - .forEach(f => mocha.addFile(path.resolve(__dirname, f))) - // Run the mocha test + glob.sync('**/**.test.js', { cwd: __dirname }) + .sort() + .forEach(f => mocha.addFile(path.resolve(__dirname, f))) + // Run the mocha test + import('../../src/main').then(() => { mocha.run(failures => { if (failures > 0) { reject(new Error(`${failures} tests failed.`)) @@ -24,10 +24,9 @@ export function run(): Promise { resolve() } }) - } - catch (error) { + }).catch(error => { console.error(error) return reject(error) - } + }) }) } diff --git a/test/suites/utils.ts b/test/suites/utils.ts index 563090528..93a195cf1 100644 --- a/test/suites/utils.ts +++ b/test/suites/utils.ts @@ -3,13 +3,13 @@ import * as path from 'path' import * as fs from 'fs' import { glob } from 'glob' import * as os from 'os' -import {ok, strictEqual} from 'assert' +import { ok, strictEqual } from 'assert' import { lw } from '../../src/lw' import { log as logModule } from '../../src/utils/logger' import type { EventArgs, Events } from '../../src/core/event' let testIndex = 0 -const logger = lw.log('Test') +const logger = logModule.getLogger('Test') function getFixture() { if (vscode.workspace.workspaceFile) {