mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-08-17 14:08:22 +00:00
Clean release snapshot
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
// Source-level tests for highway.getPhrases() and getMastery() public API getters.
|
||||
// The createHighway closure is too heavy for a Node sandbox, so tests inspect
|
||||
// source text to lock in correct wiring — same pattern as highway_filtered_notes.test.js.
|
||||
|
||||
const { test } = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
|
||||
const highwayJs = path.join(__dirname, '..', '..', 'static', 'highway.js');
|
||||
|
||||
test('highway public API exposes getPhrases', () => {
|
||||
const src = fs.readFileSync(highwayJs, 'utf8');
|
||||
assert.match(
|
||||
src,
|
||||
/getPhrases\s*\(\s*\)\s*\{[^}]*_phrases/,
|
||||
'getPhrases must reference _phrases',
|
||||
);
|
||||
});
|
||||
|
||||
test('getPhrases returns null when _phrases is falsy or empty', () => {
|
||||
const src = fs.readFileSync(highwayJs, 'utf8');
|
||||
assert.match(
|
||||
src,
|
||||
/getPhrases\s*\(\s*\)\s*\{[^}]*!\s*_phrases[^}]*return null/,
|
||||
'getPhrases must return null when no phrase data is available',
|
||||
);
|
||||
});
|
||||
|
||||
test('getPhrases maps phrases to index, start_time, end_time, max_difficulty', () => {
|
||||
const src = fs.readFileSync(highwayJs, 'utf8');
|
||||
// Match all four fields within a reasonable window after getPhrases
|
||||
const match = src.match(/getPhrases\s*\(\s*\)([\s\S]{0,400})/);
|
||||
assert.ok(match, 'getPhrases not found in highway.js');
|
||||
const block = match[1];
|
||||
assert.ok(block.includes('start_time'), 'getPhrases must expose start_time');
|
||||
assert.ok(block.includes('end_time'), 'getPhrases must expose end_time');
|
||||
assert.ok(block.includes('max_difficulty'), 'getPhrases must expose max_difficulty');
|
||||
assert.ok(block.includes('index'), 'getPhrases must expose index');
|
||||
});
|
||||
|
||||
test('highway public API exposes getMastery', () => {
|
||||
const src = fs.readFileSync(highwayJs, 'utf8');
|
||||
assert.match(
|
||||
src,
|
||||
/getMastery\s*\(\s*\)\s*\{[^}]*_mastery/,
|
||||
'getMastery must reference _mastery',
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user