From 6ee2e4e000c9513d09c98554ed0162a97a4f7824 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 29 Sep 2026 08:36:41 -0700 Subject: Discard canceled post drafts --- tools/post-cancel-test.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tools/post-cancel-test.js (limited to 'tools') diff --git a/tools/post-cancel-test.js b/tools/post-cancel-test.js new file mode 100644 index 0000000..5527bf2 --- /dev/null +++ b/tools/post-cancel-test.js @@ -0,0 +1,17 @@ +// Canceling a new post closes the composer and discards every part of its +// saved state, including a late attachment result. +import assert from 'node:assert/strict'; + +const source = await Bun.file('src/features/messages.js').text(); +const start = source.indexOf('function cancelPost()'); +const end = source.indexOf('\n }', start); +const cancel = source.slice(start, end); +assert(start > 0, 'post cancel handler exists'); +assert(cancel.includes('postAttachGeneration++'), 'late uploads are invalidated'); +assert(cancel.includes('ui.profCompose = null'), 'composer is closed'); +assert(cancel.includes('ui.postMedia = []'), 'pending attachment metadata is removed'); +assert(cancel.includes('ui.postPreview = false'), 'preview state is removed'); +assert(cancel.includes('discardDraft(POST_DRAFT)'), 'persisted draft is removed immediately'); +assert(source.includes("onClick: cancelPost }, t('cancel')"), 'Cancel button uses the discard handler'); + +console.log('✓ Cancel closes the new-post form and removes its complete saved draft'); -- cgit v1.2.3