Files
lobster/test/github_pr_notify_format.test.ts
T

22 lines
960 B
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { buildPrChangeSummary } from '../src/workflows/github_pr_monitor.js';
function formatLikeWorkflow({ repo, pr, after, before }) {
const summary = buildPrChangeSummary(before, after);
const fields = summary.changedFields.length ? ` (${summary.changedFields.join(', ')})` : '';
const title = after?.title ? `: ${after.title}` : '';
const url = after?.url ? ` ${after.url}` : '';
return `PR updated: ${repo}#${pr}${title}${fields}.${url}`.replace(/\s+/g, ' ').trim();
}
test('notify message includes repo/pr and changed fields', () => {
const before = { number: 1, title: 'A', url: 'u', state: 'OPEN', updatedAt: 't1' };
const after = { ...before, title: 'B', updatedAt: 't2' };
const msg = formatLikeWorkflow({ repo: 'o/r', pr: 1, before, after });
assert.ok(msg.includes('o/r#1'));
assert.ok(msg.includes('title'));
assert.ok(msg.includes('updatedAt'));
});