Files
2fa/tests/scripts/settings-code.test.js
wuzf 88b9cd8878 refactor(backup): unify backup formats and indexing
Centralize backup serialization in utils/backup-format.js with a
single createBackupEntry() path shared by scheduled backups, manual
backups and exports. Introduce utils/backup-index.js for KV key
listing/pruning and utils/data-hash.js for change detection,
replacing ad-hoc helpers scattered across api/secrets/backup.js,
restore.js and worker.js. UI backup/export modules consume the shared
format so HTML/JSON/CSV exports round-trip through the same schema.
2026-04-11 23:35:46 +08:00

22 lines
1.2 KiB
JavaScript

import { describe, expect, it } from 'vitest';
import { getSettingsCode } from '../../src/ui/scripts/settings.js';
describe('settings module code generation', () => {
it('guards the default export format against stale preference loads and saves', () => {
const code = getSettingsCode();
expect(code).toContain('let preferencesLoadRequestId = 0;');
expect(code).toContain('let defaultExportFormatChangeVersion = 0;');
expect(code).toContain('let defaultExportFormatSaveRequestId = 0;');
expect(code).toContain('const requestId = ++preferencesLoadRequestId;');
expect(code).toContain('const formatVersionAtStart = defaultExportFormatChangeVersion;');
expect(code).toContain('if (requestId !== preferencesLoadRequestId) {');
expect(code).toContain('const selectedFormat = formatSelect.value;');
expect(code).toContain('const requestId = ++defaultExportFormatSaveRequestId;');
expect(code).toContain('body: JSON.stringify({ defaultExportFormat: selectedFormat }),');
expect(code).toContain('if (requestId !== defaultExportFormatSaveRequestId) {');
expect(code).toContain('const savedFormat = (data.settings && data.settings.defaultExportFormat) || selectedFormat;');
});
});