summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-10-02 01:03:55 -0300
committerGabriel Schneider <[email protected]>2026-10-02 01:33:55 -0300
commitd65ec3394ff619118d9208718477469c673a5598 (patch)
treed66c6bd145258fc2b369714abc618aa6766dfb5e /test
parent2537126c643db75419ff846f1041e40d154c9426 (diff)
downloadpardes-d65ec3394ff619118d9208718477469c673a5598.tar.gz
pardes-d65ec3394ff619118d9208718477469c673a5598.zip
A name typed into the tag's path survives Esc, pending, as any edit does: the next Enter renames the buffer, a second Esc drops the draft, and a stray key meanwhile changes nothing but says so
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'test')
-rw-r--r--test/panes.zig7
-rw-r--r--test/snapshots/tagalign.snap5
-rw-r--r--test/snapshots/tagpath.snap3
3 files changed, 14 insertions, 1 deletions
diff --git a/test/panes.zig b/test/panes.zig
index 8f1c510a..41061bea 100644
--- a/test/panes.zig
+++ b/test/panes.zig
@@ -367,6 +367,8 @@ const TagNavigationTests = struct {
p.update(.{ .key = .{ .cp = 'x', .text = "x" } });
try std.testing.expect(pane.prompt == .name);
try std.testing.expectEqualStrings("x/test.txt", pane.input.own.?);
+ // Esc keeps the draft pending; a second drops it.
+ key(p, Key.escape);
key(p, Key.escape);
try std.testing.expect(pane.prompt == .none);
try std.testing.expectEqualStrings("/test.txt", pane.file.?.path);
@@ -1621,7 +1623,9 @@ test "pane filename drafts commit and cancel without changing body or command ta
try std.testing.expectEqualStrings("/new name.zig", pane.input.own.?);
try std.testing.expectEqualStrings(tail, pardes.tagline.curTail(pane));
try std.testing.expectEqualStrings("original body\n", pane.file.?.content);
+ // Esc keeps the draft pending; a second drops it.
p.update(.{ .key = .{ .cp = if (commit) Key.enter else Key.escape } });
+ if (!commit) p.update(.{ .key = .{ .cp = Key.escape } });
try std.testing.expect(pane.focus == .body);
try std.testing.expect(pane.prompt == .none);
try std.testing.expectEqualStrings(if (commit) "/new name.zig" else original, pane.file.?.path);
@@ -1649,6 +1653,9 @@ test "pane filename grapheme edits and invalid empty commits preserve the buffer
try std.testing.expect(pane.prompt == .name);
try std.testing.expectEqualStrings("/test.txt", pane.file.?.path);
try std.testing.expectEqualStrings("untouched\n", pane.file.?.content);
+ // Esc keeps the draft pending; a second drops it.
+ p.update(.{ .key = .{ .cp = Key.escape } });
+ try std.testing.expect(pane.prompt == .name);
p.update(.{ .key = .{ .cp = Key.escape } });
try std.testing.expect(pane.prompt == .none);
}
diff --git a/test/snapshots/tagalign.snap b/test/snapshots/tagalign.snap
index 3bb3922e..7237167a 100644
--- a/test/snapshots/tagalign.snap
+++ b/test/snapshots/tagalign.snap
@@ -22,12 +22,15 @@ press left 12 3
release left 12 3
stable 400 5000
snap clicked
-# The click was on the path, so it drafted a name; Esc drops the draft. `:`
+# The click was on the path, so it drafted a name; Esc keeps it pending and
+# a second Esc drops the draft. `:`
# then `A` puts the caret after the tag's end, which reveals the complete
# command suffix; a scrolled Del still executes.
resize 31 70
key esc
settle 100
+key esc
+settle 100
key :
key A
stable 400 5000
diff --git a/test/snapshots/tagpath.snap b/test/snapshots/tagpath.snap
index f02769d9..841d4fed 100644
--- a/test/snapshots/tagpath.snap
+++ b/test/snapshots/tagpath.snap
@@ -41,6 +41,9 @@ key i
text /renamed
stable 400 5000
snap name-draft
+# Esc keeps the draft pending; a second drops it
+key esc
+settle 100
key esc
stable 400 5000
snap name-cancelled