aboutsummaryrefslogtreecommitdiff
path: root/gui/internal/model/plan_test.go
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-09-16 09:28:32 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-09-16 09:28:32 +0200
commit27eb6353030953e91a45b0104bd0567e53622090 (patch)
tree3867b5741a9e524fcda33c8a574dcbda61faabf3 /gui/internal/model/plan_test.go
parentbcfeb773afcc28641ef2fb47749c91fd0767054a (diff)
downloadkrino-27eb6353030953e91a45b0104bd0567e53622090.tar.gz
krino-27eb6353030953e91a45b0104bd0567e53622090.zip
gui: row menu for trash or permanent delete; Apply frees the directory
Diffstat (limited to 'gui/internal/model/plan_test.go')
-rw-r--r--gui/internal/model/plan_test.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/gui/internal/model/plan_test.go b/gui/internal/model/plan_test.go
index 8b7e32f..bf8f19f 100644
--- a/gui/internal/model/plan_test.go
+++ b/gui/internal/model/plan_test.go
@@ -212,6 +212,25 @@ func TestPlanHoldsTheLock(t *testing.T) {
}
}
+// TestApplyReleasesTheLock: once a plan has been applied it is history, so
+// the directory is free again without closing the window (GUI design ยง3).
+func TestApplyReleasesTheLock(t *testing.T) {
+ conf := "(path \"~/dl\")\n(rule \"all\" (move \"Out\"))\n"
+ e, _ := sandboxDir(t, conf, map[string]string{"a.pdf": "one"})
+ tab, _ := planTab(t, e)
+ if _, err := tab.Apply(context.Background()); err != nil {
+ t.Fatal(err)
+ }
+ l, err := lock.Acquire(context.Background(), e.Config.LockFile("dl"), false)
+ if err != nil {
+ t.Fatalf("applying did not release the lock: %v", err)
+ }
+ l.Release()
+ if err := tab.Close(); err != nil {
+ t.Errorf("closing an applied tab: %v", err)
+ }
+}
+
// TestPlanRefusesAHeldDirectory: a directory another krino is working in is
// not planned at all, and the message names it.
func TestPlanRefusesAHeldDirectory(t *testing.T) {