approval-log.test.mjs
68 lines 2.5 KB
Raw
sha256:b5f647cb9c409f563d4671fe3fc05ddea01fabfed9b41fc11cb923588e1c1baf mirror: GitHub Phase A durable MCP OAuth (#270) Human minor ⚠ breaking 11 days ago
1 import assert from 'node:assert/strict';
2 import { test } from 'node:test';
3 import {
4 approvalLogRelativePath,
5 isApprovalLogPath,
6 filterHitsByContentScope,
7 buildApprovalLogWrite,
8 resolveSearchFolderForContentScope,
9 } from '../lib/approval-log.mjs';
10
11 test('isApprovalLogPath', () => {
12 assert.equal(isApprovalLogPath('approvals/2026-03-30-abc.md'), true);
13 assert.equal(isApprovalLogPath('inbox/x.md'), false);
14 });
15
16 test('approvalLogRelativePath is stable for uuid', () => {
17 const p = approvalLogRelativePath('550e8400-e29b-41d4-a716-446655440000', '2026-03-30T12:00:00.000Z');
18 assert.equal(p, 'approvals/2026-03-30-550e8400-e29b-41d4-a716-446655440000.md');
19 });
20
21 test('filterHitsByContentScope', () => {
22 const hits = [{ path: 'inbox/a.md' }, { path: 'approvals/2026-03-30-x.md' }];
23 assert.equal(filterHitsByContentScope(hits, 'notes').length, 1);
24 assert.equal(filterHitsByContentScope(hits, 'approval_logs').length, 1);
25 assert.equal(filterHitsByContentScope(hits, 'all').length, 2);
26 });
27
28 test('buildApprovalLogWrite shapes frontmatter', () => {
29 const w = buildApprovalLogWrite({
30 proposalId: 'pid-1',
31 targetPath: 'inbox/foo.md',
32 approvedAt: '2026-03-30T00:00:00.000Z',
33 approvedBy: 'user-1',
34 intent: 'fix typo',
35 });
36 assert.match(w.relativePath, /^approvals\/2026-03-30-pid-1\.md$/);
37 assert.equal(w.frontmatter.kind, 'approval_log');
38 assert.equal(w.frontmatter.target_path, 'inbox/foo.md');
39 assert.ok(w.body.includes('inbox/foo.md'));
40 });
41
42 test('buildApprovalLogWrite appends proposedBodyExcerpt for search', () => {
43 const w = buildApprovalLogWrite({
44 proposalId: 'pid-2',
45 targetPath: 'x.md',
46 approvedAt: '2026-03-30T00:00:00.000Z',
47 proposedBodyExcerpt: 'embeddings and indexing test',
48 });
49 assert.ok(w.body.includes('Proposal excerpt'));
50 assert.ok(w.body.includes('embeddings'));
51 });
52
53 test('resolveSearchFolderForContentScope approval_logs uses approvals prefix', () => {
54 const r = resolveSearchFolderForContentScope('approval_logs', undefined);
55 assert.equal(r.impossible, false);
56 assert.equal(r.folder, 'approvals');
57 assert.equal(r.wideNotesFetch, false);
58 });
59
60 test('resolveSearchFolderForContentScope approval_logs conflicts with other folder', () => {
61 const r = resolveSearchFolderForContentScope('approval_logs', 'projects/foo');
62 assert.equal(r.impossible, true);
63 });
64
65 test('resolveSearchFolderForContentScope notes requests wide fetch', () => {
66 const r = resolveSearchFolderForContentScope('notes', '');
67 assert.equal(r.wideNotesFetch, true);
68 });
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