Skip to content

Commit 3b308d6

Browse files
fix: respect delete confirmation for argocd app deletion (cherry-pick #22657) (#22664)
Signed-off-by: nitishfy <[email protected]> Co-authored-by: Nitish Kumar <[email protected]>
1 parent b31d700 commit 3b308d6

File tree

2 files changed

+44
-8
lines changed

2 files changed

+44
-8
lines changed

cmd/argocd/commands/utils/prompt.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func (p *Prompt) ConfirmBaseOnCount(messageForSingle string, messageForArray str
5353
}
5454

5555
if count == 1 {
56-
return p.Confirm(messageForSingle), true
56+
return p.Confirm(messageForSingle), false
5757
}
5858

5959
return p.ConfirmAll(messageForArray)

cmd/argocd/commands/utils/prompt_test.go

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,47 @@ func TestConfirmBaseOnCountPromptDisabled(t *testing.T) {
3838
assert.True(t, result2)
3939
}
4040

41-
func TestConfirmBaseOnCountZeroApps(t *testing.T) {
42-
p := &Prompt{enabled: true}
43-
result1, result2 := p.ConfirmBaseOnCount("Proceed?", "Process all?", 0)
44-
assert.True(t, result1)
45-
assert.True(t, result2)
41+
func TestConfirmBaseOnCount(t *testing.T) {
42+
tests := []struct {
43+
input string
44+
output bool
45+
count int
46+
}{
47+
{
48+
input: "y\n",
49+
output: true,
50+
count: 0,
51+
},
52+
{
53+
input: "y\n",
54+
output: true,
55+
count: 1,
56+
},
57+
{
58+
input: "n\n",
59+
output: false,
60+
count: 1,
61+
},
62+
}
63+
64+
origStdin := os.Stdin
65+
66+
for _, tt := range tests {
67+
tmpFile, err := writeToStdin(tt.input)
68+
require.NoError(t, err)
69+
p := &Prompt{enabled: true}
70+
result1, result2 := p.ConfirmBaseOnCount("Proceed?", "Proceed all?", tt.count)
71+
assert.Equal(t, tt.output, result1)
72+
if tt.count == 1 {
73+
assert.False(t, result2)
74+
} else {
75+
assert.Equal(t, tt.output, result2)
76+
}
77+
_ = tmpFile.Close()
78+
os.Remove(tmpFile.Name())
79+
}
80+
81+
os.Stdin = origStdin
4682
}
4783

4884
func TestConfirmPrompt(t *testing.T) {
@@ -62,8 +98,8 @@ func TestConfirmPrompt(t *testing.T) {
6298
p := &Prompt{enabled: true}
6399
result := p.Confirm("Are you sure you want to run this command? (y/n) \n")
64100
assert.Equal(t, c.output, result)
65-
os.Remove(tmpFile.Name())
66101
_ = tmpFile.Close()
102+
os.Remove(tmpFile.Name())
67103
}
68104

69105
os.Stdin = origStdin
@@ -89,8 +125,8 @@ func TestConfirmAllPrompt(t *testing.T) {
89125
confirm, confirmAll := p.ConfirmAll("Are you sure you want to run this command? (y/n) \n")
90126
assert.Equal(t, c.confirm, confirm)
91127
assert.Equal(t, c.confirmAll, confirmAll)
92-
os.Remove(tmpFile.Name())
93128
_ = tmpFile.Close()
129+
os.Remove(tmpFile.Name())
94130
}
95131

96132
os.Stdin = origStdin

0 commit comments

Comments
 (0)