Spec script deletion as confirm_delete_modal and cover it with a test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bauer, Georg
2026-07-22 15:15:31 +02:00
parent 733aa9a6ff
commit 2bf95bfcd0
3 changed files with 45 additions and 4 deletions

View File

@@ -219,7 +219,8 @@ config {
ConfirmationAssignment(action: "tag_merge", pattern: confirm_dialog),
-- "Merge N tags into {target}? Cannot be undone."
ConfirmationAssignment(action: "rebuild_operations", pattern: none),
ConfirmationAssignment(action: "script_delete", pattern: none),
ConfirmationAssignment(action: "script_delete", pattern: confirm_delete_modal),
-- shows script title, no reference list
ConfirmationAssignment(action: "menu_item_delete", pattern: none),
ConfirmationAssignment(action: "metadata_diff_field_sync", pattern: none),
ConfirmationAssignment(action: "import_execute", pattern: none),

View File

@@ -43,6 +43,7 @@ surface ScriptEditorSurface {
ScriptRunRequested(editor.script_id)
ScriptCheckSyntaxRequested(editor.script_id)
ScriptDeleteRequested(editor.script_id)
ScriptDeleteConfirmed(editor.script_id)
@guarantee HeaderLayout
-- Header bar with script title tab.
@@ -123,11 +124,19 @@ rule ScriptRun {
-- Output panel tab, which auto-opens when not visible
}
rule ScriptDelete {
rule ScriptDeleteAction {
when: ScriptDeleteRequested(script_id)
let target = script/Script{id: script_id}
-- No confirmation dialog (action_patterns.allium
-- confirmation_assignments: script_delete -> none)
ensures: ConfirmDeleteModalOpened(script_id)
-- custom modal (not a native dialog): script title, no
-- reference list; Cancel + Delete (destructive red style)
-- — action_patterns.allium
-- confirmation_assignments: script_delete
}
rule ScriptDeleteExecute {
when: ScriptDeleteConfirmed(script_id)
let target = script/Script{id: script_id}
ensures: DeleteScriptRequested(target)
-- DB record + published script file: script.allium DeleteScript
ensures: closeTab(script_id)