diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index 0788740..aad2d61 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -73,29 +73,29 @@ class DatabaseSeeder extends Seeder
$yearPeriods = YearPeriod::all();
- foreach ($users as $user) {
- VacationRequest::factory()
- ->count(10)
- ->for($user)
- ->sequence(fn() => [
- "year_period_id" => $yearPeriods->random()->id,
- ])
- ->afterCreating(function (VacationRequest $vacationRequest): void {
- $days = app(VacationDaysCalculator::class)->calculateDays(
- $vacationRequest->yearPeriod,
- $vacationRequest->from,
- $vacationRequest->to,
- );
-
- foreach ($days as $day) {
- $vacationRequest->vacations()->create([
- "date" => $day,
- "user_id" => $vacationRequest->user->id,
- ]);
- }
- })
- ->create();
- }
+// foreach ($users as $user) {
+// VacationRequest::factory()
+// ->count(10)
+// ->for($user)
+// ->sequence(fn() => [
+// "year_period_id" => $yearPeriods->random()->id,
+// ])
+// ->afterCreating(function (VacationRequest $vacationRequest): void {
+// $days = app(VacationDaysCalculator::class)->calculateDays(
+// $vacationRequest->yearPeriod,
+// $vacationRequest->from,
+// $vacationRequest->to,
+// );
+//
+// foreach ($days as $day) {
+// $vacationRequest->vacations()->create([
+// "date" => $day,
+// "user_id" => $vacationRequest->user->id,
+// ]);
+// }
+// })
+// ->create();
+// }
}
protected function generateAvatarsForUsers(Collection $users): void
diff --git a/resources/js/Pages/Calendar.vue b/resources/js/Pages/Calendar.vue
index 58a15ea..6511e6b 100644
--- a/resources/js/Pages/Calendar.vue
+++ b/resources/js/Pages/Calendar.vue
@@ -62,7 +62,7 @@
v-for="day in calendar"
:key="day.dayOfMonth"
class="border border-gray-300 text-lg font-semibold text-gray-900 py-4 px-2"
- :class="{ 'bg-blumilk-500 text-white': day.isToday}"
+ :class="{ 'text-blumilk-600 bg-blumilk-25 font-black': day.isToday}"
>
{{ day.dayOfMonth }}
@@ -98,7 +98,7 @@
v-for="day in calendar"
:key="day.dayOfMonth"
class="border border-gray-300"
- :class="{'bg-gray-100': day.isWeekend, 'bg-green-100': day.isHoliday, 'bg-blumilk-200': userVacation.vacations.includes(day.date) }"
+ :class="{'bg-gray-100': day.isWeekend, 'bg-green-100': day.isHoliday, 'bg-blumilk-500': userVacation.vacations.includes(day.date) }"
>
polishHolidaysRetriever = $this->app->make(PolishHolidaysRetriever::class);
+ }
+
public function testUserCanSeeVacationRequestsList(): void
{
$user = User::factory()->createQuietly();
@@ -35,7 +50,9 @@ class VacationRequestTest extends FeatureTestCase
public function testUserCanCreateVacationRequest(): void
{
$user = User::factory()->createQuietly();
+
$currentYearPeriod = YearPeriod::current();
+
$this->actingAs($user)
->post("/vacation-requests", [
"type" => VacationType::VACATION->value,
@@ -83,7 +100,9 @@ class VacationRequestTest extends FeatureTestCase
$currentYearPeriod = YearPeriod::current();
- $vacationRequest = VacationRequest::factory(["state" => VacationRequestState::WAITING_FOR_ADMINISTRATIVE])
+ $vacationRequest = VacationRequest::factory([
+ "state" => VacationRequestState::WAITING_FOR_ADMINISTRATIVE,
+ ])
->for($user)
->for($currentYearPeriod)
->create();
@@ -116,6 +135,48 @@ class VacationRequestTest extends FeatureTestCase
"state" => VacationRequestState::REJECTED,
]);
}
+
+ public function testUserCannotCreateVacationRequestAtWeekend(): void
+ {
+ $user = User::factory()->createQuietly();
+ $currentYearPeriod = YearPeriod::current();
+
+ $this->actingAs($user)
+ ->post("/vacation-requests", [
+ "type" => VacationType::VACATION->value,
+ "from" => Carbon::create($currentYearPeriod->year, 2, 5)->toDateString(),
+ "to" => Carbon::create($currentYearPeriod->year, 2, 6)->toDateString(),
+ "comment" => "Vacation at weekend.",
+ ])
+ ->assertSessionHasErrors([
+ "vacationRequest" => trans("Vacation needs minimum one day."),
+ ]);
+ }
+
+ public function testUserCannotCreateVacationRequestAtHoliday(): void
+ {
+ $user = User::factory()->createQuietly();
+ $currentYearPeriod = YearPeriod::current();
+
+ foreach ($this->polishHolidaysRetriever->getForYearPeriod($currentYearPeriod) as $holiday) {
+ $currentYearPeriod->holidays()->create([
+ "name" => $holiday["name"],
+ "date" => $holiday["date"],
+ ]);
+ }
+
+ $this->actingAs($user)
+ ->post("/vacation-requests", [
+ "type" => VacationType::VACATION->value,
+ "from" => Carbon::create($currentYearPeriod->year, 4, 18)->toDateString(),
+ "to" => Carbon::create($currentYearPeriod->year, 4, 18)->toDateString(),
+ "comment" => "Vacation at holiday.",
+ ])
+ ->assertSessionHasErrors([
+ "vacationRequest" => trans("Vacation needs minimum one day."),
+ ]);
+ }
+
public function testUserCannotCreateVacationRequestIfHeHasPendingVacationRequestInThisRange(): void
{
$user = User::factory()->createQuietly();
@@ -201,4 +262,4 @@ class VacationRequestTest extends FeatureTestCase
"vacationRequest" => trans("The vacation request cannot be created at the turn of the year."),
]);
}
-}
\ No newline at end of file
+}
diff --git a/tests/FeatureTestCase.php b/tests/FeatureTestCase.php
index de0d193..084d811 100644
--- a/tests/FeatureTestCase.php
+++ b/tests/FeatureTestCase.php
@@ -17,7 +17,7 @@ abstract class FeatureTestCase extends BaseTestCase
{
parent::setUp();
- Carbon::setTestNow(Carbon::now());
+ Carbon::setTestNow(Carbon::createFromDate(2022, 1, 1));
$this->createCurrentYearPeriod();
}
}
diff --git a/tests/Unit/VacationRequestStatesTest.php b/tests/Unit/VacationRequestStatesTest.php
index 69cec4b..02479c7 100644
--- a/tests/Unit/VacationRequestStatesTest.php
+++ b/tests/Unit/VacationRequestStatesTest.php
@@ -1,5 +1,7 @@
assertEquals(VacationRequestState::APPROVED, $vacationRequest->state);
}
-}
\ No newline at end of file
+}