Files
2026-07-13 12:47:58 +08:00

46 lines
1.2 KiB
TypeScript

import { assert, describe } from 'vitest'
import { sandboxTest, isDebug } from '../../setup.js'
describe('sandbox global env vars', () => {
sandboxTest.scoped({
sandboxOpts: {
envs: { FOO: 'bar' },
},
})
sandboxTest.skipIf(isDebug)(
'sandbox global env vars',
async ({ sandbox }) => {
const cmd = await sandbox.commands.run('echo $FOO')
assert.equal(cmd.exitCode, 0)
assert.equal(cmd.stdout.trim(), 'bar')
}
)
})
sandboxTest('bash command scoped env vars', async ({ sandbox }) => {
const cmd = await sandbox.commands.run('echo $FOO', {
envs: { FOO: 'bar' },
})
assert.equal(cmd.exitCode, 0)
assert.equal(cmd.stdout.trim(), 'bar')
// test that it is secure and not accessible to subsequent commands
const cmd2 = await sandbox.commands.run('sudo echo "$FOO"')
assert.equal(cmd2.exitCode, 0)
assert.equal(cmd2.stdout.trim(), '')
})
sandboxTest('python command scoped env vars', async ({ sandbox }) => {
const cmd = await sandbox.commands.run(
'python3 -c "import os; print(os.environ[\'FOO\'])"',
{ envs: { FOO: 'bar' } }
)
assert.equal(cmd.exitCode, 0)
assert.equal(cmd.stdout.trim(), 'bar')
})