40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import {
|
|
applyOpenCodeAutoUpdatePolicy,
|
|
isOpenCodeAutoUpdateAllowed,
|
|
} from '../../../../src/main/services/runtime/openCodeAutoUpdatePolicy';
|
|
|
|
describe('openCodeAutoUpdatePolicy', () => {
|
|
it('disables OpenCode auto-update by default for app-managed envs', () => {
|
|
const input = { PATH: '/usr/bin' };
|
|
|
|
const result = applyOpenCodeAutoUpdatePolicy(input);
|
|
|
|
expect(result).toEqual({
|
|
PATH: '/usr/bin',
|
|
OPENCODE_DISABLE_AUTOUPDATE: '1',
|
|
});
|
|
expect(input).toEqual({ PATH: '/usr/bin' });
|
|
});
|
|
|
|
it('allows an explicit app override to remove inherited disable-auto-update', () => {
|
|
const result = applyOpenCodeAutoUpdatePolicy({
|
|
CLAUDE_TEAM_OPENCODE_ALLOW_AUTOUPDATE: '1',
|
|
OPENCODE_DISABLE_AUTOUPDATE: '1',
|
|
});
|
|
|
|
expect(result.CLAUDE_TEAM_OPENCODE_ALLOW_AUTOUPDATE).toBe('1');
|
|
expect(result.OPENCODE_DISABLE_AUTOUPDATE).toBeUndefined();
|
|
expect(isOpenCodeAutoUpdateAllowed(result)).toBe(true);
|
|
});
|
|
|
|
it('treats non-enabled override values as fail-closed', () => {
|
|
const result = applyOpenCodeAutoUpdatePolicy({
|
|
CLAUDE_TEAM_OPENCODE_ALLOW_AUTOUPDATE: '0',
|
|
});
|
|
|
|
expect(result.OPENCODE_DISABLE_AUTOUPDATE).toBe('1');
|
|
expect(isOpenCodeAutoUpdateAllowed(result)).toBe(false);
|
|
});
|
|
});
|