31 lines
1.3 KiB
JavaScript
31 lines
1.3 KiB
JavaScript
const { test } = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const { needsReanalysis } = require('./cache');
|
|
|
|
test('sem memoria previa, sempre precisa de IA', () => {
|
|
const result = needsReanalysis({ memory: null, currentHash: 'abc', now: 1000 });
|
|
assert.equal(result.needsAi, true);
|
|
assert.equal(result.reason, 'no_cache');
|
|
});
|
|
|
|
test('hash igual e sem next_review_at vencido usa cache', () => {
|
|
const memory = { last_context_hash: 'abc', next_review_at: null };
|
|
const result = needsReanalysis({ memory, currentHash: 'abc', now: 1000 });
|
|
assert.equal(result.needsAi, false);
|
|
assert.equal(result.reason, 'cache_valid');
|
|
});
|
|
|
|
test('hash diferente forca reavaliacao (mudanca significativa)', () => {
|
|
const memory = { last_context_hash: 'abc', next_review_at: null };
|
|
const result = needsReanalysis({ memory, currentHash: 'xyz', now: 1000 });
|
|
assert.equal(result.needsAi, true);
|
|
assert.equal(result.reason, 'context_changed');
|
|
});
|
|
|
|
test('next_review_at vencido forca reavaliacao mesmo com hash igual', () => {
|
|
const memory = { last_context_hash: 'abc', next_review_at: 500 };
|
|
const result = needsReanalysis({ memory, currentHash: 'abc', now: 1000 });
|
|
assert.equal(result.needsAi, true);
|
|
assert.equal(result.reason, 'review_due');
|
|
});
|