mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-07-21 12:21:49 +00:00
48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
'use strict';
|
|
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
|
|
const src = fs.readFileSync(path.join(__dirname, '..', '..', 'static', 'app.js'), 'utf8');
|
|
const m = src.match(/\/\* @pure:editor-pending-view:start \*\/[\s\S]*?\/\* @pure:editor-pending-view:end \*\//);
|
|
if (!m) throw new Error('pending-view helper block not found');
|
|
|
|
const api = new Function('"use strict";' + m[0] + '\nreturn { _buildEditorPendingViewPure };')();
|
|
|
|
test('edit-region handoff defaults cursor to region start and marks return path', () => {
|
|
const out = api._buildEditorPendingViewPure('song.sloppak', 2, { a: 12.5, b: 20 }, { returnToHighway: true });
|
|
assert.deepStrictEqual(out, {
|
|
filename: 'song.sloppak',
|
|
arrangement: 2,
|
|
barSel: { startTime: 12.5, endTime: 20 },
|
|
returnToHighway: true,
|
|
cursorTime: 12.5,
|
|
});
|
|
});
|
|
|
|
test('return-trip handoff preserves explicit viewport state', () => {
|
|
const out = api._buildEditorPendingViewPure('song.sloppak', 1, { a: 8, b: 14 }, {
|
|
scrollX: -4,
|
|
zoom: 160,
|
|
cursorTime: 9.25,
|
|
});
|
|
assert.deepStrictEqual(out, {
|
|
filename: 'song.sloppak',
|
|
arrangement: 1,
|
|
barSel: { startTime: 8, endTime: 14 },
|
|
cursorTime: 9.25,
|
|
scrollX: 0,
|
|
zoom: 160,
|
|
});
|
|
});
|
|
|
|
test('missing region still produces a stable pending view shell', () => {
|
|
const out = api._buildEditorPendingViewPure('song.sloppak', -1, null, {});
|
|
assert.deepStrictEqual(out, {
|
|
filename: 'song.sloppak',
|
|
arrangement: 0,
|
|
barSel: null,
|
|
});
|
|
});
|