import assert from 'node:assert/strict' import { readFileSync } from 'node:fs' import test from 'node:test' const refreshOptions = readFileSync(new URL('../src/utils/refreshIntervalOptions.js', import.meta.url), 'utf8') const logsView = readFileSync(new URL('../src/views/LogsView.vue', import.meta.url), 'utf8') const logsScript = readFileSync(new URL('../src/views/scripts/LogsView.js', import.meta.url), 'utf8') const workRecords = readFileSync( new URL('../src/components/audit/DigitalEmployeeWorkRecords.vue', import.meta.url), 'utf8' ) test('shared refresh interval options default to 60 seconds', () => { assert.match(refreshOptions, /DEFAULT_REFRESH_INTERVAL_MS\s*=\s*60000/) for (const value of [1000, 3000, 5000, 10000, 30000, 60000, 180000]) { assert.match(refreshOptions, new RegExp(`value:\\s*${value}`)) } }) test('system logs list exposes refresh interval control', () => { assert.match(logsScript, /refreshInterval\s*=\s*ref\(DEFAULT_REFRESH_INTERVAL_MS\)/) assert.match(logsScript, /window\.setInterval\([\s\S]*refreshInterval\.value/) assert.match(logsView, /刷新时间 \{\{ refreshIntervalLabel \}\}/) assert.match(logsView, /v-for="option in refreshIntervalOptions"/) assert.doesNotMatch(logsView, /刷新日志/) }) test('digital employee work records expose refresh interval control', () => { assert.match(workRecords, /refreshInterval\s*=\s*ref\(DEFAULT_REFRESH_INTERVAL_MS\)/) assert.match(workRecords, /refreshIntervalPickerOptions\s*=\s*REFRESH_INTERVAL_OPTIONS/) assert.match(workRecords, /window\.setInterval\([\s\S]*refreshInterval\.value/) assert.match(workRecords, /刷新时间 \$\{refreshIntervalLabel\}/) assert.doesNotMatch(workRecords, /AGENT_RUN_POLL_INTERVAL_MS/) })