import assert from 'node:assert/strict'; import { test } from 'node:test'; import { PAPER_SHEET_PATH, PAPER_SHEET_PRESETS, paperSheetPreset, publicPaperSheetRendering, } from '../src/worksheets/paper-sheet-presets'; import { parseWorksheetExport } from '../src/imports/worksheet-import'; import { worksheetFixture } from './worksheet-import.fixture'; test('独立纸张:固定注册、路由归属、导入配置和公开参数一致', () => { assert.equal( new Set(PAPER_SHEET_PRESETS.map((entry) => entry.id)).size, 10, ); for (const entry of PAPER_SHEET_PRESETS) { const path = `${PAPER_SHEET_PATH}?id=${entry.id}`; const config = paperSheetPreset(entry.id, path)!; const row = parseWorksheetExport( JSON.stringify([{ ...worksheetFixture, _id: entry.id, path }]), ).rows[0]!.data; assert.equal(row.rendererKey, 'paper-sheet'); assert.deepEqual(row.renderConfig, { paperType: entry.paperType }); assert.deepEqual( publicPaperSheetRendering({ id: entry.id, path, ...config, renderConfig: { ...config.renderConfig, privateKey: 'must-not-leak', }, }), { rendererKey: 'paper-sheet', paperType: entry.paperType }, ); assert.throws(() => paperSheetPreset(entry.id, `${PAPER_SHEET_PATH}?id=paper-sheet`), ); assert.equal( publicPaperSheetRendering({ id: entry.id, path, ...config, renderConfig: { paperType: 'unknown' }, }), undefined, ); assert.equal( publicPaperSheetRendering({ id: entry.id, path, ...config, rendererKey: 'unknown', }), undefined, ); } assert.equal( paperSheetPreset('paper-sheet', `${PAPER_SHEET_PATH}?id=paper-sheet`), undefined, ); assert.equal( paperSheetPreset('paper-unregistered', '/arbitrary'), undefined, ); });