Skip to content
This repository was archived by the owner on Nov 8, 2024. It is now read-only.

Commit 63ea16c

Browse files
committed
fix(oas3): don't throw error when media type is invalid
1 parent a69180d commit 63ea16c

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

packages/fury-adapter-oas3-parser/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77
- Adds support for example values for text based media types such as
88
`text/*` and `application/xml`.
99

10+
### Bug Fixes
11+
12+
- Prevents the parser from throwing an exception when encountering an invalid
13+
media type.
14+
1015
## 0.9.0 (2019-07-02)
1116

1217
This release brings significant performance improvement to parsing large

packages/fury-adapter-oas3-parser/lib/parser/oas/parseMediaTypeObject.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ const parseExampleObjectOrRef = parseReference('examples', parseExampleObject);
110110

111111
const isValidMediaType = (mediaType) => {
112112
try {
113-
contentTyper.parse(mediaType.toValue());
113+
const { type } = contentTyper.parse(mediaType.toValue());
114+
mediaTyper.parse(type);
114115
} catch (error) {
115116
return false;
116117
}

packages/fury-adapter-oas3-parser/test/unit/parser/oas/parseMediaTypeObject-test.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,22 @@ describe('Media Type Object', () => {
2121
expect(parseResult).to.contain.warning("'Media Type Object' is not an object");
2222
});
2323

24-
it('provides warning when media type is invalid', () => {
24+
it('provides warning when content type is invalid', () => {
2525
const mediaType = new namespace.elements.Member('foo', {});
2626

2727
const parseResult = parse(context, messageBodyClass, mediaType);
2828

2929
expect(parseResult).to.contain.warning("'Media Type Object' media type 'foo' is invalid");
3030
});
3131

32+
it('provides warning when media type is invalid', () => {
33+
const mediaType = new namespace.elements.Member('*/*', {});
34+
35+
const parseResult = parse(context, messageBodyClass, mediaType);
36+
37+
expect(parseResult).to.contain.warning("'Media Type Object' media type '*/*' is invalid");
38+
});
39+
3240
it('permits media type with parameters', () => {
3341
const mediaType = new namespace.elements.Member('application/json; charset=utf-8', {});
3442

0 commit comments

Comments
 (0)