@bongos/core 1.23.15 → 1.23.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bongos-core.json +32 -32
- package/docs/copy-inventory.md +8 -8
- package/docs/copy-registry.json +26 -26
- package/docs/module-api-changelog.md +2 -0
- package/docs/page-readings.json +3 -3
- package/modules/copy-desk/page-decisions.js +32 -4
- package/modules/copy-desk/page-status.js +19 -10
- package/modules/copy-desk/pages.js +61 -0
- package/modules/copy-desk/routes/copy-desk.js +7 -3
- package/modules/copy-desk/skills/tweak/SKILL.md +1 -1
- package/modules/copy-desk/tests/copy_page_next.mjs +1 -1
- package/modules/copy-desk/tests/copy_page_status.mjs +9 -4
- package/modules/hall-ui/public/approval-queue-lib.js +10 -3
- package/modules/hall-ui/public/approval-queue.js +7 -5
- package/modules/hall-ui/public/studio-lib.js +3 -2
- package/modules/lifecycle/lifecycle.js +2 -0
- package/modules/lifecycle/page-tweak-approve.js +50 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/src/module-api.js +1 -1
- package/tests/copy_desk_page_approve.mjs +53 -0
- package/tests/copy_desk_page_editor.mjs +2 -2
- package/tests/copy_desk_page_next.mjs +1 -1
- package/tests/copy_desk_page_release.mjs +1 -1
- package/tests/copy_desk_page_submit.mjs +2 -2
- package/tests/copy_stuck_page_tweaks.mjs +12 -3
- package/tests/hall_approval_queue.mjs +6 -6
|
@@ -141,8 +141,8 @@ await test('lib: the artboard\'s words, from the route\'s own shape', () => {
|
|
|
141
141
|
assert.equal(lib.displayTitle(home), 'Home', 'an apex template title is Home, the artboard\'s own word');
|
|
142
142
|
assert.equal(lib.subLine(home), '· landing · 1 line rewritten, applied · 1 not applied');
|
|
143
143
|
assert.equal(lib.subLine(projects), '· landing · 1 line rewritten, applied');
|
|
144
|
-
assert.equal(lib.doorDetail(2), '2 pages
|
|
145
|
-
assert.equal(lib.doorDetail(1), '1 page
|
|
144
|
+
assert.equal(lib.doorDetail(2), '2 pages waiting for you');
|
|
145
|
+
assert.equal(lib.doorDetail(1), '1 page waiting for you');
|
|
146
146
|
assert.equal(lib.doorDetail(0), 'nothing waiting for you');
|
|
147
147
|
assert.equal(lib.approvedLine(home, { status_after: 'Text tweaked 3x', next: { page: { title: 'Contact' } } }),
|
|
148
148
|
'Approved. It ships now, and Home reads text tweaked 3x. Next in the queue: Contact.', 'the artboard line, word for word');
|
|
@@ -346,22 +346,22 @@ await test('submitted but not applied: listed apart, marked, how long, no verbs,
|
|
|
346
346
|
const submitted = {
|
|
347
347
|
id: 60, status: 'ready', holder_id: null, artist_id: ME, artist_login: 'me', updated_at: '2026-09-29T08:00:00Z',
|
|
348
348
|
source_ref: pages.roundSourceRef('landing:projects', 2),
|
|
349
|
-
description: ['Page tweak round 2.', pages.composeBatchBlock({ page_id: 'landing:projects', reading_hash: 'h', submitted_at: '2026-09-29T08:00:00Z', lines: [{ key: 'L0002', section: 'list', before: 'Every project', after: 'All of them', placement: 'placed', file: 'x.html', line: 1, string_id: 'a' }] })].join('\n\n'),
|
|
349
|
+
description: ['Page tweak round 2.', pages.composeBatchBlock({ page_id: 'landing:projects', reading_hash: 'h', submitted_at: '2026-09-29T08:00:00Z', lines: [{ key: 'L0002', section: 'list', before: 'Every project', after: 'All of them', placement: 'placed', file: 'x.html', line: 1, string_id: 'a' }] }), pages.composeWordsApprovedBlock({ at: '2026-09-29T09:00:00Z', by: ME })].join('\n\n'),
|
|
350
350
|
};
|
|
351
351
|
const tasks = [...TASKS.filter((t) => t.id !== 42), submitted];
|
|
352
352
|
const data = pageStatus.composeApprovals({ inventory: INVENTORY, tasks, builderId: ME, crafts: ['artist'], now: NOW });
|
|
353
353
|
assert.equal(data.count, 1, 'the door counts reviewable rounds only');
|
|
354
354
|
assert.deepEqual(data.queue.map((q) => q.task_id), ['41']);
|
|
355
355
|
assert.deepEqual(data.not_applied.map((r) => [r.page_id, r.task_id, r.state_word, r.waited_days, r.line_count]),
|
|
356
|
-
[['landing:projects', '60', '
|
|
356
|
+
[['landing:projects', '60', 'Approved, waiting to be applied', 21, 1]]);
|
|
357
357
|
|
|
358
358
|
const b = bootPanel({ answers: { [APPROVALS]: { ok: true, ...data }, [vis(41)]: slotsFor(41) } });
|
|
359
359
|
await b.panel.open(); await settle(); await settle();
|
|
360
|
-
assert.equal(text(b.q('.aq-pending__h')), '
|
|
360
|
+
assert.equal(text(b.q('.aq-pending__h')), 'Approved, not applied yet (1)');
|
|
361
361
|
const row = b.q('.aq-pending__row');
|
|
362
362
|
assert.match(text(row), /Projects/);
|
|
363
363
|
assert.match(text(row), /not applied yet/);
|
|
364
|
-
assert.match(text(row), /
|
|
364
|
+
assert.match(text(row), /Approved, waiting to be applied · waiting 21 days\. The words are approved and waiting to be put on the page/);
|
|
365
365
|
assert.equal(row.querySelectorAll('button').length, 0, 'no approve or send-back on a page nobody applied');
|
|
366
366
|
assert.deepEqual(b.counts, [1]);
|
|
367
367
|
|