123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import { lenses, getSuitableLenses, getLensRenderers } from "../lenses"
- import rawLens from "../rawLens"
- describe("getSuitableLenses", () => {
- test("returns raw lens if no content type reported (null/undefined)", () => {
- const nullResult = getSuitableLenses({
- headers: {
- "content-type": null,
- },
- })
- const undefinedResult = getSuitableLenses({
- headers: {},
- })
- expect(nullResult).toHaveLength(1)
- expect(nullResult).toContainEqual(rawLens)
- expect(undefinedResult).toHaveLength(1)
- expect(undefinedResult).toContainEqual(rawLens)
- })
- const contentTypes = {
- JSON: [
- "application/json",
- "application/ld+json",
- "application/hal+json; charset=utf8",
- ],
- Image: [
- "image/gif",
- "image/jpeg; foo=bar",
- "image/png",
- "image/bmp",
- "image/svg+xml",
- "image/x-icon",
- "image/vnd.microsoft.icon",
- ],
- HTML: ["text/html", "application/xhtml+xml", "text/html; charset=utf-8"],
- XML: [
- "text/xml",
- "application/xml",
- "application/xhtml+xml; charset=utf-8",
- ],
- }
- lenses
- .filter(({ lensName }) => lensName !== rawLens.lensName)
- .forEach((el) => {
- test(`returns ${el.lensName} lens for its content-types`, () => {
- contentTypes[el.lensName].forEach((contentType) => {
- expect(
- getSuitableLenses({
- headers: {
- "content-type": contentType,
- },
- })
- ).toContainEqual(el)
- })
- })
- test(`returns Raw Lens along with ${el.lensName} for the content types`, () => {
- contentTypes[el.lensName].forEach((contentType) => {
- expect(
- getSuitableLenses({
- headers: {
- "content-type": contentType,
- },
- })
- ).toContainEqual(rawLens)
- })
- })
- })
- })
- describe("getLensRenderers", () => {
- test("returns all the lens renderers", () => {
- const res = getLensRenderers()
- lenses.forEach(({ renderer, rendererImport }) => {
- expect(res).toHaveProperty(renderer)
- expect(res[renderer]).toBe(rendererImport)
- })
- })
- })
|