1010
1111final class Filters
1212{
13+ public string $ schemaValidationBaseline = 'api-tester.schema-baseline.yaml ' ;
14+
1315 /**
1416 * @var array<array<string, string>>
1517 */
@@ -26,11 +28,16 @@ final class Filters
2628 * @param array<array<string, string>> $include
2729 * @param array<array<string, string>> $exclude
2830 */
29- public function __construct (?array $ include = null , ?array $ exclude = null , string $ baseline = null )
30- {
31+ public function __construct (
32+ ?array $ include = null ,
33+ ?array $ exclude = null ,
34+ string $ baseline = null ,
35+ string $ schemaValidationBaseline = null
36+ ) {
3137 $ this ->include = $ include ?? [];
3238 $ this ->exclude = $ exclude ?? [];
3339 $ this ->baseline = $ baseline ?? $ this ->baseline ;
40+ $ this ->schemaValidationBaseline = $ schemaValidationBaseline ?? $ this ->schemaValidationBaseline ;
3441 }
3542
3643 /**
@@ -68,6 +75,26 @@ public function getBaseLineExclude(): array
6875 return $ baseline ['exclude ' ];
6976 }
7077
78+ /**
79+ * @return array<string>
80+ */
81+ public function getSchemaValidationBaseline (): array
82+ {
83+ if (!file_exists ($ this ->schemaValidationBaseline )) {
84+ return [];
85+ }
86+
87+ /** @var array{'exclude': ?array<string>} */
88+ $ baseline = Yaml::parseFile ($ this ->schemaValidationBaseline );
89+
90+ if (!isset ($ baseline ['exclude ' ])) {
91+ return [];
92+ }
93+
94+ /** @var array<string> */
95+ return $ baseline ['exclude ' ];
96+ }
97+
7198 public function getBaseline (): string
7299 {
73100 return $ this ->baseline ;
0 commit comments