scripts/render-review-actions.test.mjs
scripts/render-review-actions.test.mjsBrowse 8 files
632 tokens
2,480 bytes
Token encoding: o200k_base
Snapshot fac8604
← Back to SKILL.md
1import assert from 'node:assert/strict';2import test from 'node:test';3import { renderReviewActionsMarkdown } from './render-review-actions.mjs';4 5function buildPayload() {6 return {7 version: 2,8 pr: { url: 'https://example.com/pr/1' },9 reviewState: {10 path: 'wip/review-state.json',11 fetchedAt: '2026-01-01T00:00:00Z',12 version: 2,13 },14 actions: [15 {16 actionId: 'A1',17 target: {18 kind: 'review_thread',19 nodeId: 'THREAD_1',20 url: 'https://example.com/pr/1#discussion_r1',21 },22 decision: 'will_address',23 summary: 'fix foo \\| bar',24 targetFiles: ['src/a.ts'],25 acceptance: 'trailing \\',26 status: 'pending',27 },28 ],29 };30}31 32test('escapes backslashes before pipes in table cells', () => {33 const markdown = renderReviewActionsMarkdown(buildPayload(), {34 sourcePath: 'wip/review-actions.json',35 });36 37 assert.ok(markdown.includes('fix foo \\\\\\| bar'), `expected escaped summary in:\n${markdown}`);38 assert.ok(markdown.includes('trailing \\\\ |'), `expected escaped acceptance in:\n${markdown}`);39});40 41test('renders sourcePath and target-file code spans with literal backslashes and escaped pipes', () => {42 const payload = buildPayload();43 payload.actions[0].targetFiles = ['src\\win|dows\\a.ts'];44 45 const markdown = renderReviewActionsMarkdown(payload, {46 sourcePath: 'wip\\review-actions.json',47 });48 49 assert.ok(50 markdown.includes('Source: `wip\\review-actions.json`'),51 `expected code-span source in:\n${markdown}`,52 );53 assert.ok(54 markdown.includes('`src\\win\\|dows\\a.ts`'),55 `expected code-span target file in:\n${markdown}`,56 );57});58 59test('renders a target file containing a backtick as an intact code span', () => {60 const payload = buildPayload();61 payload.actions[0].targetFiles = ['src/a`b.ts'];62 63 const markdown = renderReviewActionsMarkdown(payload, {64 sourcePath: 'wip/review-actions.json',65 });66 67 assert.ok(68 markdown.includes('``src/a`b.ts``'),69 `expected fenced code-span target file in:\n${markdown}`,70 );71});72 73test('pads the code span when a target file starts and ends with a backtick', () => {74 const payload = buildPayload();75 payload.actions[0].targetFiles = ['`a.ts`'];76 77 const markdown = renderReviewActionsMarkdown(payload, {78 sourcePath: 'wip/review-actions.json',79 });80 81 assert.ok(markdown.includes('`` `a.ts` ``'), `expected padded code span in:\n${markdown}`);82});83