skooma 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +35 -1
- data/README.md +3 -0
- data/data/oas-3.1/dialect/2024-11-10.json +93 -0
- data/data/oas-3.1/meta/2024-11-10.json +92 -0
- data/data/oas-3.1/schema/2025-02-13.json +1408 -0
- data/data/oas-3.1/schema-base/2025-02-13.json +25 -0
- data/lib/skooma/coverage.rb +20 -5
- data/lib/skooma/coverage_store.rb +69 -0
- data/lib/skooma/keywords/oas_3_1/dialect/additional_properties.rb +1 -1
- data/lib/skooma/matchers/wrapper.rb +7 -2
- data/lib/skooma/minitest.rb +3 -1
- data/lib/skooma/objects/components.rb +2 -2
- data/lib/skooma/objects/openapi/keywords/openapi.rb +6 -1
- data/lib/skooma/objects/openapi/keywords/paths.rb +76 -10
- data/lib/skooma/objects/openapi.rb +10 -0
- data/lib/skooma/version.rb +1 -1
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf16e672d609616c2a5c38912ba8139557ada73f4b0c3978a2961225ced903be
|
4
|
+
data.tar.gz: 657681c26bc1d52416b993ea8561d043a6aff1d9f4a87db787203a56ec77053f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 920065e5fbe155aa92dc92b87467a7676c54e6b5697dcb67a26dbb4ef6ddf52fb0660779ad14bfed3dfe4a437a6ad8296ea0f37901d5dac485d1ed537022b4b6
|
7
|
+
data.tar.gz: 317419a94b2f073e18f617260d0779eda14d546164688c038739445f6a696254cba546c747bff490156a70d458efd47d481e3e22b986ea0da390ab70a11e7253
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning].
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [0.3.6] - 2025-09-04
|
11
|
+
|
12
|
+
### Added
|
13
|
+
|
14
|
+
- Add OpenAPI 3.1.1 schemas to enable schema validation. ([@Envek])
|
15
|
+
|
16
|
+
### Fixed
|
17
|
+
|
18
|
+
- Fix examples and callbacks support in Components. ([@goodtouch])
|
19
|
+
|
20
|
+
## [0.3.5] - 2025-07-31
|
21
|
+
|
22
|
+
### Fixed
|
23
|
+
|
24
|
+
- Fix the Enforce Access mode with additional properties. ([@aburgel])
|
25
|
+
- Introduce coverage storage to fix Minitest parallel workers reports. ([@skarlcf])
|
26
|
+
- Introduce `use_patterns_for_path_matching` option to allow using `path` patterns for path matching. ([@jandouwebeekman])
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
# spec/rails_helper.rb
|
30
|
+
|
31
|
+
RSpec.configure do |config|
|
32
|
+
# To enable path patterns, pass `use_patterns_for_path_matching: true` option:
|
33
|
+
config.include Skooma::RSpec[Rails.root.join("docs", "openapi.yml"), use_patterns_for_path_matching: true], type: :request
|
34
|
+
end
|
35
|
+
```
|
36
|
+
|
10
37
|
## [0.3.4] - 2025-01-14
|
11
38
|
|
12
39
|
### Added
|
@@ -140,12 +167,19 @@ and this project adheres to [Semantic Versioning].
|
|
140
167
|
|
141
168
|
- Initial implementation. ([@skryukov])
|
142
169
|
|
170
|
+
[@aburgel]: https://github.com/aburgel
|
143
171
|
[@barnaclebarnes]: https://github.com/barnaclebarnes
|
172
|
+
[@Envek]: https://github.com/Envek
|
173
|
+
[@goodtouch]: https://github.com/goodtouch
|
174
|
+
[@jandouwebeekman]: https://github.com/jandouwebeekman
|
144
175
|
[@pvcarrera]: https://github.com/pvcarrera
|
176
|
+
[@skarlcf]: https://github.com/skarlcf
|
145
177
|
[@skryukov]: https://github.com/skryukov
|
146
178
|
[@ursm]: https://github.com/ursm
|
147
179
|
|
148
|
-
[Unreleased]: https://github.com/skryukov/skooma/compare/v0.3.
|
180
|
+
[Unreleased]: https://github.com/skryukov/skooma/compare/v0.3.6...HEAD
|
181
|
+
[0.3.6]: https://github.com/skryukov/skooma/compare/v0.3.5...v0.3.6
|
182
|
+
[0.3.5]: https://github.com/skryukov/skooma/compare/v0.3.4...v0.3.5
|
149
183
|
[0.3.4]: https://github.com/skryukov/skooma/compare/v0.3.3...v0.3.4
|
150
184
|
[0.3.3]: https://github.com/skryukov/skooma/compare/v0.3.2...v0.3.3
|
151
185
|
[0.3.2]: https://github.com/skryukov/skooma/compare/v0.3.1...v0.3.2
|
data/README.md
CHANGED
@@ -132,6 +132,9 @@ ActionDispatch::IntegrationTest.include Skooma::Minitest[path_to_openapi, covera
|
|
132
132
|
# EXPERIMENTAL
|
133
133
|
# To enable support for readOnly and writeOnly keywords, pass `enforce_access_modes: true` option:
|
134
134
|
ActionDispatch::IntegrationTest.include Skooma::Minitest[path_to_openapi, enforce_access_modes: true], type: :request
|
135
|
+
|
136
|
+
# To enable custom regex patterns for path parameters, pass `use_patterns_for_path_matching: true` option.
|
137
|
+
ActionDispatch::IntegrationTest.include Skooma::Minitest[path_to_openapi, use_patterns_for_path_matching: true], type: :request
|
135
138
|
```
|
136
139
|
|
137
140
|
#### Validate OpenAPI document
|
@@ -0,0 +1,93 @@
|
|
1
|
+
{
|
2
|
+
"$id": "https://spec.openapis.org/oas/3.1/meta/2024-11-10",
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
4
|
+
"title": "OAS Base Vocabulary",
|
5
|
+
"description": "A JSON Schema Vocabulary used in the OpenAPI Schema Dialect",
|
6
|
+
"$dynamicAnchor": "meta",
|
7
|
+
"$vocabulary": {
|
8
|
+
"https://spec.openapis.org/oas/3.1/vocab/base": true
|
9
|
+
},
|
10
|
+
"type": [
|
11
|
+
"object",
|
12
|
+
"boolean"
|
13
|
+
],
|
14
|
+
"properties": {
|
15
|
+
"discriminator": {
|
16
|
+
"$ref": "#/$defs/discriminator"
|
17
|
+
},
|
18
|
+
"example": true,
|
19
|
+
"externalDocs": {
|
20
|
+
"$ref": "#/$defs/external-docs"
|
21
|
+
},
|
22
|
+
"xml": {
|
23
|
+
"$ref": "#/$defs/xml"
|
24
|
+
}
|
25
|
+
},
|
26
|
+
"$defs": {
|
27
|
+
"discriminator": {
|
28
|
+
"$ref": "#/$defs/extensible",
|
29
|
+
"properties": {
|
30
|
+
"mapping": {
|
31
|
+
"additionalProperties": {
|
32
|
+
"type": "string"
|
33
|
+
},
|
34
|
+
"type": "object"
|
35
|
+
},
|
36
|
+
"propertyName": {
|
37
|
+
"type": "string"
|
38
|
+
}
|
39
|
+
},
|
40
|
+
"required": [
|
41
|
+
"propertyName"
|
42
|
+
],
|
43
|
+
"type": "object",
|
44
|
+
"unevaluatedProperties": false
|
45
|
+
},
|
46
|
+
"extensible": {
|
47
|
+
"patternProperties": {
|
48
|
+
"^x-": true
|
49
|
+
}
|
50
|
+
},
|
51
|
+
"external-docs": {
|
52
|
+
"$ref": "#/$defs/extensible",
|
53
|
+
"properties": {
|
54
|
+
"description": {
|
55
|
+
"type": "string"
|
56
|
+
},
|
57
|
+
"url": {
|
58
|
+
"format": "uri-reference",
|
59
|
+
"type": "string"
|
60
|
+
}
|
61
|
+
},
|
62
|
+
"required": [
|
63
|
+
"url"
|
64
|
+
],
|
65
|
+
"type": "object",
|
66
|
+
"unevaluatedProperties": false
|
67
|
+
},
|
68
|
+
"xml": {
|
69
|
+
"$ref": "#/$defs/extensible",
|
70
|
+
"properties": {
|
71
|
+
"attribute": {
|
72
|
+
"type": "boolean"
|
73
|
+
},
|
74
|
+
"name": {
|
75
|
+
"type": "string"
|
76
|
+
},
|
77
|
+
"namespace": {
|
78
|
+
"format": "uri",
|
79
|
+
"type": "string"
|
80
|
+
},
|
81
|
+
"prefix": {
|
82
|
+
"type": "string"
|
83
|
+
},
|
84
|
+
"wrapped": {
|
85
|
+
"type": "boolean"
|
86
|
+
}
|
87
|
+
},
|
88
|
+
"type": "object",
|
89
|
+
"unevaluatedProperties": false
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
@@ -0,0 +1,92 @@
|
|
1
|
+
{
|
2
|
+
"$id": "https://spec.openapis.org/oas/3.1/meta/2024-11-10",
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
4
|
+
"title": "OAS Base Vocabulary",
|
5
|
+
"description": "A JSON Schema Vocabulary used in the OpenAPI Schema Dialect",
|
6
|
+
"$dynamicAnchor": "meta",
|
7
|
+
"$vocabulary": {
|
8
|
+
"https://spec.openapis.org/oas/3.1/vocab/base": true
|
9
|
+
},
|
10
|
+
"type": [
|
11
|
+
"object",
|
12
|
+
"boolean"
|
13
|
+
],
|
14
|
+
"properties": {
|
15
|
+
"discriminator": {
|
16
|
+
"$ref": "#/$defs/discriminator"
|
17
|
+
},
|
18
|
+
"example": true,
|
19
|
+
"externalDocs": {
|
20
|
+
"$ref": "#/$defs/external-docs"
|
21
|
+
},
|
22
|
+
"xml": {
|
23
|
+
"$ref": "#/$defs/xml"
|
24
|
+
}
|
25
|
+
},
|
26
|
+
"$defs": {
|
27
|
+
"discriminator": {
|
28
|
+
"$ref": "#/$defs/extensible",
|
29
|
+
"properties": {
|
30
|
+
"mapping": {
|
31
|
+
"additionalProperties": {
|
32
|
+
"type": "string"
|
33
|
+
},
|
34
|
+
"type": "object"
|
35
|
+
},
|
36
|
+
"propertyName": {
|
37
|
+
"type": "string"
|
38
|
+
}
|
39
|
+
},
|
40
|
+
"required": [
|
41
|
+
"propertyName"
|
42
|
+
],
|
43
|
+
"type": "object",
|
44
|
+
"unevaluatedProperties": false
|
45
|
+
},
|
46
|
+
"extensible": {
|
47
|
+
"patternProperties": {
|
48
|
+
"^x-": true
|
49
|
+
}
|
50
|
+
},
|
51
|
+
"external-docs": {
|
52
|
+
"$ref": "#/$defs/extensible",
|
53
|
+
"properties": {
|
54
|
+
"description": {
|
55
|
+
"type": "string"
|
56
|
+
},
|
57
|
+
"url": {
|
58
|
+
"format": "uri-reference",
|
59
|
+
"type": "string"
|
60
|
+
}
|
61
|
+
},
|
62
|
+
"required": [
|
63
|
+
"url"
|
64
|
+
],
|
65
|
+
"type": "object",
|
66
|
+
"unevaluatedProperties": false
|
67
|
+
},
|
68
|
+
"xml": {
|
69
|
+
"$ref": "#/$defs/extensible",
|
70
|
+
"properties": {
|
71
|
+
"attribute": {
|
72
|
+
"type": "boolean"
|
73
|
+
},
|
74
|
+
"name": {
|
75
|
+
"type": "string"
|
76
|
+
},
|
77
|
+
"namespace": {
|
78
|
+
"format": "uri",
|
79
|
+
"type": "string"
|
80
|
+
},
|
81
|
+
"prefix": {
|
82
|
+
"type": "string"
|
83
|
+
},
|
84
|
+
"wrapped": {
|
85
|
+
"type": "boolean"
|
86
|
+
}
|
87
|
+
},
|
88
|
+
"type": "object",
|
89
|
+
"unevaluatedProperties": false
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|