feat: better media types detection for JSON, XML and HTML lenses (#1438)

Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
This commit is contained in:
Kévin Dunglas
2021-01-26 05:27:11 +01:00
committed by GitHub
parent d2dfb4c8df
commit 07f370d6d2
9 changed files with 37 additions and 45 deletions

View File

@@ -5,24 +5,28 @@ describe("isJSONContentType", () => {
expect(isJSONContentType("application/json")).toBe(true)
expect(isJSONContentType("application/vnd.api+json")).toBe(true)
expect(isJSONContentType("application/hal+json")).toBe(true)
expect(isJSONContentType("application/ld+json")).toBe(true)
})
test("returns true for JSON types with charset specified", () => {
expect(isJSONContentType("application/json; charset=utf-8")).toBe(true)
expect(isJSONContentType("application/vnd.api+json; charset=utf-8")).toBe(true)
expect(isJSONContentType("application/hal+json; charset=utf-8")).toBe(true)
expect(isJSONContentType("application/ld+json; charset=utf-8")).toBe(true)
})
test("returns false for non-JSON content types", () => {
expect(isJSONContentType("application/xml")).toBe(false)
expect(isJSONContentType("text/html")).toBe(false)
expect(isJSONContentType("application/x-www-form-urlencoded")).toBe(false)
expect(isJSONContentType("foo/jsoninword")).toBe(false)
})
test("returns false for non-JSON content types with charset", () => {
expect(isJSONContentType("application/xml; charset=utf-8")).toBe(false)
expect(isJSONContentType("text/html; charset=utf-8")).toBe(false)
expect(isJSONContentType("application/x-www-form-urlencoded; charset=utf-8")).toBe(false)
expect(isJSONContentType("foo/jsoninword; charset=utf-8")).toBe(false)
})
test("returns false for null/undefined", () => {