Initial curated chimera source from a8ae5b1db07fb49926c94585e2718e5130330974
This commit is contained in:
commit
c737a37f71
531 files changed
+119270
No files matched your search
@@ -0,0 +1,45 @@
|
||||
'use strict';
|
||||
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('fs');
|
||||
const os = require('os');
|
||||
const path = require('path');
|
||||
const test = require('node:test');
|
||||
const { classifyRoot, createSourceClassificationService } = require('../../src/services/source-classification-service');
|
||||
|
||||
test('source classifier recognizes PS4 and PS5 roots without changing settings', () => {
|
||||
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'chimera-source-classification-'));
|
||||
const ps4 = path.join(root, 'PS4');
|
||||
const ps5 = path.join(root, 'PS5');
|
||||
fs.mkdirSync(path.join(ps4, 'CUSA12345 Example'), { recursive: true });
|
||||
fs.mkdirSync(path.join(ps5, 'PPSA54321 Example'), { recursive: true });
|
||||
const writes = [];
|
||||
try {
|
||||
assert.equal(classifyRoot(ps4).classification, 'ps4');
|
||||
assert.equal(classifyRoot(ps5).classification, 'ps5');
|
||||
const service = createSourceClassificationService({
|
||||
roots: () => [ps4, ps5],
|
||||
settings: { get: (_key, fallback) => fallback, set: (...args) => writes.push(args) },
|
||||
});
|
||||
const result = service.analyze();
|
||||
assert.equal(result.automaticChangesApplied, 0);
|
||||
assert.equal(result.recommendations.length, 2);
|
||||
assert.deepEqual(writes, []);
|
||||
} finally {
|
||||
fs.rmSync(root, { recursive: true, force: true });
|
||||
}
|
||||
});
|
||||
|
||||
test('source classifier leaves ambiguous and missing roots as review evidence', () => {
|
||||
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'chimera-source-ambiguous-'));
|
||||
try {
|
||||
fs.writeFileSync(path.join(root, 'readme.txt'), 'unknown');
|
||||
const ambiguous = classifyRoot(root);
|
||||
const missing = classifyRoot(path.join(root, 'missing'));
|
||||
assert.equal(ambiguous.classification, 'unknown');
|
||||
assert.equal(ambiguous.confidence, 'low');
|
||||
assert.equal(missing.exists, false);
|
||||
} finally {
|
||||
fs.rmSync(root, { recursive: true, force: true });
|
||||
}
|
||||
});
|
||||
Reference in new issue
Block a user