summaryrefslogtreecommitdiffstats
path: root/pkg/integration
diff options
context:
space:
mode:
authorStefan Haller <stefan@haller-berlin.de>2023-06-06 08:30:44 +0200
committerStefan Haller <stefan@haller-berlin.de>2023-06-07 12:48:56 +0200
commit1f42c8a387529ff055307ac49bd6a5fb397f1c9c (patch)
tree219c5696fd46e7f276a0237c0fb1b85edbafded5 /pkg/integration
parente229e26fbe050eb4ba9ffed8970b3992590a3694 (diff)
Allow discarding changes only from local commits
We use CommitFilesController also for the files of commits that we show elsewhere, e.g. for branch commits, tags, or stashes. It doesn't make sense to discard changes from those (for stashes it might be possible to implement it somehow, but that would be a new feature), so we disallow it unless we are in the local commits panel.
Diffstat (limited to 'pkg/integration')
-rw-r--r--pkg/integration/tests/stash/prevent_discarding_file_changes.go41
-rw-r--r--pkg/integration/tests/test_list.go1
2 files changed, 42 insertions, 0 deletions
diff --git a/pkg/integration/tests/stash/prevent_discarding_file_changes.go b/pkg/integration/tests/stash/prevent_discarding_file_changes.go
new file mode 100644
index 000000000..9ee16b75c
--- /dev/null
+++ b/pkg/integration/tests/stash/prevent_discarding_file_changes.go
@@ -0,0 +1,41 @@
+package stash
+
+import (
+ "github.com/jesseduffield/lazygit/pkg/config"
+ . "github.com/jesseduffield/lazygit/pkg/integration/components"
+)
+
+var PreventDiscardingFileChanges = NewIntegrationTest(NewIntegrationTestArgs{
+ Description: "Check that it is not allowed to discard changes to a file of a stash",
+ ExtraCmdArgs: []string{},
+ Skip: false,
+ SetupConfig: func(config *config.AppConfig) {},
+ SetupRepo: func(shell *Shell) {
+ shell.EmptyCommit("initial commit")
+ shell.CreateFile("file", "content")
+ shell.GitAddAll()
+ shell.Stash("stash one")
+ },
+ Run: func(t *TestDriver, keys config.KeybindingConfig) {
+ t.Views().Files().IsEmpty()
+
+ t.Views().Stash().
+ Focus().
+ Lines(
+ Contains("stash one").IsSelected(),
+ ).
+ PressEnter()
+
+ t.Views().CommitFiles().
+ IsFocused().
+ Lines(
+ Contains("file").IsSelected(),
+ ).
+ Press(keys.Universal.Remove)
+
+ t.ExpectPopup().Confirmation().
+ Title(Equals("Error")).
+ Content(Contains("Changes can only be discarded from local commits")).
+ Confirm()
+ },
+})
diff --git a/pkg/integration/tests/test_list.go b/pkg/integration/tests/test_list.go
index 7a5ed71b4..5e45d7e55 100644
--- a/pkg/integration/tests/test_list.go
+++ b/pkg/integration/tests/test_list.go
@@ -155,6 +155,7 @@ var tests = []*components.IntegrationTest{
stash.CreateBranch,
stash.Drop,
stash.Pop,
+ stash.PreventDiscardingFileChanges,
stash.Rename,
stash.Stash,
stash.StashAll,