const test = require('node:test'); const assert = require('node:assert/strict'); const fs = require('node:fs'); const sidepanelJs = fs.readFileSync('sidepanel/sidepanel.js', 'utf8'); const sidepanelCss = fs.readFileSync('sidepanel/sidepanel.css', 'utf8'); test('collectSettingsPayload persists autoRunTotalRuns from run count input', () => { assert.match( sidepanelJs, /autoRunTotalRuns:\s*getRunCountValue\(\)/ ); }); test('run count input autosaves on input and blur', () => { assert.match( sidepanelJs, /inputRunCount\.addEventListener\('input',[\s\S]*markSettingsDirty\(true\);[\s\S]*scheduleSettingsAutoSave\(\);[\s\S]*\}\);/ ); assert.match( sidepanelJs, /inputRunCount\.addEventListener\('blur',[\s\S]*saveSettings\(\{\s*silent:\s*true\s*\}\)\.catch\(\(\)\s*=>\s*\{\s*\}\);[\s\S]*\}\);/ ); }); test('run count input is wide enough for larger totals', () => { assert.match( sidepanelCss, /\.run-count-input\s*\{[\s\S]*width:\s*88px;/ ); });