fix(engine): FILE-MISSING named the class for a trait-sourced requirement
security -> SECURITY.md read as "missing required file for class `standalone`", sending the operator to a class definition that never listed the requirement. requirementsFor now carries each required file's origin (class vs. trait) and checkRequiredFiles names whichever actually required it. Failing test written first per the Iron Law. No release forced by this alone. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuWwACwhun35j52AnTxRKV
This commit is contained in:
parent
f422b63bb3
commit
e5cd1bfaaf
4 changed files with 35 additions and 6 deletions
|
|
@ -1480,6 +1480,19 @@ test('a repo without the security trait owes no SECURITY.md', () => {
|
|||
assert.equal(f.some((x) => x.msg.includes('SECURITY.md')), false);
|
||||
});
|
||||
|
||||
test('a trait-required file is missing, FILE-MISSING names the trait, not the class', () => {
|
||||
const f = checkRequiredFiles({ present: ['README.md', 'LICENSE'], klass: 'standalone', traits: ['security'] }, REGISTER);
|
||||
const finding = f.find((x) => x.code === 'FILE-MISSING' && x.msg.includes('SECURITY.md'));
|
||||
assert.equal(finding.msg.includes('trait `security`'), true);
|
||||
assert.equal(finding.msg.includes('class `standalone`'), false);
|
||||
});
|
||||
|
||||
test('a class-required file is missing, FILE-MISSING still names the class', () => {
|
||||
const f = checkRequiredFiles({ present: [], klass: 'standalone' }, REGISTER);
|
||||
const finding = f.find((x) => x.code === 'FILE-MISSING' && x.msg.includes('LICENSE'));
|
||||
assert.equal(finding.msg.includes('class `standalone`'), true);
|
||||
});
|
||||
|
||||
test('the security trait requires limitations to be stated', () => {
|
||||
const f = checkHeadings({ readme: '# x\n## Install\n## Non-goals\n', klass: 'standalone', traits: ['security'] }, REGISTER);
|
||||
assert.equal(f.some((x) => x.code === 'HEADING-MISSING' && x.msg.includes('Known limitations')), true);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue