fix(gstack2): harden integrated runtime verification

This commit is contained in:
Sinabina
2026-07-21 12:29:01 -07:00
parent 09492d34b4
commit 37144e8b05
24 changed files with 2032 additions and 3313 deletions
+25 -3
View File
@@ -107,11 +107,33 @@ describe('gstack state external-effect CLI', () => {
'state', 'effect', 'run_empty', 'silent.tool', '--', silent,
], { cwd, env, stdout: out, stderr: err });
expect(code).toBe(1);
expect(err.value()).toContain('may have occurred');
expect(JSON.parse(err.value())).toMatchObject({
status: 'degraded',
code: 'EXECUTION_EMPTY',
evidence: ['exit code 0', 'stdout and stderr were empty'],
});
expect(out.value()).not.toContain('"status":"success"');
const retryError = sink();
expect(await main([
'state', 'effect', 'run_empty', 'silent.tool', '--', silent,
], { cwd, env, stdout: out, stderr: err })).toBe(1);
expect(err.value()).toContain('was already claimed');
], { cwd, env, stdout: out, stderr: retryError })).toBe(1);
expect(retryError.value()).toContain('was already claimed');
});
test('a nonzero command returns a structured failed result', async () => {
const { cwd, env } = await fixture();
const out = sink();
const err = sink();
await main(['state', 'begin', 'ship', '--run-id', 'run_failed'], { cwd, env, stdout: out, stderr: err });
const code = await main([
'state', 'effect', 'run_failed', 'failed.tool', '--', process.execPath, '-e', 'process.exit(7)',
], { cwd, env, stdout: out, stderr: err });
expect(code).toBe(1);
expect(JSON.parse(err.value())).toMatchObject({
status: 'failed',
code: 'EXECUTION_FAILED',
evidence: ['exit code 7'],
data: { exitCode: 7 },
});
});
});