feat(fleet): add shared role semantics #768

Merged
jason.woltje merged 7 commits from feat/758-shared-role-resolution into main 2026-07-15 00:53:48 +00:00
Showing only changes of commit ed940f15f3 - Show all commits

View File

@@ -1,4 +1,4 @@
import { chmod, mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
import { mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { fileURLToPath } from 'node:url';
@@ -132,16 +132,10 @@ describe('roster v2 semantic validation', (): void => {
it('rejects an unreadable resolved persona', async () => {
const dirs = await semanticDirs();
const file = join(dirs.overrideDir, 'worker.md');
await writeFile(file, '# worker\n\n(`class: worker`)\n', 'utf8');
await chmod(file, 0o000);
try {
await expect(
validateRosterV2Semantics(parseRosterV2(rosterWithClass('worker'), 'yaml'), dirs),
).rejects.toThrow(/readable persona/i);
} finally {
await chmod(file, 0o600);
}
await mkdir(join(dirs.overrideDir, 'worker.md'));
await expect(
validateRosterV2Semantics(parseRosterV2(rosterWithClass('worker'), 'yaml'), dirs),
).rejects.toThrow(/readable persona/i);
});
it.each([