todo-app/test
Krzysztof Rudnicki e103261bc8 Confirm before deleting a note
Both delete paths -- the per-note actions sheet and the detail screen -- deleted
immediately, with no confirmation and no undo. With a pointer that is merely
risky: you have to travel to the control and press it. With a keyboard it is
one Tab away from a Return you were about to press anyway, and the note is gone
with nothing to recover it.

The confirmation is built so the SAFE option is what a reflexive keypress hits:
Cancel is autofocused, Escape dismisses as "no", and the destructive button is
error-coloured but deliberately not the default action. Escape is bound
explicitly rather than relying on the barrier, because the desktop surface here
is a Chrome --app window where that cannot be assumed -- and a confirmation the
keyboard cannot back out of is worse than no confirmation at all.

The actions sheet also gains isScrollControlled. Default bottom sheets cap at
9/16 of the viewport, i.e. ~432px on a 768px screen, and this sheet's height
grows with the note title and its chip rows -- so Delete could be clipped out of
reach on the very screen this app is used on.

The two existing delete tests correctly failed once confirmation landed; both
now go through the dialog, and each gains a cancel-keeps-the-note counterpart so
the negative path is covered too. 204 tests, 100% line coverage held.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 16:31:15 +02:00
..
capture_screen_test.dart Surface sync outcomes so devices can't silently diverge 2026-07-16 17:58:41 +02:00
confirm_test.dart Confirm before deleting a note 2026-07-30 16:31:15 +02:00
fake_note_repository.dart Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
fake_secure_storage.dart Store the GitHub sync token in the OS keystore, migrating off plaintext 2026-06-15 22:57:05 +02:00
github_device_auth_test.dart Reach 100% test coverage (capture-screen sync DI + plugin/clipboard fakes) 2026-06-15 17:11:01 +02:00
local_backup_test.dart Cut per-keystroke O(N) work to keep capture smooth at scale 2026-07-11 21:51:46 +02:00
markdown_view_test.dart Add full note view/editor with templates and Markdown render 2026-06-15 21:59:31 +02:00
note_detail_screen_test.dart Confirm before deleting a note 2026-07-30 16:31:15 +02:00
note_editor_test.dart Default a bare-link draft to the freeform template 2026-07-26 22:13:26 +02:00
note_repository_test.dart Cut the llm-design-spec template from 12 sections to 7 2026-07-26 22:03:35 +02:00
note_template_test.dart Default a bare-link draft to the freeform template 2026-07-26 22:13:26 +02:00
note_test.dart Add list filters/sort, status, priority rework, export/import, structured template 2026-06-15 16:52:59 +02:00
notes_list_screen_test.dart Confirm before deleting a note 2026-07-30 16:31:15 +02:00
notes_markdown_test.dart Add list filters/sort, status, priority rework, export/import, structured template 2026-06-15 16:52:59 +02:00
settings_screen_test.dart Cut the llm-design-spec template from 12 sections to 7 2026-07-26 22:03:35 +02:00
sync_service_test.dart Surface sync outcomes so devices can't silently diverge 2026-07-16 17:58:41 +02:00
sync_settings_test.dart Point notes sync at the consolidated syncs monorepo 2026-07-10 14:04:05 +02:00
theme_test.dart warm-tint the unified-design-system palette, fix design audit violations 2026-07-22 18:56:45 +02:00
wrapper_server_test.dart Cut the llm-design-spec template from 12 sections to 7 2026-07-26 22:03:35 +02:00