annotate src/Generator/Test/stubs/test.stub @ 37:116b36f5e73b ls_dev_2025_09

Adding support for tests. It's pretty basic but we can improve later.
author Luka Sitas <sitas.luka.97@gmail.com>
date Thu, 25 Sep 2025 19:58:01 -0400
parents
children b5c6ebd33547
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
37
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
1 <?php
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
2
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
3 namespace Tests\CRUD\{{ model }};
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
4
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
5 use {{ namespacedModel }};
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
6 use App\Models\User;
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
7 use Wizard\Framework\Tests\TestCase;
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
8
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
9 class {{ class }} extends TestCase
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
10 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
11 /* use RefreshDatabase; */
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
12
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
13 public function test_{{ modelVariable }}_crud_index_access(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
14 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
15 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
16 ->get(route('{{ tableName }}.index'));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
17
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
18 $response->assertStatus(200);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
19 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
20
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
21 public function test_{{ modelVariable }}_crud_get_data_access(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
22 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
23 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
24 ->post(route('{{ tableName }}.get_data'));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
25
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
26 $response->assertStatus(200);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
27 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
28
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
29 public function test_{{ modelVariable }}_crud_create_access(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
30 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
31 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
32 ->get(route('{{ tableName }}.create'));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
33
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
34 $response->assertStatus(200);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
35 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
36
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
37 public function test_{{ modelVariable }}_crud_edit_access(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
38 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
39 $item = {{ model }}::factory()->create();
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
40
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
41 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
42 ->get(route('{{ tableName }}.edit', $item));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
43
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
44 $response->assertStatus(200);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
45 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
46
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
47 public function test_{{ modelVariable }}_crud_create_usage(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
48 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
49 $item = {{ model }}::factory()->make();
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
50
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
51 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
52 ->from(route('{{ tableName }}.create'))
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
53 ->post(route('{{ tableName }}.store'),
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
54 $item->toArray()
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
55 );
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
56
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
57 $response
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
58 ->assertSessionHasNoErrors()
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
59 ->assertRedirect(route('{{ tableName }}.index'));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
60
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
61 $this->assertDatabaseHas('{{ tableName }}', $item->toArray());
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
62 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
63
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
64 public function test_{{ modelVariable }}_crud_create_invalid_data(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
65 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
66 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
67 ->from(route('{{ tableName }}.create'))
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
68 ->post(route('{{ tableName }}.store'), []);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
69
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
70 $response
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
71 ->assertSessionHasErrors()
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
72 ->assertRedirect(route('{{ tableName }}.create'));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
73
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
74 // Make sure no entry was added
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
75 $this->assertDatabaseCount('{{ tableName }}', 0);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
76 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
77
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
78 public function test_{{ modelVariable }}_crud_update_usage(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
79 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
80 $item = {{ model }}::factory()->create();
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
81
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
82 $updateData = {{ model }}::factory()->make()->toArray();
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
83
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
84 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
85 ->from(route('{{ tableName }}.edit', $item))
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
86 ->put(route('{{ tableName }}.update', $item), $updateData);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
87
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
88 $response
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
89 ->assertSessionHasNoErrors()
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
90 ->assertRedirect(route('{{ tableName }}.index'));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
91
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
92 $this->assertDatabaseHas('{{ tableName }}', $updateData);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
93 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
94
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
95 public function test_{{ modelVariable }}_crud_edit_invalid_data(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
96 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
97 $item = {{ model }}::factory()->create();
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
98
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
99 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
100 ->from(route('{{ tableName }}.edit', $item))
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
101 ->put(route('{{ tableName }}.update', $item), []);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
102
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
103 $response
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
104 ->assertSessionHasErrors()
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
105 ->assertRedirect(route('{{ tableName }}.edit', $item));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
106
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
107 // Make sure no entry was added
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
108 $this->assertDatabaseHas('games', array_intersect(array_flip($item->getFillable()), $item->toArray()));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
109 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
110
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
111 public function test_{{ modelVariable }}_crud_delete_usage(): void
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
112 {
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
113 $item = {{ model }}::factory()->create();
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
114
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
115 $response = $this
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
116 ->delete(route('{{ tableName }}.destroy', $item));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
117
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
118 $response
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
119 ->assertSessionHasNoErrors()
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
120 ->assertRedirect(route('{{ tableName }}.index'));
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
121
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
122 $this->assertSoftDeleted('{{ tableName }}', [
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
123 'id' => $item->id,
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
124 ]);
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
125 }
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
126
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
127 }