Files
edentext/tests/unit/decor-sections.test.ts
Steffen Becker 7e2eb53ddc test: a decorated section, a run under an underlining style, a wider sweep
Three regression tests for what a 5000-seed sweep turned up, each checked to
fail without its fix. A run repeating its style's own plain underline is
lossy by design, so the generator no longer puts one under a named style.
2026-09-06 19:07:19 +02:00

42 lines
1.8 KiB
TypeScript

// A document whose first master page carries no header at all: the watermark and the fold
// marks mint one, and a section break puts a second master page after it.
import { describe, it, expect } from 'vitest';
import { buildOdt } from '../../src/lib/export/odt';
import { importOdt } from '../../src/lib/import/odt';
import { EMPTY_PAGE_DECOR, DEFAULT_WATERMARK } from '../../src/lib/storage/pageDecor';
const doc = {
type: 'doc',
content: [
{ type: 'paragraph', content: [{ type: 'text', text: 'one' }] },
{ type: 'paragraph', attrs: { sectionBreak: true, breakBefore: 'page' }, content: [{ type: 'text', text: 'two' }] },
],
} as any;
// The first section has no zone of its own and the second does, so the first master page
// is written self-closing while the second carries a header.
const hf = {
header: null, footer: null, pageCount: 2,
sections: [{ header: null, footer: null },
{ header: { type: 'paragraph', content: [{ type: 'text', text: 'zwei' }] }, footer: null }],
} as never;
const build = (decor: unknown, foldMarks = false) => buildOdt(doc, undefined, undefined, hf, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined,
decor as never, undefined, undefined, foldMarks);
describe('page decor across a section break', () => {
const watermark = { ...DEFAULT_WATERMARK, text: 'DRAFT', angle: 135 };
it('reads the watermark back off the first page', async () => {
const res = importOdt(await build({ ...EMPTY_PAGE_DECOR, watermark }));
expect(res.decor.watermark).toEqual(watermark);
});
it('gives every master page the shape', async () => {
const res = importOdt(await build({ ...EMPTY_PAGE_DECOR, watermark }, true));
expect(res.decor.watermark?.text).toBe('DRAFT');
expect(res.foldMarks).toBe(true);
});
});