diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2022-11-18 13:47:26 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2022-11-18 13:47:26 +0000 |
| commit | fe2781093e8f3c0861661b9c55737d615c8741b9 (patch) | |
| tree | 3317720c41f9a256c9d6f5986612f84e93a96c8f /tests/jsonapi | |
| parent | c0fd6686718362bd7340243f29bbd922faf6e78c (diff) | |
fix tests for consultations, fixes #1794
Closes #1794
Merge request studip/studip!1175
Diffstat (limited to 'tests/jsonapi')
| -rw-r--r-- | tests/jsonapi/ConsultationHelper.php | 25 | ||||
| -rw-r--r-- | tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php | 4 | ||||
| -rw-r--r-- | tests/jsonapi/ConsultationsBookingCreateTest.php | 4 |
3 files changed, 24 insertions, 9 deletions
diff --git a/tests/jsonapi/ConsultationHelper.php b/tests/jsonapi/ConsultationHelper.php index 0fdd40b..10d5050 100644 --- a/tests/jsonapi/ConsultationHelper.php +++ b/tests/jsonapi/ConsultationHelper.php @@ -41,17 +41,32 @@ trait ConsultationHelper return User::find($credentials['id']); } - protected function createBlockWithSlotsForRange(Range $range, array $additional_data = []): ConsultationBlock + protected function createBlockWithSlotsForRange(Range $range, bool $lock_blocks = false): ConsultationBlock { - $hour = date('H'); - $begin = strtotime("today {$hour}:00:00"); - $end = strtotime('+2 hours', $begin); + // Generate start and end time. Assures that the day is not a holiday. + $now = time(); + do { + $begin = strtotime('next monday 8:00:00', $now); + $end = strtotime('+2 hours', $begin); + + $now = strtotime('+1 week', $now); + + $temp = holiday($begin); + } while (is_array($temp) && $temp['col'] === 3); + + // Lock blocks? + $additional_data = []; + if ($lock_blocks) { + $additional_data['lock_time'] = ceil(($begin - time()) / 3600); + } + + // Generate blocks $blocks = ConsultationBlock::generateBlocks( $range, $begin, $end, - date('w'), + date('w', $begin), 1 ); $blocks = iterator_to_array($blocks); diff --git a/tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php b/tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php index 56ef183..590343d 100644 --- a/tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php +++ b/tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php @@ -27,12 +27,12 @@ class ConsultationsBookingCreateBySlotIndexTest extends Codeception\Test\Unit ); } - public function testAutorMayCreateNotCreateBookingDueToLock(): void + public function testAutorMayNotCreateBookingDueToLock(): void { $credentials = $this->tester->getCredentialsForTestDozent(); $range = User::find($credentials['id']); - $block = $this->createBlockWithSlotsForRange($range, ['lock_time' => 2]); + $block = $this->createBlockWithSlotsForRange($range, true); $slot = $this->getSlotFromBlock($block); $response = $this->createBooking( diff --git a/tests/jsonapi/ConsultationsBookingCreateTest.php b/tests/jsonapi/ConsultationsBookingCreateTest.php index 54ad2b4..d0af9da 100644 --- a/tests/jsonapi/ConsultationsBookingCreateTest.php +++ b/tests/jsonapi/ConsultationsBookingCreateTest.php @@ -28,12 +28,12 @@ class ConsultationsBookingCreateTest extends Codeception\Test\Unit ); } - public function testAutorMayCreateNotCreateBookingDueToLock(): void + public function testAutorMayNotCreateBookingDueToLock(): void { $credentials = $this->tester->getCredentialsForTestDozent(); $range = User::find($credentials['id']); - $block = $this->createBlockWithSlotsForRange($range, ['lock_time' => 2]); + $block = $this->createBlockWithSlotsForRange($range, true); $slot = $this->getSlotFromBlock($block); $response = $this->createBooking( |
