@@ -22,7 +22,7 @@ class SearchPageTest extends DuskTestCase
2222 private array $ weekdays = ['Monday ' , 'Tuesday ' , 'Wednesday ' , 'Thursday ' , 'Friday ' , 'Saturday ' , 'Sunday ' ];
2323
2424
25- public function testWhenBookRoomDateRestrictions ()
25+ public function testWhenBookRoomCustomDateRestrictions ()
2626 {
2727 (new RolesAndPermissionsSeeder ())->run ();
2828 $ room = Room::factory ()->create ();
@@ -81,6 +81,143 @@ public function testWhenBookRoomDateRestrictions()
8181 });
8282 }
8383
84+ public function testWhenBookRoomDateFail ()
85+ {
86+ (new RolesAndPermissionsSeeder ())->run ();
87+ $ room = Room::factory ()->create (["min_days_advance " => 2 , "max_days_advance " => 5 ]);
88+ $ admin = User::factory ()->create ();
89+ $ admin ->assignRole ('super-admin ' );
90+ $ role = Role::where ('name ' , 'super-admin ' )->first ();
91+
92+ foreach ($ this ->weekdays as $ weekday ) {
93+ Availability::create ([
94+ 'weekday ' => $ weekday ,
95+ 'opening_hours ' => '07:00 ' ,
96+ 'closing_hours ' => '23:00 ' ,
97+ 'room_id ' => $ room ->id
98+ ]);
99+ }
100+ $ this ->browse (function (Browser $ browser ) use ($ room , $ admin ) {
101+ $ browser ->loginAs ($ admin );
102+
103+
104+ $ startId = 'start_time_0 ' ;
105+ $ endId = 'end_time_0 ' ;
106+ $ browser ->visit ('/bookings/search ' )
107+ ->assertSee ($ room ->name )
108+ ->click ('@room-select- ' . $ room ->id )
109+ ->mouseover ('@createBookingModal ' )
110+ ->mouseover ('#addAnotherDate ' );
111+
112+ $ browser ->within ( new DateTimePicker ($ startId ), function ($ browser ) {
113+ $ browser ->setDatetime (1 ,13 );
114+ })->pause (1000 );
115+
116+ $ browser ->within ( new DateTimePicker ($ endId ), function ($ browser ) {
117+ $ browser ->setDatetime (1 ,14 );
118+ })->pause (1000 );
119+
120+ $ browser ->click ("#createBookingRequest " )->pause (5000 )
121+ ->assertSee ("later than 2 days " );
122+
123+ $ browser ->within ( new DateTimePicker ($ startId ), function ($ browser ) {
124+ $ browser ->setDatetime (10 ,13 );
125+ })->pause (1000 );
126+
127+ $ browser ->within ( new DateTimePicker ($ endId ), function ($ browser ) {
128+ $ browser ->setDatetime (10 ,14 );
129+ })->pause (1000 );
130+
131+ $ browser ->click ("#createBookingRequest " )->pause (5000 )
132+ ->assertSee ("sooner than 5 days " );
133+
134+ });
135+ }
136+
137+ public function testWhenBookRoomTimefail ()
138+ {
139+ (new RolesAndPermissionsSeeder ())->run ();
140+ $ room = Room::factory ()->create (["min_days_advance " => 0 , "max_days_advance " => 5 ]);
141+ $ admin = User::factory ()->create ();
142+ $ admin ->assignRole ('super-admin ' );
143+ $ role = Role::where ('name ' , 'super-admin ' )->first ();
144+
145+ foreach ($ this ->weekdays as $ weekday ) {
146+ Availability::create ([
147+ 'weekday ' => $ weekday ,
148+ 'opening_hours ' => '07:00 ' ,
149+ 'closing_hours ' => '23:00 ' ,
150+ 'room_id ' => $ room ->id
151+ ]);
152+ }
153+ $ this ->browse (function (Browser $ browser ) use ($ room , $ admin ) {
154+ $ browser ->loginAs ($ admin );
155+
156+
157+ $ startId = 'start_time_0 ' ;
158+ $ endId = 'end_time_0 ' ;
159+ $ browser ->visit ('/bookings/search ' )
160+ ->assertSee ($ room ->name )
161+ ->click ('@room-select- ' . $ room ->id )
162+ ->mouseover ('@createBookingModal ' )
163+ ->mouseover ('#addAnotherDate ' );
164+
165+ $ browser ->within ( new DateTimePicker ($ startId ), function ($ browser ) {
166+ $ browser ->setDatetime (1 ,1 );
167+ })->pause (1000 );
168+
169+ $ browser ->within ( new DateTimePicker ($ endId ), function ($ browser ) {
170+ $ browser ->setDatetime (1 ,2 );
171+ })->pause (1000 );
172+
173+ $ browser ->click ("#createBookingRequest " )->pause (5000 )
174+ ->assertSee ("These dates and times are not within the room's availabilities! " );
175+
176+ });
177+ }
178+
179+ public function testWhenBookRoomSuccess ()
180+ {
181+ (new RolesAndPermissionsSeeder ())->run ();
182+ $ room = Room::factory ()->create (["min_days_advance " => 2 , "max_days_advance " => 5 ]);
183+ $ admin = User::factory ()->create ();
184+ $ admin ->assignRole ('super-admin ' );
185+ $ role = Role::where ('name ' , 'super-admin ' )->first ();
186+
187+ foreach ($ this ->weekdays as $ weekday ) {
188+ Availability::create ([
189+ 'weekday ' => $ weekday ,
190+ 'opening_hours ' => '07:00 ' ,
191+ 'closing_hours ' => '23:00 ' ,
192+ 'room_id ' => $ room ->id
193+ ]);
194+ }
195+ $ this ->browse (function (Browser $ browser ) use ($ room , $ admin ) {
196+ $ browser ->loginAs ($ admin );
197+
198+
199+ $ startId = 'start_time_0 ' ;
200+ $ endId = 'end_time_0 ' ;
201+ $ browser ->visit ('/bookings/search ' )
202+ ->assertSee ($ room ->name )
203+ ->click ('@room-select- ' . $ room ->id )
204+ ->mouseover ('@createBookingModal ' )
205+ ->mouseover ('#addAnotherDate ' );
206+
207+ $ browser ->within ( new DateTimePicker ($ startId ), function ($ browser ) {
208+ $ browser ->setDatetime (3 ,13 );
209+ })->pause (1000 );
210+
211+ $ browser ->within ( new DateTimePicker ($ endId ), function ($ browser ) {
212+ $ browser ->setDatetime (3 ,14 );
213+ })->pause (1000 );
214+
215+ $ browser ->click ("#createBookingRequest " )->pause (5000 )
216+ ->assertpathis ("/bookings/create " );
217+
218+ });
219+ }
220+
84221 public function testWhenUpdateRoomRestrictions ()
85222 {
86223 (new RolesAndPermissionsSeeder ())->run ();
0 commit comments