|
5 | 5 | use ChrisDiCarlo\LaravelConfigChecker\Support\FileChecker; |
6 | 6 | use ChrisDiCarlo\LaravelConfigChecker\Support\FileCheckInfo; |
7 | 7 | use Illuminate\Support\Collection; |
| 8 | +use Illuminate\Support\Facades\Config; |
8 | 9 |
|
9 | 10 | beforeEach(function () { |
10 | | - $this->configKeys = collect([ |
11 | | - 'file', |
12 | | - 'file.valid_key', |
13 | | - 'file.nested', |
14 | | - 'file.nested.key', |
| 11 | + Config::set('file', [ |
| 12 | + 'valid_key' => 'value', |
| 13 | + 'nested' => [ |
| 14 | + 'key' => 'value', |
| 15 | + ], |
15 | 16 | ]); |
16 | 17 | }); |
17 | 18 | it('returns a collection of FileCheckInfo objects', function () { |
|
20 | 21 | Config::get("invalid_key"); |
21 | 22 | PHP; |
22 | 23 |
|
23 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 24 | + $fileChecker = new FileChecker($content); |
24 | 25 |
|
25 | 26 | $issues = $fileChecker->check(); |
26 | 27 |
|
|
34 | 35 | echo "Hello, World!"; |
35 | 36 | PHP; |
36 | 37 |
|
37 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 38 | + $fileChecker = new FileChecker($content); |
38 | 39 |
|
39 | 40 | $issues = $fileChecker->check(); |
40 | 41 |
|
|
44 | 45 | {{ "Hello, World!" }} |
45 | 46 | BLADE; |
46 | 47 |
|
47 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 48 | + $fileChecker = new FileChecker($content); |
48 | 49 |
|
49 | 50 | $issues = $fileChecker->check(); |
50 | 51 |
|
|
59 | 60 | config("file.valid_key"); |
60 | 61 | PHP; |
61 | 62 |
|
62 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 63 | + $fileChecker = new FileChecker($content); |
63 | 64 |
|
64 | 65 | $issues = $fileChecker->check(); |
65 | 66 |
|
|
71 | 72 | {{ config("file.valid_key") }} |
72 | 73 | BLADE; |
73 | 74 |
|
74 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 75 | + $fileChecker = new FileChecker($content); |
75 | 76 |
|
76 | 77 | $issues = $fileChecker->check(); |
77 | 78 |
|
|
89 | 90 | config("file.valid_key"); |
90 | 91 | PHP; |
91 | 92 |
|
92 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 93 | + $fileChecker = new FileChecker($content); |
93 | 94 |
|
94 | 95 | $issues = $fileChecker->check(); |
95 | 96 |
|
|
117 | 118 | {{ config("file.valid_key") }} |
118 | 119 | BLADE; |
119 | 120 |
|
120 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 121 | + $fileChecker = new FileChecker($content); |
121 | 122 |
|
122 | 123 | $issues = $fileChecker->check(); |
123 | 124 |
|
|
140 | 141 | it('handles empty content gracefully', function () { |
141 | 142 | $content = ''; |
142 | 143 |
|
143 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 144 | + $fileChecker = new FileChecker($content); |
144 | 145 |
|
145 | 146 | $issues = $fileChecker->check(); |
146 | 147 |
|
|
158 | 159 | config("file.valid_key"); |
159 | 160 | PHP; |
160 | 161 |
|
161 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 162 | + $fileChecker = new FileChecker($content); |
162 | 163 |
|
163 | 164 | $issues = $fileChecker->check(); |
164 | 165 |
|
165 | | - expect($issues->contains('key', 'file.valid_key'))->toBeFalse(); |
166 | | - expect($issues->contains('key', 'file.invalid_key'))->toBeTrue(); |
| 166 | + expect($issues->contains(function ($issue) { |
| 167 | + return $issue->key === 'file.invalid_key' && |
| 168 | + $issue->type === 'Config::get()'; |
| 169 | + }))->toBeTrue(); |
| 170 | + expect($issues->contains(function ($issue) { |
| 171 | + return $issue->key === 'file.invalid_key' && |
| 172 | + $issue->type === 'Config::has()'; |
| 173 | + }))->toBeTrue(); |
| 174 | + expect($issues->contains(function ($issue) { |
| 175 | + return $issue->key === 'file.invalid_key' && |
| 176 | + $issue->type === 'config()'; |
| 177 | + }))->toBeTrue(); |
| 178 | + expect($issues->contains(function ($issue) { |
| 179 | + return $issue->key === 'file.valid_key' && |
| 180 | + $issue->type === 'Config::get()'; |
| 181 | + }))->toBeFalse(); |
| 182 | + expect($issues->contains(function ($issue) { |
| 183 | + return $issue->key === 'file.valid_key' && |
| 184 | + $issue->type === 'Config::has()'; |
| 185 | + }))->toBeFalse(); |
| 186 | + expect($issues->contains(function ($issue) { |
| 187 | + return $issue->key === 'file.valid_key' && |
| 188 | + $issue->type === 'config()'; |
| 189 | + }))->toBeFalse(); |
167 | 190 |
|
168 | 191 | $content = <<<'BLADE' |
169 | 192 | {{ Config::get("file.invalid_key") }} |
|
174 | 197 | {{ config("file.valid_key") }} |
175 | 198 | BLADE; |
176 | 199 |
|
177 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 200 | + $fileChecker = new FileChecker($content); |
178 | 201 |
|
179 | 202 | $issues = $fileChecker->check(); |
180 | 203 |
|
181 | | - expect($issues->contains('key', 'file.valid_key'))->toBeFalse(); |
182 | | - expect($issues->contains('key', 'file.invalid_key'))->toBeTrue(); |
| 204 | + expect($issues->contains(function ($issue) { |
| 205 | + return $issue->key === 'file.invalid_key' && |
| 206 | + $issue->type === 'Config::get()'; |
| 207 | + }))->toBeTrue(); |
| 208 | + expect($issues->contains(function ($issue) { |
| 209 | + return $issue->key === 'file.invalid_key' && |
| 210 | + $issue->type === 'Config::has()'; |
| 211 | + }))->toBeTrue(); |
| 212 | + expect($issues->contains(function ($issue) { |
| 213 | + return $issue->key === 'file.invalid_key' && |
| 214 | + $issue->type === 'config()'; |
| 215 | + }))->toBeTrue(); |
| 216 | + expect($issues->contains(function ($issue) { |
| 217 | + return $issue->key === 'file.valid_key' && |
| 218 | + $issue->type === 'Config::get()'; |
| 219 | + }))->toBeFalse(); |
| 220 | + expect($issues->contains(function ($issue) { |
| 221 | + return $issue->key === 'file.valid_key' && |
| 222 | + $issue->type === 'Config::has()'; |
| 223 | + }))->toBeFalse(); |
| 224 | + expect($issues->contains(function ($issue) { |
| 225 | + return $issue->key === 'file.valid_key' && |
| 226 | + $issue->type === 'config()'; |
| 227 | + }))->toBeFalse(); |
183 | 228 | }); |
184 | 229 |
|
185 | 230 | it('detects issues for invalid nested keys', function () { |
|
193 | 238 | config("file.valid_key"); |
194 | 239 | PHP; |
195 | 240 |
|
196 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 241 | + $fileChecker = new FileChecker($content); |
197 | 242 |
|
198 | 243 | $issues = $fileChecker->check(); |
199 | 244 |
|
200 | | - expect($issues->contains('key', 'file.valid_key'))->toBeFalse(); |
201 | | - expect($issues->contains('key', 'file.nested.invalid_key'))->toBeTrue(); |
| 245 | + expect($issues->contains(function ($issue) { |
| 246 | + return $issue->key === 'file.nested.invalid_key' && |
| 247 | + $issue->type === 'Config::get()'; |
| 248 | + }))->toBeTrue(); |
| 249 | + expect($issues->contains(function ($issue) { |
| 250 | + return $issue->key === 'file.nested.invalid_key' && |
| 251 | + $issue->type === 'Config::has()'; |
| 252 | + }))->toBeTrue(); |
| 253 | + expect($issues->contains(function ($issue) { |
| 254 | + return $issue->key === 'file.nested.invalid_key' && |
| 255 | + $issue->type === 'config()'; |
| 256 | + }))->toBeTrue(); |
| 257 | + expect($issues->contains(function ($issue) { |
| 258 | + return $issue->key === 'file.valid_key' && |
| 259 | + $issue->type === 'Config::get()'; |
| 260 | + }))->toBeFalse(); |
| 261 | + expect($issues->contains(function ($issue) { |
| 262 | + return $issue->key === 'file.valid_key' && |
| 263 | + $issue->type === 'Config::has()'; |
| 264 | + }))->toBeFalse(); |
| 265 | + expect($issues->contains(function ($issue) { |
| 266 | + return $issue->key === 'file.valid_key' && |
| 267 | + $issue->type === 'config()'; |
| 268 | + }))->toBeFalse(); |
202 | 269 |
|
203 | 270 | $content = <<<'BLADE' |
204 | 271 | {{ Config::get("file.nested.invalid_key") }} |
|
209 | 276 | {{ config("file.valid_key") }} |
210 | 277 | BLADE; |
211 | 278 |
|
212 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 279 | + $fileChecker = new FileChecker($content); |
213 | 280 |
|
214 | 281 | $issues = $fileChecker->check(); |
215 | 282 |
|
216 | | - expect($issues->contains('key', 'file.valid_key'))->toBeFalse(); |
217 | | - expect($issues->contains('key', 'file.nested.invalid_key'))->toBeTrue(); |
| 283 | + expect($issues->contains(function ($issue) { |
| 284 | + return $issue->key === 'file.nested.invalid_key' && |
| 285 | + $issue->type === 'Config::get()'; |
| 286 | + }))->toBeTrue(); |
| 287 | + expect($issues->contains(function ($issue) { |
| 288 | + return $issue->key === 'file.nested.invalid_key' && |
| 289 | + $issue->type === 'Config::has()'; |
| 290 | + }))->toBeTrue(); |
| 291 | + expect($issues->contains(function ($issue) { |
| 292 | + return $issue->key === 'file.nested.invalid_key' && |
| 293 | + $issue->type === 'config()'; |
| 294 | + }))->toBeTrue(); |
| 295 | + expect($issues->contains(function ($issue) { |
| 296 | + return $issue->key === 'file.valid_key' && |
| 297 | + $issue->type === 'Config::get()'; |
| 298 | + }))->toBeFalse(); |
| 299 | + expect($issues->contains(function ($issue) { |
| 300 | + return $issue->key === 'file.valid_key' && |
| 301 | + $issue->type === 'Config::has()'; |
| 302 | + }))->toBeFalse(); |
| 303 | + expect($issues->contains(function ($issue) { |
| 304 | + return $issue->key === 'file.valid_key' && |
| 305 | + $issue->type === 'config()'; |
| 306 | + }))->toBeFalse(); |
218 | 307 | }); |
219 | 308 |
|
220 | 309 | it('ignores methods called config', function () { |
|
227 | 316 | Config::get('some.other.invalid.key'); |
228 | 317 | PHP; |
229 | 318 |
|
230 | | - $fileChecker = new FileChecker($this->configKeys, $content); |
| 319 | + $fileChecker = new FileChecker($content); |
231 | 320 |
|
232 | 321 | $issues = $fileChecker->check(); |
233 | 322 |
|
|
0 commit comments