agent-ecosystem/test/main/services/runtime/openCodeAutoUpdatePolicy.test.ts

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);
});
});