basant307/AI_Governance_Project
048
1/**2 * @license3 * Copyright 2025 Google LLC4 * SPDX-License-Identifier: Apache-2.05 */6 7import { afterEach, beforeEach, describe, expect, it } from 'vitest';8import * as path from 'node:path';9import { homedir } from 'node:os';10import { getUserSettingsDir, getUserSettingsPath } from './settings.js';11import { getTrustedFoldersPath } from './trustedFolders.js';12 13// Regression guard: `QWEN_HOME` is resolved by `preResolveHomeEnvOverrides()`14// AFTER any module that imports a settings/trustedFolders path has loaded.15// A top-level `const` would freeze the pre-bootstrap value and split state16// across callers. Each test mutates `process.env.QWEN_HOME` post-load and17// asserts the exported path getters reflect the new value.18 19describe('settings/trustedFolders path getters are lazy', () => {20 let originalQwenHome: string | undefined;21 let originalTrustedPath: string | undefined;22 23 beforeEach(() => {24 originalQwenHome = process.env['QWEN_HOME'];25 originalTrustedPath = process.env['QWEN_CODE_TRUSTED_FOLDERS_PATH'];26 delete process.env['QWEN_HOME'];27 delete process.env['QWEN_CODE_TRUSTED_FOLDERS_PATH'];28 });29 30 afterEach(() => {31 if (originalQwenHome === undefined) delete process.env['QWEN_HOME'];32 else process.env['QWEN_HOME'] = originalQwenHome;33 if (originalTrustedPath === undefined)34 delete process.env['QWEN_CODE_TRUSTED_FOLDERS_PATH'];35 else process.env['QWEN_CODE_TRUSTED_FOLDERS_PATH'] = originalTrustedPath;36 });37 38 it('getUserSettingsPath() reflects QWEN_HOME set after module load', () => {39 const defaultPath = getUserSettingsPath();40 expect(defaultPath).toBe(path.join(homedir(), '.qwen', 'settings.json'));41 42 process.env['QWEN_HOME'] = '/tmp/qwen-lazy-test';43 expect(getUserSettingsPath()).toBe(44 path.join('/tmp/qwen-lazy-test', 'settings.json'),45 );46 });47 48 it('getUserSettingsDir() reflects QWEN_HOME set after module load', () => {49 expect(getUserSettingsDir()).toBe(path.join(homedir(), '.qwen'));50 51 process.env['QWEN_HOME'] = '/tmp/qwen-lazy-test';52 expect(getUserSettingsDir()).toBe(path.normalize('/tmp/qwen-lazy-test'));53 });54 55 it('getTrustedFoldersPath() reflects QWEN_HOME set after module load', () => {56 expect(getTrustedFoldersPath()).toBe(57 path.join(homedir(), '.qwen', 'trustedFolders.json'),58 );59 60 process.env['QWEN_HOME'] = '/tmp/qwen-lazy-test';61 expect(getTrustedFoldersPath()).toBe(62 path.join('/tmp/qwen-lazy-test', 'trustedFolders.json'),63 );64 });65});66 