• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

api-platform / core / 13203378522

07 Feb 2025 03:56PM UTC coverage: 8.501% (+0.7%) from 7.837%
13203378522

push

github

soyuka
Merge 4.1

111 of 490 new or added lines in 51 files covered. (22.65%)

5590 existing lines in 163 files now uncovered.

13345 of 156987 relevant lines covered (8.5%)

22.88 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Metadata/Tests/Extractor/YamlExtractorTest.php
1
<?php
2

3
/*
4
 * This file is part of the API Platform project.
5
 *
6
 * (c) Kévin Dunglas <dunglas@gmail.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types=1);
13

14
namespace ApiPlatform\Metadata\Tests\Extractor;
15

16
use ApiPlatform\Metadata\Exception\InvalidArgumentException;
17
use ApiPlatform\Metadata\Extractor\YamlResourceExtractor;
18
use ApiPlatform\Metadata\Get;
19
use ApiPlatform\Metadata\GetCollection;
20
use ApiPlatform\Metadata\QueryParameter;
21
use ApiPlatform\Metadata\Tests\Fixtures\ApiResource\FlexConfig;
22
use ApiPlatform\Metadata\Tests\Fixtures\ApiResource\Program;
23
use ApiPlatform\Metadata\Tests\Fixtures\ApiResource\SingleFileConfigDummy;
24
use ApiPlatform\Metadata\Tests\Fixtures\ApiResource\User;
25
use PHPUnit\Framework\TestCase;
26

27
/**
28
 * @author Vincent Chalamon <vincentchalamon@gmail.com>
29
 */
