28 lines
1.1 KiB
JavaScript
28 lines
1.1 KiB
JavaScript
// scripts/test/backfill-series-id.test.js
|
|
const { describe, it } = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const { upsertFrontmatterField } = require('../backfill-series-id.js');
|
|
|
|
describe('upsertFrontmatterField', () => {
|
|
it('inserts new field when missing', () => {
|
|
const md = `---\ntags: [jour-fixe]\nserie: IT Team\nrhythmus: wöchentlich\n---\n\n# Agenda\n`;
|
|
const out = upsertFrontmatterField(md, 'o365_series_id', 'AAMkSeries123');
|
|
assert.ok(out.includes('o365_series_id: AAMkSeries123'));
|
|
assert.ok(out.includes('serie: IT Team'));
|
|
assert.ok(out.endsWith('# Agenda\n'));
|
|
});
|
|
|
|
it('replaces existing field value', () => {
|
|
const md = `---\nserie: X\no365_series_id: OLD\n---\n\nbody\n`;
|
|
const out = upsertFrontmatterField(md, 'o365_series_id', 'NEW');
|
|
assert.ok(out.includes('o365_series_id: NEW'));
|
|
assert.ok(!out.includes('OLD'));
|
|
});
|
|
|
|
it('returns content unchanged when no frontmatter present', () => {
|
|
const md = `# No frontmatter\n`;
|
|
const out = upsertFrontmatterField(md, 'o365_series_id', 'X');
|
|
assert.equal(out, md);
|
|
});
|
|
});
|