Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ project adheres to [Semantic Versioning](https://semver.org/).
- Playwright setup note in the Quick start section of `README.md`.

### Fixed
- `aas inspect --root` now rejects a blank path, matching the other saved-case
commands. A whitespace root used to be treated as a directory and failed
with a filesystem error.
- The act stage now reads the rail bundle file with the same byte cap and
symlink refusal as a saved case. The previous read followed a link and
accepted a file larger than the child stdout cap.
Expand Down
2 changes: 1 addition & 1 deletion bin/case-review.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ export function parseInspectArgs(args) {
for(let index=0;index<args.length;index++) {
const token=args[index];
if(token==='--root') {
if(seenRoot || !args[index+1] || args[index+1].startsWith('--')) throw new UsageError('inspect requires one output root path.');
if (seenRoot || !args[index + 1]?.trim() || args[index + 1].startsWith("--")) throw new UsageError("inspect requires one output root path.");
seenRoot=true;outputRoot=args[++index];
} else if(token==='--json'||token==='--markdown') {
if(format!==null) throw new UsageError('Choose one inspect output format.');
Expand Down
8 changes: 8 additions & 0 deletions test/stack.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1983,6 +1983,14 @@ test('saved-case commands use an explicit output root without component setup',
}
});

test("inspect rejects a blank output root", async () => {
for (const root of [" ", "\t"]) {
const result = await captureMain(["inspect", "case-a", "--root", root]);
assert.equal(result.exitCode, 2, result.stderr);
assert.match(result.stderr, /output root/);
}
});

test('human history reports damaged entries and continuation even on empty pages', async () => {
const outputRoot = tempRoot(); writeCase(outputRoot, 'case-a');
mkdirSync(join(outputRoot, 'runs', 'case-z'), {recursive:true});
Expand Down