hub-gateway-note-facets.test.mjs
33 lines 1.3 KB
Raw
sha256:c2dbf04d56308f3bbf2d06e6d2eb022b8948b1e827195fe525a44e5e18d5f9c0 feat(auth): Phase B Connect cloud agent (RFC 8628) + Hermes… Human minor ⚠ breaking 12 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 1 commit
sha256:93bcf8f9bd56d8c5b9339f4ec73b9ebd66571398d56262d38eedc2cfa9db9882 fix(test): align Band B landing assertion with desktop MCP … Human 12 days ago