annotate src/Generator/Test/stubs/test.stub @ 40:2cf26b593f4a ls_dev_2025_09 tip

better support for different column types
author Luka Sitas <sitas.luka.97@gmail.com>
date Thu, 16 Oct 2025 10:54:04 -0400
parents b5c6ebd33547
children
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
40
2cf26b593f4a better support for different column types
Luka Sitas <sitas.luka.97@gmail.com>
parents: 39
diff changeset
3 namespace Tests\CRUD;
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
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 }};
40
2cf26b593f4a better support for different column types
Luka Sitas <sitas.luka.97@gmail.com>
parents: 39
diff changeset
6 use Illuminate\Database\Eloquent\Factories\HasFactory;
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
7 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
8 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
9
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 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
11 {
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 /* 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
13
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 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
15 {
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 $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
17 ->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
18
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 $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
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
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 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
23 {
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 $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
25 ->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
26
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 $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
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
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 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
31 {
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 $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
33 ->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
34
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 $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
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
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 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
39 {
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 $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
41
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 $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
43 ->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
44
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 $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
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
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 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
49 {
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 $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
51
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 $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
53 ->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
54 ->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
55 $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
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
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 $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
59 ->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
60 ->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
61
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 $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
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
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 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
66 {
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 $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
68 ->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
69 ->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
70
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 $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
72 ->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
73 ->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
74
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 // 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
76 $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
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
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 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
80 {
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 $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
82
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 $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
84
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 $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
86 ->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
87 ->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
88
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 $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
90 ->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
91 ->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
92
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 $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
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
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 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
97 {
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 $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
99
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 $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
101 ->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
102 ->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
103
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 $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
105 ->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
106 ->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
107
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 // Make sure no entry was added
39
b5c6ebd33547 Improving the factories, tests, and requests
Luka Sitas <sitas.luka.97@gmail.com>
parents: 37
diff changeset
109 $this->assertDatabaseHas('{{ tableName }}', array_intersect_key($item->toArray(), array_flip($item->getFillable())));
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
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
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 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
113 {
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 $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
115
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 $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
117 ->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
118
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 $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
120 ->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
121 ->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
122
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 $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
124 '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
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
116b36f5e73b Adding support for tests. It's pretty basic but we can improve later.
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
128 }