Skip to content
This repository was archived by the owner on Apr 27, 2023. It is now read-only.

Commit 02117e3

Browse files
joeyabouAlex
authored andcommitted
fix(#22): Added dusk tests for #22 and #18
1 parent 62978f4 commit 02117e3

1 file changed

Lines changed: 138 additions & 1 deletion

File tree

tests/Browser/SearchPageTest.php

Lines changed: 138 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)