hub-gateway-note-facets.test.mjs
33 lines 1.3 KB
Raw
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd feat(calendar): enforce agent context tiers in retrieval AP… Human minor ⚠ breaking 2 days ago
1 import { describe, it } from 'node:test';
2 import assert from 'node:assert/strict';
3 import {
4 materializeListFrontmatter,
5 deriveFacetsFromCanisterNotes,
6 } from '../hub/gateway/note-facets.mjs';
7
8 describe('note-facets', () => {
9 it('materializeListFrontmatter parses JSON string', () => {
10 const fm = materializeListFrontmatter('{"tags":"a,b","project":"p1"}');
11 assert.equal(fm.project, 'p1');
12 assert.ok(Array.isArray(fm.tags) === false);
13 });
14
15 it('deriveFacetsFromCanisterNotes collects folders tags projects', () => {
16 const facets = deriveFacetsFromCanisterNotes([
17 { path: 'inbox/x.md', frontmatter: '{"tags":"t1, t2","project":"myproj"}' },
18 { path: 'projects/launch/a.md', frontmatter: '{}' },
19 ]);
20 assert.ok(facets.folders.includes('inbox'));
21 assert.ok(facets.folders.includes('projects'));
22 assert.ok(facets.tags.includes('t1'));
23 assert.ok(facets.tags.includes('t2'));
24 assert.ok(facets.projects.includes('myproj'));
25 });
26
27 it('empty string frontmatter yields empty facets aside from folder from path', () => {
28 const facets = deriveFacetsFromCanisterNotes([{ path: 'inbox/y.md', frontmatter: '{}' }]);
29 assert.equal(facets.projects.length, 0);
30 assert.equal(facets.tags.length, 0);
31 assert.deepEqual(facets.folders, ['inbox']);
32 });
33 });
File History 2 commits
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd feat(calendar): enforce agent context tiers in retrieval AP… Human minor 2 days ago
sha256:9103f98c89257ed2b01c237cea895dabb3e85ea337dccb1161c175e4422355b6 docs: accept Calendar Events v0 spec with Phase 0 security … Human 2 days ago