30
class YamlExtractorTest extends TestCase
31
{
32
    public function testValidYaml(): void
33
    {
34
        $extractor = new YamlResourceExtractor([__DIR__.'/yaml/valid.yaml']);
×
35
        $this->assertEquals([
×
36
            FlexConfig::class => [
×
37
                [
×
38
                    'uriTemplate' => null,
×
39
                    'shortName' => null,
×
40
                    'description' => null,
×
41
                    'routePrefix' => null,
×
42
                    'stateless' => null,
×
43
                    'sunset' => null,
×
44
                    'acceptPatch' => null,
×
45
                    'host' => null,
×
46
                    'condition' => null,
×
47
                    'controller' => null,
×
48
                    'urlGenerationStrategy' => null,
×
49
                    'deprecationReason' => null,
×
50
                    'elasticsearch' => null,
×
51
                    'fetchPartial' => null,
×
52
                    'forceEager' => null,
×
53
                    'paginationClientEnabled' => null,
×
54
                    'paginationClientItemsPerPage' => null,
×
55
                    'paginationClientPartial' => null,
×
56
                    'paginationEnabled' => null,
×
57
                    'paginationFetchJoinCollection' => null,
×
58
                    'paginationUseOutputWalkers' => null,
×
59
                    'paginationItemsPerPage' => null,
×
60
                    'paginationMaximumItemsPerPage' => null,
×
61
                    'paginationPartial' => null,
×
62
                    'paginationType' => null,
×
63
                    'security' => null,
×
64
                    'securityMessage' => null,
×
65
                    'securityPostDenormalize' => null,
×
66
                    'securityPostDenormalizeMessage' => null,
×
67
                    'securityPostValidation' => null,
×
68
                    'securityPostValidationMessage' => null,
×
69
                    'queryParameterValidationEnabled' => null,
×
70
                    'input' => null,
×
71
                    'output' => null,
×
72
                    'types' => null,
×
73
                    'formats' => null,
×
74
                    'uriVariables' => null,
×
75
                    'inputFormats' => null,
×
76
                    'outputFormats' => null,
×
77
                    'defaults' => null,
×
78
                    'requirements' => null,
×
79
                    'options' => null,
×
80
                    'status' => null,
×
81
                    'schemes' => null,
×
82
                    'cacheHeaders' => null,
×
83
                    'normalizationContext' => null,
×
84
                    'denormalizationContext' => null,
×
85
                    'collectDenormalizationErrors' => null,
×
86
                    'hydraContext' => null,
×
87
                    'openapi' => null,
×
88
                    'validationContext' => null,
×
89
                    'filters' => null,
×
90
                    'mercure' => null,
×
91
                    'messenger' => null,
×
92
                    'order' => null,
×
93
                    'paginationViaCursor' => null,
×
94
                    'exceptionToStatus' => null,
×
95
                    'extraProperties' => null,
×
96
                    'operations' => null,
×
97
                    'graphQlOperations' => null,
×
98
                    'processor' => null,
×
99
                    'provider' => null,
×
100
                    'read' => null,
×
101
                    'write' => null,
×
102
                    'stateOptions' => null,
×
103
                    'links' => null,
×
104
                    'headers' => null,
×
105
                    'parameters' => null,
×
106
                ],
×
107
            ],
×
108
            Program::class => [
×
109
                [
×
110
                    'uriTemplate' => null,
×
111
                    'shortName' => null,
×
112
                    'description' => null,
×
113
                    'routePrefix' => null,
×
114
                    'stateless' => null,
×
115
                    'sunset' => null,
×
116
                    'acceptPatch' => null,
×
117
                    'host' => null,
×
118
                    'condition' => null,
×
119
                    'controller' => null,
×
120
                    'urlGenerationStrategy' => null,
×
121
                    'deprecationReason' => null,
×
122
                    'elasticsearch' => null,
×
123
                    'fetchPartial' => null,
×
124
                    'forceEager' => null,
×
125
                    'paginationClientEnabled' => null,
×
126
                    'paginationClientItemsPerPage' => null,
×
127
                    'paginationClientPartial' => null,
×
128
                    'paginationEnabled' => null,
×
129
                    'paginationFetchJoinCollection' => null,
×
130
                    'paginationUseOutputWalkers' => null,
×
131
                    'paginationItemsPerPage' => null,
×
132
                    'paginationMaximumItemsPerPage' => null,
×
133
                    'paginationPartial' => null,
×
134
                    'paginationType' => null,
×
135
                    'security' => null,
×
136
                    'securityMessage' => null,
×
137
                    'securityPostDenormalize' => null,
×
138
                    'securityPostDenormalizeMessage' => null,
×
139
                    'securityPostValidation' => null,
×
140
                    'securityPostValidationMessage' => null,
×
141
                    'queryParameterValidationEnabled' => null,
×
142
                    'input' => null,
×
143
                    'output' => null,
×
144
                    'types' => null,
×
145
                    'formats' => null,
×
146
                    'uriVariables' => null,
×
147
                    'inputFormats' => null,
×
148
                    'outputFormats' => null,
×
149
                    'defaults' => null,
×
150
                    'requirements' => null,
×
151
                    'options' => null,
×
152
                    'status' => null,
×
153
                    'schemes' => null,
×
154
                    'cacheHeaders' => null,
×
155
                    'normalizationContext' => null,
×
156
                    'denormalizationContext' => null,
×
157
                    'collectDenormalizationErrors' => null,
×
158
                    'hydraContext' => null,
×
159
                    'openapi' => null,
×
160
                    'validationContext' => null,
×
161
                    'filters' => null,
×
162
                    'mercure' => null,
×
163
                    'messenger' => null,
×
164
                    'order' => null,
×
165
                    'paginationViaCursor' => null,
×
166
                    'exceptionToStatus' => null,
×
167
                    'extraProperties' => null,
×
168
                    'operations' => null,
×
169
                    'graphQlOperations' => null,
×
170
                    'processor' => null,
×
171
                    'provider' => null,
×
172
                    'read' => null,
×
173
                    'write' => null,
×
174
                    'stateOptions' => null,
×
175
                    'links' => null,
×
176
                    'headers' => null,
×
177
                    'parameters' => null,
×
178
                ],
×
179
                [
×
180
                    'uriTemplate' => '/users/{author}/programs{._format}',
×
181
                    'shortName' => null,
×
182
                    'description' => 'User programs',
×
183
                    'routePrefix' => null,
×
184
                    'stateless' => null,
×
185
                    'sunset' => null,
×
186
                    'acceptPatch' => null,
×
187
                    'host' => null,
×
188
                    'condition' => null,
×
189
                    'controller' => null,
×
190
                    'urlGenerationStrategy' => null,
×
191
                    'deprecationReason' => null,
×
192
                    'elasticsearch' => null,
×
193
                    'fetchPartial' => null,
×
194
                    'forceEager' => null,
×
195
                    'paginationClientEnabled' => null,
×
196
                    'paginationClientItemsPerPage' => null,
×
197
                    'paginationClientPartial' => null,
×
198
                    'paginationEnabled' => null,
×
199
                    'paginationFetchJoinCollection' => null,
×
200
                    'paginationUseOutputWalkers' => null,
×
201
                    'paginationItemsPerPage' => null,
×
202
                    'paginationMaximumItemsPerPage' => null,
×
203
                    'paginationPartial' => null,
×
204
                    'paginationType' => null,
×
205
                    'security' => null,
×
206
                    'securityMessage' => null,
×
207
                    'securityPostDenormalize' => null,
×
208
                    'securityPostDenormalizeMessage' => null,
×
209
                    'securityPostValidation' => null,
×
210
                    'securityPostValidationMessage' => null,
×
211
                    'queryParameterValidationEnabled' => null,
×
212
                    'input' => null,
×
213
                    'output' => null,
×
214
                    'types' => ['someirischema'],
×
215
                    'formats' => null,
×
216
                    'uriVariables' => ['author' => 'author'],
×
217
                    'inputFormats' => null,
×
218
                    'outputFormats' => null,
×
219
                    'defaults' => null,
×
220
                    'requirements' => null,
×
221
                    'options' => null,
×
222
                    'status' => null,
×
223
                    'schemes' => null,
×
224
                    'cacheHeaders' => null,
×
225
                    'normalizationContext' => [
×
226
                        'groups' => ['foo', 'bar'],
×
227
                        'enabled' => false,
×
228
                    ],
×
229
                    'denormalizationContext' => null,
×
230
                    'collectDenormalizationErrors' => null,
×
231
                    'hydraContext' => null,
×
232
                    'openapi' => null,
×
233
                    'validationContext' => null,
×
234
                    'filters' => null,
×
235
                    'mercure' => null,
×
236
                    'messenger' => null,
×
237
                    'order' => null,
×
238
                    'paginationViaCursor' => null,
×
239
                    'exceptionToStatus' => null,
×
240
                    'extraProperties' => null,
×
241
                    'operations' => [
×
242
                        [
×
243
                            'name' => null,
×
244
                            'class' => GetCollection::class,
×
245
                            'uriTemplate' => '/users/{author}/programs{._format}',
×
246
                            'shortName' => null,
×
247
                            'description' => 'User programs',
×
248
                            'routePrefix' => null,
×
249
                            'stateless' => null,
×
250
                            'sunset' => null,
×
251
                            'acceptPatch' => null,
×
252
                            'host' => null,
×
253
                            'condition' => null,
×
254
                            'controller' => null,
×
255
                            'urlGenerationStrategy' => null,
×
256
                            'deprecationReason' => null,
×
257
                            'elasticsearch' => null,
×
258
                            'fetchPartial' => null,
×
259
                            'forceEager' => null,
×
260
                            'paginationClientEnabled' => null,
×
261
                            'paginationClientItemsPerPage' => null,
×
262
                            'paginationClientPartial' => null,
×
263
                            'paginationEnabled' => null,
×
264
                            'paginationFetchJoinCollection' => null,
×
265
                            'paginationUseOutputWalkers' => null,
×
266
                            'paginationItemsPerPage' => null,
×
267
                            'paginationMaximumItemsPerPage' => null,
×
268
                            'paginationPartial' => null,
×
269
                            'paginationType' => null,
×
270
                            'security' => null,
×
271
                            'securityMessage' => null,
×
272
                            'securityPostDenormalize' => null,
×
273
                            'securityPostDenormalizeMessage' => null,
×
274
                            'securityPostValidation' => null,
×
275
                            'securityPostValidationMessage' => null,
×
276
                            'queryParameterValidationEnabled' => null,
×
277
                            'strictQueryParameterValidation' => null,
×
278
                            'hideHydraOperation' => null,
×
279
                            'input' => null,
×
280
                            'output' => null,
×
281
                            'types' => ['someirischema'],
×
282
                            'formats' => null,
×
283
                            'uriVariables' => ['author' => 'author'],
×
284
                            'inputFormats' => null,
×
285
                            'outputFormats' => null,
×
286
                            'defaults' => null,
×
287
                            'requirements' => null,
×
288
                            'options' => null,
×
289
                            'status' => null,
×
290
                            'schemes' => null,
×
291
                            'cacheHeaders' => null,
×
292
                            'normalizationContext' => [
×
293
                                'groups' => ['foo', 'bar'],
×
294
                                'enabled' => false,
×
295
                            ],
×
296
                            'denormalizationContext' => null,
×
297
                            'collectDenormalizationErrors' => null,
×
298
                            'hydraContext' => null,
×
299
                            'openapi' => null,
×
300
                            'validationContext' => null,
×
301
                            'filters' => null,
×
302
                            'mercure' => null,
×
303
                            'messenger' => null,
×
304
                            'order' => null,
×
305
                            'paginationViaCursor' => null,
×
306
                            'exceptionToStatus' => null,
×
307
                            'extraProperties' => null,
×
308
                            'read' => null,
×
309
                            'deserialize' => null,
×
310
                            'validate' => null,
×
311
                            'write' => null,
×
312
                            'serialize' => null,
×
313
                            'queryParameterValidate' => null,
×
314
                            'priority' => null,
×
315
                            'processor' => null,
×
316
                            'provider' => null,
×
317
                            'itemUriTemplate' => null,
×
318
                            'stateOptions' => null,
×
319
                            'links' => null,
×
320
                            'headers' => ['hello' => 'world'],
×
321
                            'parameters' => null,
×
322
                        ],
×
323
                        [
×
324
                            'name' => null,
×
325
                            'class' => Get::class,
×
326
                            'uriTemplate' => '/users/{userId}/programs/{id}{._format}',
×
327
                            'shortName' => null,
×
328
                            'description' => 'User programs',
×
329
                            'routePrefix' => null,
×
330
                            'stateless' => null,
×
331
                            'sunset' => null,
×
332
                            'acceptPatch' => null,
×
333
                            'host' => null,
×
334
                            'condition' => null,
×
335
                            'controller' => null,
×
336
                            'urlGenerationStrategy' => null,
×
337
                            'deprecationReason' => null,
×
338
                            'elasticsearch' => null,
×
339
                            'fetchPartial' => null,
×
340
                            'forceEager' => null,
×
341
                            'paginationClientEnabled' => null,
×
342
                            'paginationClientItemsPerPage' => null,
×
343
                            'paginationClientPartial' => null,
×
344
                            'paginationEnabled' => null,
×
345
                            'paginationFetchJoinCollection' => null,
×
346
                            'paginationUseOutputWalkers' => null,
×
347
                            'paginationItemsPerPage' => null,
×
348
                            'paginationMaximumItemsPerPage' => null,
×
349
                            'paginationPartial' => null,
×
350
                            'paginationType' => null,
×
351
                            'security' => null,
×
352
                            'securityMessage' => null,
×
353
                            'securityPostDenormalize' => null,
×
354
                            'securityPostDenormalizeMessage' => null,
×
355
                            'securityPostValidation' => null,
×
356
                            'securityPostValidationMessage' => null,
×
357
                            'queryParameterValidationEnabled' => null,
×
358
                            'strictQueryParameterValidation' => null,
×
359
                            'hideHydraOperation' => null,
×
360
                            'input' => null,
×
361
                            'output' => null,
×
362
                            'types' => ['anotheririschema'],
×
363
                            'formats' => null,
×
364
                            'uriVariables' => [
×
365
                                'userId' => ['from_class' => User::class, 'from_property' => 'author'],
×
366
                                'id' => 'id',
×
367
                            ],
×
368
                            'inputFormats' => null,
×
369
                            'outputFormats' => null,
×
370
                            'defaults' => null,
×
371
                            'requirements' => null,
×
372
                            'options' => null,
×
373
                            'status' => null,
×
374
                            'schemes' => null,
×
375
                            'cacheHeaders' => null,
×
376
                            'normalizationContext' => [
×
377
                                'groups' => ['foo', 'bar'],
×
378
                                'enabled' => false,
×
379
                            ],
×
380
                            'denormalizationContext' => null,
×
381
                            'collectDenormalizationErrors' => null,
×
382
                            'hydraContext' => null,
×
383
                            'openapi' => null,
×
384
                            'validationContext' => null,
×
385
                            'filters' => null,
×
386
                            'mercure' => null,
×
387
                            'messenger' => null,
×
388
                            'order' => null,
×
389
                            'paginationViaCursor' => null,
×
390
                            'exceptionToStatus' => null,
×
391
                            'extraProperties' => [
×
392
                                'foo' => 'bar',
×
393
                                'boolean' => true,
×
394
                            ],
×
395
                            'read' => null,
×
396
                            'deserialize' => null,
×
397
                            'validate' => null,
×
398
                            'write' => null,
×
399
                            'serialize' => null,
×
400
                            'queryParameterValidate' => null,
×
401
                            'priority' => null,
×
402
                            'processor' => null,
×
403
                            'provider' => null,
×
404
                            'stateOptions' => null,
×
405
                            'links' => null,
×
406
                            'headers' => ['hello' => 'world'],
×
407
                            'parameters' => ['author' => new QueryParameter(schema: ['type' => 'string'], required: true, key: 'author', description: 'hello')],
×
408
                        ],
×
409
                    ],
×
410
                    'graphQlOperations' => null,
×
411
                    'processor' => null,
×
412
                    'provider' => null,
×
413
                    'read' => null,
×
414
                    'write' => null,
×
415
                    'stateOptions' => null,
×
416
                    'links' => null,
×
417
                    'headers' => ['hello' => 'world'],
×
418
                    'parameters' => null,
×
419
                ],
×
420
            ],
×
421
            SingleFileConfigDummy::class => [
×
422
                [
×
423
                    'uriTemplate' => null,
×
424
                    'shortName' => 'single_file_config',
×
425
                    'description' => 'File configured resource',
×
426
                    'routePrefix' => null,
×
427
                    'stateless' => null,
×
428
                    'sunset' => null,
×
429
                    'acceptPatch' => null,
×
430
                    'host' => null,
×
431
                    'condition' => null,
×
432
                    'controller' => null,
×
433
                    'urlGenerationStrategy' => null,
×
434
                    'deprecationReason' => null,
×
435
                    'elasticsearch' => null,
×
436
                    'fetchPartial' => null,
×
437
                    'forceEager' => null,
×
438
                    'paginationClientEnabled' => null,
×
439
                    'paginationClientItemsPerPage' => null,
×
440
                    'paginationClientPartial' => null,
×
441
                    'paginationEnabled' => null,
×
442
                    'paginationFetchJoinCollection' => null,
×
443
                    'paginationUseOutputWalkers' => null,
×
444
                    'paginationItemsPerPage' => null,
×
445
                    'paginationMaximumItemsPerPage' => null,
×
446
                    'paginationPartial' => null,
×
447
                    'paginationType' => null,
×
448
                    'security' => null,
×
449
                    'securityMessage' => null,
×
450
                    'securityPostDenormalize' => null,
×
451
                    'securityPostDenormalizeMessage' => null,
×
452
                    'securityPostValidation' => null,
×
453
                    'securityPostValidationMessage' => null,
×
454
                    'queryParameterValidationEnabled' => null,
×
455
                    'input' => null,
×
456
                    'output' => null,
×
457
                    'types' => null,
×
458
                    'formats' => null,
×
459
                    'uriVariables' => null,
×
460
                    'inputFormats' => null,
×
461
                    'outputFormats' => null,
×
462
                    'defaults' => null,
×
463
                    'requirements' => null,
×
464
                    'options' => null,
×
465
                    'status' => null,
×
466
                    'schemes' => null,
×
467
                    'cacheHeaders' => null,
×
468
                    'normalizationContext' => null,
×
469
                    'denormalizationContext' => null,
×
470
                    'collectDenormalizationErrors' => null,
×
471
                    'hydraContext' => null,
×
472
                    'openapi' => null,
×
473
                    'validationContext' => null,
×
474
                    'filters' => null,
×
475
                    'mercure' => null,
×
476
                    'messenger' => null,
×
477
                    'order' => null,
×
478
                    'paginationViaCursor' => null,
×
479
                    'exceptionToStatus' => null,
×
480
                    'extraProperties' => null,
×
481
                    'operations' => null,
×
482
                    'graphQlOperations' => null,
×
483
                    'processor' => null,
×
484
                    'provider' => null,
×
485
                    'read' => null,
×
486
                    'write' => null,
×
487
                    'stateOptions' => null,
×
488
                    'links' => null,
×
489
                    'headers' => null,
×
UNCOV
490
                    'parameters' => null,
×
UNCOV
491
                ],
×
UNCOV
492
            ],
×
UNCOV
493
        ], $extractor->getResources());
×
494
    }
495

496
    public function testOpenApiParameters(): void
497
    {
498
        $extractor = new YamlResourceExtractor([__DIR__.'/yaml/openapi.yaml']);
×
UNCOV
499
        $resources = $extractor->getResources();
×
500

UNCOV
501
        $this->assertArrayHasKey(Program::class, $resources);
×
502
        $this->assertArrayHasKey('openapi', $resources[Program::class][0]);
×
503

UNCOV
504
        $this->assertIsObject($resources[Program::class][0]['operations'][0]['openapi']);
×
505

506
        $operation = $resources[Program::class][0]['operations'][0]['openapi'];
×
507
        $this->assertIsArray($operation->getParameters());
×
508

UNCOV
509
        $this->assertEquals('author', $operation->getParameters()[0]->getName());
×
UNCOV
510
        $this->assertEquals('path', $operation->getParameters()[0]->getIn());
×
UNCOV
511
        $this->assertEquals('john-doe', $operation->getParameters()[0]->getExample());
×
512
    }
513

514
    public function testInputAndOutputAreBooleans(): void
515
    {
516
        $extractor = new YamlResourceExtractor([__DIR__.'/yaml/input-and-output-are-booleans.yaml']);
×
517
        $resources = $extractor->getResources();
×
518

UNCOV
519
        $this->assertArrayHasKey(Program::class, $resources);
×
520
        $this->assertArrayHasKey(0, $resources[Program::class]);
×
521
        $this->assertArrayHasKey('operations', $resources[Program::class][0]);
×
UNCOV
522
        $this->assertArrayHasKey('0', $resources[Program::class][0]['operations']);
×
523

524
        $this->assertArrayHasKey('input', $resources[Program::class][0]['operations'][0]);
×
UNCOV
525
        $this->assertFalse($resources[Program::class][0]['operations'][0]['input']);
×
526

UNCOV
527
        $this->assertArrayHasKey('output', $resources[Program::class][0]['operations'][0]);
×
UNCOV
528
        $this->assertFalse($resources[Program::class][0]['operations'][0]['output']);
×
529
    }
530

531
    public function testInputAndOutputAreStrings(): void
532
    {
533
        $extractor = new YamlResourceExtractor([__DIR__.'/yaml/input-and-output-are-strings.yaml']);
×
534
        $resources = $extractor->getResources();
×
535

UNCOV
536
        $this->assertArrayHasKey(Program::class, $resources);
×
537
        $this->assertArrayHasKey(0, $resources[Program::class]);
×
538
        $this->assertArrayHasKey('operations', $resources[Program::class][0]);
×
UNCOV
539
        $this->assertArrayHasKey('0', $resources[Program::class][0]['operations']);
×
540

541
        $this->assertArrayHasKey('input', $resources[Program::class][0]['operations'][0]);
×
UNCOV
542
        $this->assertSame(Program::class.'Input', $resources[Program::class][0]['operations'][0]['input']);
×
543

UNCOV
544
        $this->assertArrayHasKey('output', $resources[Program::class][0]['operations'][0]);
×
UNCOV
545
        $this->assertSame(Program::class.'Output', $resources[Program::class][0]['operations'][0]['output']);
×
546
    }
547

548
    #[\PHPUnit\Framework\Attributes\DataProvider('getInvalidPaths')]
549
    public function testInvalidYaml(string $path, string $error): void
550
    {
UNCOV
551
        $this->expectException(InvalidArgumentException::class);
×
UNCOV
552
        $this->expectExceptionMessage($error);
×
553

UNCOV
554
        (new YamlResourceExtractor([$path]))->getResources();
×
555
    }
556

557
    public static function getInvalidPaths(): array
558
    {
UNCOV
559
        return [
×
UNCOV
560
            [__DIR__.'/yaml/invalid/invalid_resources.yaml', '"resources" setting is expected to be null or an array, string given in "'.__DIR__.'/yaml/invalid/invalid_resources.yaml".'],
×
UNCOV
561
        ];
×
562
    }
563
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc