proposal-hints-create-context.test.mjs
31 lines 1.3 KB
Raw
sha256:8915fe406161f95c1681f9469375e7bae5b28c884f00bedbdef65e4b0cd0738d docs(flow): commit FLOW-V0-SPEC.md hygiene for 7A-INT merge Human 10 hours ago
1 import test from 'node:test';
2 import assert from 'node:assert/strict';
3 import { proposalDataForHostedReviewHintsFromCreate } from '../hub/gateway/proposal-hints-create-context.mjs';
4
5 test('returns null when no proposal_id', () => {
6 assert.equal(proposalDataForHostedReviewHintsFromCreate({ path: 'a.md' }, { body: 'x' }), null);
7 });
8
9 test('uses canister body when present', () => {
10 const out = proposalDataForHostedReviewHintsFromCreate(
11 { proposal_id: 'p1', path: 'n.md', body: 'from-canister' },
12 { path: 'n.md', body: 'from-client' },
13 );
14 assert.deepEqual(out, { path: 'n.md', body: 'from-canister' });
15 });
16
17 test('falls back to client body when canister omits body', () => {
18 const out = proposalDataForHostedReviewHintsFromCreate(
19 { proposal_id: 'p1', path: 'projects/x.md', status: 'proposed' },
20 { path: 'projects/x.md', body: 'client markdown', source: 'hub_ui' },
21 );
22 assert.deepEqual(out, { path: 'projects/x.md', body: 'client markdown' });
23 });
24
25 test('falls back to client body when canister returns empty string', () => {
26 const out = proposalDataForHostedReviewHintsFromCreate(
27 { proposal_id: 'p1', path: 'p.md', body: '' },
28 { path: 'p.md', body: 'filled from client' },
29 );
30 assert.deepEqual(out, { path: 'p.md', body: 'filled from client' });
31 });
File History 1 commit
sha256:8915fe406161f95c1681f9469375e7bae5b28c884f00bedbdef65e4b0cd0738d docs(flow): commit FLOW-V0-SPEC.md hygiene for 7A-INT merge Human 10 hours ago