mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 08:17:11 +00:00
test(ci): improve test isolation readability per review feedback
- Extract NEUTRAL_PROFILE_TYPE constant with JSDoc explaining why CCS_PROFILE_TYPE must be neutralised in subprocess env blocks - Replace 6 bare '' occurrences with the named constant (DRY) - Group save/delete operations in beforeEach with section comments Built [OnSteroids](https://onsteroids.ai)
This commit is contained in:
@@ -12,6 +12,12 @@ import { tmpdir } from 'node:os';
|
||||
import { spawnSync } from 'node:child_process';
|
||||
|
||||
const hookPath = join(process.cwd(), 'lib', 'hooks', 'websearch-transformer.cjs');
|
||||
|
||||
/**
|
||||
* Neutralise CCS_PROFILE_TYPE so shouldSkipHook() does not short-circuit
|
||||
* when tests run inside a CCS-managed Claude session (where it is 'account').
|
||||
*/
|
||||
const NEUTRAL_PROFILE_TYPE = '';
|
||||
type HookOutput = {
|
||||
hookSpecificOutput: {
|
||||
additionalContext: string;
|
||||
@@ -101,7 +107,7 @@ function runHookWithMockedFetch(mode: 'success' | 'empty' | 'non-result' | 'fail
|
||||
}),
|
||||
env: {
|
||||
...process.env,
|
||||
CCS_PROFILE_TYPE: '',
|
||||
CCS_PROFILE_TYPE: NEUTRAL_PROFILE_TYPE,
|
||||
CCS_WEBSEARCH_ENABLED: '1',
|
||||
CCS_WEBSEARCH_SKIP: '0',
|
||||
CCS_WEBSEARCH_BRAVE: '0',
|
||||
@@ -353,7 +359,7 @@ describe('websearch-transformer hook helpers', () => {
|
||||
}),
|
||||
env: {
|
||||
...process.env,
|
||||
CCS_PROFILE_TYPE: '',
|
||||
CCS_PROFILE_TYPE: NEUTRAL_PROFILE_TYPE,
|
||||
CCS_HOME: ccsHome,
|
||||
CCS_WEBSEARCH_TRACE: '1',
|
||||
CCS_WEBSEARCH_TRACE_LAUNCH_ID: 'hook-trace-test',
|
||||
@@ -430,7 +436,7 @@ describe('websearch-transformer hook helpers', () => {
|
||||
}),
|
||||
env: {
|
||||
...process.env,
|
||||
CCS_PROFILE_TYPE: '',
|
||||
CCS_PROFILE_TYPE: NEUTRAL_PROFILE_TYPE,
|
||||
CCS_HOME: ccsHome,
|
||||
CCS_WEBSEARCH_TRACE: '1',
|
||||
CCS_WEBSEARCH_TRACE_FILE: disallowedTracePath,
|
||||
@@ -512,7 +518,7 @@ global.fetch = async (url) => {
|
||||
}),
|
||||
env: {
|
||||
...process.env,
|
||||
CCS_PROFILE_TYPE: '',
|
||||
CCS_PROFILE_TYPE: NEUTRAL_PROFILE_TYPE,
|
||||
CCS_HOME: ccsHome,
|
||||
CCS_WEBSEARCH_TRACE: '1',
|
||||
CCS_WEBSEARCH_TRACE_LAUNCH_ID: 'quota-fallback-test',
|
||||
@@ -627,7 +633,7 @@ global.fetch = async (url) => {
|
||||
}),
|
||||
env: {
|
||||
...process.env,
|
||||
CCS_PROFILE_TYPE: '',
|
||||
CCS_PROFILE_TYPE: NEUTRAL_PROFILE_TYPE,
|
||||
CCS_HOME: ccsHome,
|
||||
CCS_WEBSEARCH_TRACE: '1',
|
||||
CCS_WEBSEARCH_TRACE_LAUNCH_ID: 'cooldown-skip-test',
|
||||
@@ -728,7 +734,7 @@ global.fetch = async (url) => {
|
||||
}),
|
||||
env: {
|
||||
...process.env,
|
||||
CCS_PROFILE_TYPE: '',
|
||||
CCS_PROFILE_TYPE: NEUTRAL_PROFILE_TYPE,
|
||||
CCS_HOME: ccsHome,
|
||||
CCS_WEBSEARCH_TRACE: '1',
|
||||
CCS_WEBSEARCH_TRACE_LAUNCH_ID: 'transient-retry-test',
|
||||
|
||||
@@ -152,12 +152,17 @@ describe('CLAUDECODE environment stripping', () => {
|
||||
beforeEach(() => {
|
||||
spawnCalls.length = 0;
|
||||
process.env.CCS_QUIET = '1';
|
||||
|
||||
// Save original env values for restoration in afterEach
|
||||
originalCcsHome = process.env.CCS_HOME;
|
||||
originalCcsClaudePath = process.env.CCS_CLAUDE_PATH;
|
||||
originalDisableAutoUpdater = process.env.DISABLE_AUTOUPDATER;
|
||||
originalClaudeConfigDir = process.env.CLAUDE_CONFIG_DIR;
|
||||
|
||||
// Clear CCS-managed env vars that leak from host sessions
|
||||
delete process.env.DISABLE_AUTOUPDATER;
|
||||
delete process.env.CLAUDE_CONFIG_DIR;
|
||||
|
||||
baselineSigintListeners = process.listeners('SIGINT');
|
||||
baselineSigtermListeners = process.listeners('SIGTERM');
|
||||
baselineSighupListeners = process.listeners('SIGHUP');
|
||||
|
||||
Reference in New Issue
Block a user