Files
obelisk/tests/recap-capture-query.test.mjs
T
tommy0103 905c10789a refactor(app): migrate to ESM; preload emitted as CJS for sandbox (Phase 5d-3b)
App source (main/preload/worker/renderer) -> ESM; app is now type: module;
__dirname via import.meta.url; worker spawned with type module. Preload is built
as CJS (electron-vite output format) because the sandboxed renderer does not
support ESM preload; main loads ../preload/index.js. Removed dead imports
(nativeImage, readline) and the obsolete scripts/dev.js.

Tests: 4 app tests require->import; app-main-settings rewritten with node:test
mock.module + dynamic import (replacing CJS Module._load mocking); test script
adds --experimental-test-module-mocks. electron-vite build clean, 119/119, and
npm run dev verified: app launches, preload bridges IPC, data loads.
2026-07-09 11:05:00 +08:00

29 lines
943 B
JavaScript

import { test } from 'node:test';
import assert from 'node:assert/strict';
import { createRequire } from 'node:module';
const require = createRequire(import.meta.url);
import { buildRecapExportQuery, cleanRecapFilename } from '../app/src/main/recap-capture-query.js';
test('recap export query includes the selected recap filename', () => {
const query = buildRecapExportQuery({
cardIdx: 3,
archetype: 'shipper',
filename: 'recap-2026-06.json',
});
assert.equal(query, 'card=3&arch=shipper&file=recap-2026-06.json');
});
test('recap export query strips paths before passing filename to renderer', () => {
assert.equal(cleanRecapFilename('/tmp/recap-2026-W24.json'), 'recap-2026-W24.json');
assert.equal(
buildRecapExportQuery({
cardIdx: '2',
archetype: 'architect',
filename: '/Users/dev/.obelisk/recap/recap-2026-W24.json',
}),
'card=2&arch=architect&file=recap-2026-W24.json',
);
});