import assert from 'node:assert/strict'; import test from 'node:test'; import { mapPlazaError, plazaInternals } from './plaza-posts.mjs'; test('normalizeTags trims, dedupes by order, and caps at five', () => { assert.deepEqual(plazaInternals.normalizeTags([' a ', 'b', '', 'c', 'd', 'e', 'f']), [ 'a', 'b', 'c', 'd', 'e', ]); }); test('clampLimit enforces defaults and maximum', () => { assert.equal(plazaInternals.clampLimit(undefined), 20); assert.equal(plazaInternals.clampLimit(999), 50); assert.equal(plazaInternals.clampLimit(0), 20); }); test('normalizeSort accepts recommend, hot, or new', () => { assert.equal(plazaInternals.normalizeSort(undefined), 'recommend'); assert.equal(plazaInternals.normalizeSort('new'), 'new'); assert.equal(plazaInternals.normalizeSort('hot'), 'hot'); assert.equal(plazaInternals.normalizeSort('recommended'), 'recommend'); }); test('defaultPlazaCoverUrl derives a thumbnail png from publication url', () => { assert.equal( plazaInternals.defaultPlazaCoverUrl('/u/john/pages/demo'), '/u/john/pages/demo.thumbnail.png', ); assert.equal( plazaInternals.defaultPlazaCoverUrl('/u/john/pages/demo?embed=plaza'), '/u/john/pages/demo.thumbnail.png?embed=plaza', ); assert.equal( plazaInternals.defaultPlazaCoverUrl('/u/john/pages/demo/'), '/u/john/pages/demo/index.thumbnail.png', ); }); test('resolvePlazaCoverUrl prefers explicit cover urls and falls back to publication thumbnail', () => { assert.equal( plazaInternals.resolvePlazaCoverUrl(' https://cdn.example.com/cover.png ', '/u/john/pages/demo'), 'https://cdn.example.com/cover.png', ); assert.equal( plazaInternals.resolvePlazaCoverUrl('/u/john/pages/demo.thumbnail.png', 'https://example.com/u/john/pages/demo'), 'https://example.com/u/john/pages/demo.thumbnail.png', ); assert.equal( plazaInternals.resolvePlazaCoverUrl('', '/u/john/pages/demo'), '/u/john/pages/demo.thumbnail.png', ); }); test('mapPlazaError maps documented API codes', () => { assert.equal(mapPlazaError({ code: 'ALREADY_PUBLISHED' }), 409); assert.equal(mapPlazaError({ code: 'PUBLICATION_NOT_ONLINE' }), 422); assert.equal(mapPlazaError({ code: 'POST_PERMISSION_DENIED' }), 403); assert.equal(mapPlazaError({ code: 'unknown' }), 500); });