@@ -2,11 +2,12 @@ use crate::helpers::{
22 config:: create_test_config,
33 maconomy_mock:: {
44 mock_add_row, mock_get_instance, mock_get_table_rows, mock_job_number_search,
5- mock_set_hours, mock_set_week, mock_tasks_search,
5+ mock_set_hours, mock_set_week, mock_tasks_search, MACONOMY_CONCURRENCY_CONTROL ,
66 } ,
77} ;
88use assert_cmd:: Command ;
99use std:: { env, ffi} ;
10+ use uuid:: Uuid ;
1011use wiremock:: MockServer ;
1112
1213fn run_json (
@@ -88,17 +89,35 @@ async fn set_hours() {
8889
8990#[ tokio:: main]
9091#[ test]
91- async fn set_hours_err ( ) {
92+ async fn set_hours_on_nonexistent_job ( ) {
9293 // Given
9394 let mock_server = MockServer :: start ( ) . await ;
9495 mock_get_instance ( None ) . mount ( & mock_server) . await ;
9596 mock_get_table_rows ( None ) . mount ( & mock_server) . await ;
9697 mock_set_week ( None ) . mount ( & mock_server) . await ;
97- mock_job_number_search ( None ) . mount ( & mock_server) . await ;
9898 mock_tasks_search ( None ) . mount ( & mock_server) . await ;
9999 mock_add_row ( None ) . mount ( & mock_server) . await ;
100100 create_test_config ( ) ;
101101
102+ let response = wiremock:: ResponseTemplate :: new ( 200 )
103+ . append_header ( MACONOMY_CONCURRENCY_CONTROL , Uuid :: new_v4 ( ) . to_string ( ) )
104+ . set_body_json ( serde_json:: json!( {
105+ "panes" : {
106+ "filter" : {
107+ "meta" : {
108+ "paneName" : "filter" ,
109+ "rowCount" : 25 ,
110+ "rowOffset" : 0
111+ } ,
112+ "records" : [ ]
113+ }
114+ }
115+ } ) ) ;
116+
117+ mock_job_number_search ( Some ( response) )
118+ . mount ( & mock_server)
119+ . await ;
120+
102121 // When
103122 let command = [
104123 "set" ,
@@ -118,3 +137,36 @@ async fn set_hours_err() {
118137 . stderr ( assert_snapshot_predicate ( ) )
119138 . failure ( ) ;
120139}
140+
141+ #[ tokio:: main]
142+ #[ test]
143+ async fn set_hours_on_nonexistent_task ( ) {
144+ // Given
145+ let mock_server = MockServer :: start ( ) . await ;
146+ mock_get_instance ( None ) . mount ( & mock_server) . await ;
147+ mock_get_table_rows ( None ) . mount ( & mock_server) . await ;
148+ mock_set_week ( None ) . mount ( & mock_server) . await ;
149+ mock_job_number_search ( None ) . mount ( & mock_server) . await ;
150+ mock_tasks_search ( None ) . mount ( & mock_server) . await ;
151+ mock_add_row ( None ) . mount ( & mock_server) . await ;
152+ create_test_config ( ) ;
153+
154+ // When
155+ let command = [
156+ "set" ,
157+ "8" ,
158+ "--job" ,
159+ "job one" ,
160+ "--task" ,
161+ "some task four" ,
162+ "--week" ,
163+ "42" ,
164+ ] ;
165+ let mut output = run ( command, & mock_server. uri ( ) ) ;
166+
167+ // Then
168+ output
169+ . assert ( )
170+ . stderr ( assert_snapshot_predicate ( ) )
171+ . failure ( ) ;
172+ }
0 commit comments