Skip to content

Commit 04c7e9e

Browse files
committed
tests(record): add test for clicking quit dialog
1 parent 899b034 commit 04c7e9e

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

scm-record/tests/test_scm_record.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,3 +977,51 @@ fn test_mouse_click_wide_line() -> eyre::Result<()> {
977977

978978
Ok(())
979979
}
980+
981+
#[test]
982+
fn test_mouse_click_dialog_buttons() -> eyre::Result<()> {
983+
let state = RecordState {
984+
files: vec![File {
985+
path: Cow::Borrowed(Path::new("foo")),
986+
file_mode: None,
987+
sections: vec![Section::Changed {
988+
lines: vec![SectionChangedLine {
989+
is_toggled: true,
990+
change_type: ChangeType::Removed,
991+
line: Cow::Borrowed("foo\n"),
992+
}],
993+
}],
994+
}],
995+
};
996+
997+
let click_nothing = TestingScreenshot::default();
998+
let click_go_back = TestingScreenshot::default();
999+
let events = [
1000+
Event::QuitCancel,
1001+
Event::Click { row: 3, column: 55 },
1002+
click_nothing.event(),
1003+
Event::QuitCancel,
1004+
Event::Click { row: 3, column: 65 },
1005+
click_go_back.event(),
1006+
];
1007+
let event_source = EventSource::testing(80, 6, events);
1008+
let recorder = Recorder::new(state, event_source);
1009+
let result = recorder.run();
1010+
insta::assert_debug_snapshot!(result, @r###"
1011+
Err(
1012+
Cancelled,
1013+
)
1014+
"###);
1015+
1016+
insta::assert_display_snapshot!(click_nothing, @r###"
1017+
"(×) foo "
1018+
" [×] Section 1/1 "
1019+
" [×] - foo "
1020+
" "
1021+
" "
1022+
" "
1023+
"###);
1024+
insta::assert_display_snapshot!(click_go_back, @"<this screenshot was never assigned>");
1025+
1026+
Ok(())
1027+
}

0 commit comments

Comments
 (0)