hub-gateway-note-facets.test.mjs
33 lines 1.3 KB
Raw
sha256:b5f647cb9c409f563d4671fe3fc05ddea01fabfed9b41fc11cb923588e1c1baf mirror: GitHub Phase A durable MCP OAuth (#270) Human minor ⚠ breaking 11 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 4 commits
sha256:b5f647cb9c409f563d4671fe3fc05ddea01fabfed9b41fc11cb923588e1c1baf mirror: GitHub Phase A durable MCP OAuth (#270) Human minor 11 days ago
sha256:d8c648b20a4d53b2673c5c082ee7edfa7b2fc9b11080832da1f38807b6bf940b fix(7C-L1b): route hosted delegation proposals through cani… Human minor 31 days ago
sha256:2827ba9e7632a4b141c50caf1e8f7d77abbc3515be20e7465f2bccb0ac4edf91 fix: repair endpoint now sets has_active_subscription when … Human minor 51 days ago