@@ -27,72 +27,45 @@ fn run(
2727 cmd
2828}
2929
30+ fn assert_snapshot_predicate ( ) -> predicates:: function:: FnPredicate < impl Fn ( & str ) -> bool , str > {
31+ predicates:: function:: function ( move |output : & str | {
32+ insta:: assert_snapshot!( output) ;
33+ true
34+ } )
35+ }
36+
3037#[ tokio:: main]
3138#[ test]
32- async fn test_get_timesheet ( ) {
39+ async fn get_timesheet ( ) {
3340 // Given
3441 let mock_server = MockServer :: start ( ) . await ;
3542 mock_get_instance ( None ) . mount ( & mock_server) . await ;
3643 mock_get_table_rows ( None ) . mount ( & mock_server) . await ;
3744 create_test_config ( ) ;
3845
39- let expected = serde_json:: json!( {
40- "lines" : [
41- {
42- "job" : "Job One" ,
43- "task" : "Some task one" ,
44- "week" : {
45- "monday" : 8.0 ,
46- "tuesday" : 0.0 ,
47- "wednesday" : 0.0 ,
48- "thursday" : 0.0 ,
49- "friday" : 0.0 ,
50- "saturday" : 0.0 ,
51- "sunday" : 0.0
52- }
53- } ,
54- {
55- "job" : "Job One" ,
56- "task" : "Some task two" ,
57- "week" : {
58- "monday" : 0.0 ,
59- "tuesday" : 0.0 ,
60- "wednesday" : 0.0 ,
61- "thursday" : 0.0 ,
62- "friday" : 0.0 ,
63- "saturday" : 0.0 ,
64- "sunday" : 0.0
65- }
66- }
67- ]
68- } ) ;
69-
7046 // When
7147 let output = run_json ( [ "get" , "--format" , "json" ] , & mock_server. uri ( ) ) ;
7248
7349 // Then
74- assert_json_diff:: assert_json_include!(
75- expected: expected,
76- actual: output
77- ) ;
50+ insta:: assert_json_snapshot!( output) ;
7851}
7952
8053#[ tokio:: main]
8154#[ test]
82- async fn test_set_hours ( ) {
55+ async fn set_hours ( ) {
8356 // Given
8457 let mock_server = MockServer :: start ( ) . await ;
8558 mock_get_instance ( None ) . mount ( & mock_server) . await ;
8659 mock_get_table_rows ( None ) . mount ( & mock_server) . await ;
87- // These mocks aren't actually required
60+ // These mocks aren't actually required here
8861 // mock_job_number_search(None).mount(&mock_server).await;
8962 // mock_tasks_search(None).mount(&mock_server).await;
9063 mock_add_row ( None ) . mount ( & mock_server) . await ;
9164 mock_set_hours ( None ) . mount ( & mock_server) . await ;
9265 create_test_config ( ) ;
9366
9467 // When
95- let cmd = [
68+ let command = [
9669 "set" ,
9770 "8" ,
9871 "--job" ,
@@ -102,15 +75,16 @@ async fn test_set_hours() {
10275 "--day" ,
10376 "monday" ,
10477 ] ;
105- let mut output = run ( cmd , & mock_server. uri ( ) ) ;
78+ let mut output = run ( command , & mock_server. uri ( ) ) ;
10679
10780 // Then
81+ // TODO: try to assert on the values sent to the mock
10882 output. assert ( ) . success ( ) ;
10983}
11084
11185#[ tokio:: main]
11286#[ test]
113- async fn test_set_hours_err ( ) {
87+ async fn set_hours_err ( ) {
11488 // Given
11589 let mock_server = MockServer :: start ( ) . await ;
11690 mock_get_instance ( None ) . mount ( & mock_server) . await ;
@@ -121,21 +95,19 @@ async fn test_set_hours_err() {
12195 create_test_config ( ) ;
12296
12397 // When
124- let cmd = [
98+ let command = [
12599 "set" ,
126100 "--job" ,
127101 "doesn't exist" ,
128102 "--task" ,
129103 "some task one" ,
130104 "8" ,
131105 ] ;
132- let mut output = run ( cmd , & mock_server. uri ( ) ) ;
106+ let mut output = run ( command , & mock_server. uri ( ) ) ;
133107
134- let expected_stdoud_prefix = "Something went wrong when adding a new line to the time sheet: \
135- did not find job 'doesn't exist' and task 'some task one', even after creating a new line \
136- for it";
108+ // Then
137109 output
138110 . assert ( )
139- . stderr ( predicates :: str :: starts_with ( expected_stdoud_prefix ) )
111+ . stderr ( assert_snapshot_predicate ( ) )
140112 . failure ( ) ;
141113}
0 commit comments