import React from "react" import { render } from "enzyme" import Markdown from "components/providers/markdown" import { Markdown as OAS3Markdown } from "corePlugins/oas3/wrap-components/markdown.jsx" describe("Markdown component", function () { describe("Swagger 2.0", function () { it("allows elements with class, style and data-* attribs", function () { const getConfigs = () => ({ useUnsafeMarkdown: true }) const str = `ONE` const el = render() expect(el.prop("outerHTML")).toEqual(`

ONE

\n
`) }) it("strips class, style and data-* attribs from elements", function () { const getConfigs = () => ({ useUnsafeMarkdown: false }) const str = `ONE` const el = render() expect(el.prop("outerHTML")).toEqual(`

ONE

\n
`) }) it("allows td elements with colspan attrib", function () { const str = `
ABC
` const el = render() expect(el.prop("outerHTML")).toEqual(`
ABC
`) }) it("allows image elements", function () { const str = `![Image alt text](http://image.source "Image title")` const el = render() expect(el.prop("outerHTML")).toEqual(`

Image alt text

\n
`) }) it("allows image elements with https scheme", function () { const str = `![Image alt text](https://image.source "Image title")` const el = render() expect(el.prop("outerHTML")).toEqual(`

Image alt text

\n
`) }) it("allows image elements with data scheme", function () { const str = `` const el = render() expect(el.prop("outerHTML")).toEqual(`

` + str + `

\n
`) }) it("allows heading elements", function () { const str = ` # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6` const el = render() expect(el.prop("outerHTML")).toEqual(`

h1

\n

h2

\n

h3

\n

h4

\n
h5
\n
h6
\n
`) }) it("allows links", function () { const str = `[Link](https://example.com/)` const el = render() expect(el.prop("outerHTML")).toEqual(``) }) }) describe("OAS 3", function () { it("allows elements with class, style and data-* attribs", function () { const getConfigs = () => ({ useUnsafeMarkdown: true }) const str = `ONE` const el = render() expect(el.prop("outerHTML")).toEqual(`

ONE

`) }) it("strips class, style and data-* attribs from elements", function () { const getConfigs = () => ({ useUnsafeMarkdown: false }) const str = `ONE` const el = render() expect(el.prop("outerHTML")).toEqual(`

ONE

`) }) it("allows image elements", function () { const str = `![Image alt text](http://image.source "Image title")` const el = render() expect(el.prop("outerHTML")).toEqual(`

Image alt text

`) }) it("allows image elements with https scheme", function () { const str = `![Image alt text](https://image.source "Image title")` const el = render() expect(el.prop("outerHTML")).toEqual(`

Image alt text

`) }) it("allows image elements with data scheme", function () { const str = `` const el = render() expect(el.prop("outerHTML")).toEqual(`

` + str + `

`) }) it("allows heading elements", function () { const str = ` # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6` const el = render() expect(el.prop("outerHTML")).toEqual(`

h1

\n

h2

\n

h3

\n

h4

\n
h5
\n
h6
`) }) }) })