import test from 'node:test'; import assert from 'node:assert/strict'; import path from 'node:path'; import { buildMindSpacePageDataPayload, injectMindSpacePageDataContext, injectPublishedPageDataContext, parseMindSpacePublishFilePath, } from './mindspace-public-page-context.mjs'; test('parseMindSpacePublishFilePath extracts userId and relative path', () => { const h5Root = '/srv/memind'; const filePath = path.join( h5Root, 'MindSpace', '1c99b83b-0454-474f-a5d2-129d34506a32', 'public', 'survey.html', ); const parsed = parseMindSpacePublishFilePath(filePath, h5Root); assert.deepEqual(parsed, { userId: '1c99b83b-0454-474f-a5d2-129d34506a32', relativePath: 'public/survey.html', }); }); test('injectMindSpacePageDataContext adds meta and script before head close', () => { const html = 'demook'; const next = injectMindSpacePageDataContext(html, { pageId: 'page-123', accessMode: 'password', }); assert.match(next, /meta name="mindspace-page-data-page-id" content="page-123"/); assert.match(next, /window\.__MINDSPACE_PAGE_DATA__=\{"pageId":"page-123","accessMode":"password"\}/); }); test('buildMindSpacePageDataPayload returns null without pageId', () => { assert.equal(buildMindSpacePageDataPayload({}), null); }); test('injectPublishedPageDataContext injects pageId from publication resolve result', () => { const html = ''; const next = injectPublishedPageDataContext(html, { pageSource: { pageId: '2b201736-03ca-4172-affd-00f2a0f700b5' }, publication: { accessMode: 'public' }, }); assert.match(next, /meta name="mindspace-page-data-page-id" content="2b201736-03ca-4172-affd-00f2a0f700b5"/); assert.match(next, /window\.__MINDSPACE_PAGE_DATA__=\{"pageId":"2b201736-03ca-4172-affd-00f2a0f700b5","accessMode":"public"\}/); });