/
EventTest.php
67 lines (50 loc) · 1.59 KB
/
EventTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Collection;
use LaravelEnso\Calendar\Enums\Frequencies;
use LaravelEnso\Calendar\Models\Event;
use LaravelEnso\Core\Models\User;
use Tests\TestCase;
class EventTest extends TestCase
{
use RefreshDatabase;
protected Event $event;
protected function setUp(): void
{
parent::setUp();
$this->seed();
$this->actingAs(User::first());
$this->event = Event::factory()->make([
'frequency' => Frequencies::Once,
]);
$this->event->store();
}
/** @test */
public function can_update_event()
{
$endTime = '22:20';
$this->patch($this->route('update'), ['end_time' => $endTime]);
$this->assertEquals($endTime, $this->event->refresh()->end_time);
}
/** @test */
public function can_update_to_sequence()
{
$this->patch($this->route('update'), [
'frequency' => Frequencies::Daily,
'recurrence_ends_at' => $this->event->start_date->clone()->addDays(4)->format('Y-m-d'),
]);
$assertion = (new Collection([null]))->pad(5, 1)->toArray();
$events = Event::orderBy('id');
$this->assertEquals($assertion, $events->pluck('parent_id')->toArray());
}
/** @test */
public function can_delete_event()
{
$this->delete($this->route('destroy'));
$this->assertTrue(Event::doesntExist());
}
private function route(string $action)
{
return route("core.calendar.events.{$action}", ['event' => $this->event->id]);
}
}