@@ -56,4 +56,46 @@ T["get_selected_indices() works"] = function()
5656 MiniTest .expect .equality (indices , { 1 , 3 })
5757end
5858
59+ T [" confirm() works with selection" ] = function ()
60+ local ui = require (" gitlogdiff.ui" )
61+ local actions = require (" gitlogdiff.actions" )
62+ local original_show = actions .show_selected
63+ local captured_hashes , captured_indices
64+
65+ actions .show_selected = function (hashes , indices )
66+ captured_hashes = hashes
67+ captured_indices = indices
68+ end
69+
70+ ui .open ({ " abc1234 commit1" , " def5678 commit2" })
71+ ui .state .selected [1 ] = true
72+ ui .confirm ()
73+
74+ MiniTest .expect .equality (captured_hashes , { " abc1234" })
75+ MiniTest .expect .equality (captured_indices , { 1 })
76+
77+ actions .show_selected = original_show
78+ end
79+
80+ T [" confirm() works with current line fallback" ] = function ()
81+ local ui = require (" gitlogdiff.ui" )
82+ local actions = require (" gitlogdiff.actions" )
83+ local original_show = actions .show_selected
84+ local captured_hashes , captured_indices
85+
86+ actions .show_selected = function (hashes , indices )
87+ captured_hashes = hashes
88+ captured_indices = indices
89+ end
90+
91+ ui .open ({ " abc1234 commit1" , " def5678 commit2" })
92+ ui .state .cursor = 2
93+ ui .confirm ()
94+
95+ MiniTest .expect .equality (captured_hashes , { " def5678" })
96+ MiniTest .expect .equality (captured_indices , { 2 })
97+
98+ actions .show_selected = original_show
99+ end
100+
59101return T
0 commit comments