mirror of
https://github.com/callstack/agent-device.git
synced 2026-09-14 20:06:34 +08:00
168de53bee
* fix: improve Android snapshot fidelity * fix: address Android snapshot review edge cases * refactor: simplify Android snapshot cleanup helpers * test: guard SkillGym external runners in sandbox
48 lines
1.7 KiB
TypeScript
48 lines
1.7 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import {
|
|
allowsExternalRunnersInSandbox,
|
|
isNetworkRestrictedCodexSandbox,
|
|
skillGymRunnerEnvironmentError,
|
|
} from './runner-environment.ts';
|
|
|
|
test('detects network-restricted Codex sandboxes', () => {
|
|
assert.equal(isNetworkRestrictedCodexSandbox({ CODEX_SANDBOX_NETWORK_DISABLED: '1' }), true);
|
|
assert.equal(isNetworkRestrictedCodexSandbox({ CODEX_SANDBOX_NETWORK_DISABLED: 'true' }), true);
|
|
assert.equal(isNetworkRestrictedCodexSandbox({ CODEX_SANDBOX_NETWORK_DISABLED: '0' }), false);
|
|
assert.equal(isNetworkRestrictedCodexSandbox({}), false);
|
|
});
|
|
|
|
test('allows explicit SkillGym sandbox override', () => {
|
|
assert.equal(
|
|
allowsExternalRunnersInSandbox({ SKILLGYM_ALLOW_EXTERNAL_RUNNERS_IN_SANDBOX: '1' }),
|
|
true,
|
|
);
|
|
assert.equal(
|
|
allowsExternalRunnersInSandbox({ SKILLGYM_ALLOW_EXTERNAL_RUNNERS_IN_SANDBOX: 'true' }),
|
|
true,
|
|
);
|
|
assert.equal(allowsExternalRunnersInSandbox({}), false);
|
|
});
|
|
|
|
test('explains why external SkillGym runners are blocked in restricted sandboxes', () => {
|
|
const message = skillGymRunnerEnvironmentError({
|
|
CODEX_SANDBOX_NETWORK_DISABLED: '1',
|
|
});
|
|
|
|
assert.match(message ?? '', /external Codex and Claude runners/);
|
|
assert.match(message ?? '', /pnpm test:skillgym:case open-and-snapshot/);
|
|
assert.match(message ?? '', /SKILLGYM_ALLOW_EXTERNAL_RUNNERS_IN_SANDBOX=1/);
|
|
});
|
|
|
|
test('does not block normal local SkillGym runs', () => {
|
|
assert.equal(skillGymRunnerEnvironmentError({}), null);
|
|
assert.equal(
|
|
skillGymRunnerEnvironmentError({
|
|
CODEX_SANDBOX_NETWORK_DISABLED: '1',
|
|
SKILLGYM_ALLOW_EXTERNAL_RUNNERS_IN_SANDBOX: '1',
|
|
}),
|
|
null,
|
|
);
|
|
});
|