From 3ed335ef529c94cdc8fbb1a999b43f9dd36fc949 Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Thu, 10 Jun 2021 17:15:54 +0200 Subject: [PATCH] test(test:unit-jest): fix all failing tests for this script We needed to align new cheerio and enzyme APIS with tests. Refs #7341 --- test/unit/bugs/3199-sanitization-escaping.jsx | 2 +- test/unit/components/json-schema-form.jsx | 28 +++++++++-------- test/unit/components/markdown.jsx | 28 ++++++++--------- test/unit/components/operation-tag.jsx | 2 +- test/unit/core/system/wrapComponent.jsx | 30 ++++++++----------- test/unit/setup.js | 8 +++-- test/unit/xss/anchor-target-rel/link.jsx | 16 +++++----- .../unit/xss/markdown-script-sanitization.jsx | 12 ++++---- 8 files changed, 61 insertions(+), 65 deletions(-) diff --git a/test/unit/bugs/3199-sanitization-escaping.jsx b/test/unit/bugs/3199-sanitization-escaping.jsx index 2840f9001a1..fd39f5b4cf4 100644 --- a/test/unit/bugs/3199-sanitization-escaping.jsx +++ b/test/unit/bugs/3199-sanitization-escaping.jsx @@ -16,6 +16,6 @@ describe("UI-3199: Sanitized Markdown causing code examples to be double escaped let el = render() expect(el.find("code").first().text()).toEqual("{\"abc\": \"def\"}\n") - expect(el.find("code").first().html()).toEqual("{"abc": "def"}\n") + expect(el.find("code").first().html()).toEqual("{\"abc\": \"def\"}\n") }) }) diff --git a/test/unit/components/json-schema-form.jsx b/test/unit/components/json-schema-form.jsx index e4c928d99d2..f8df3fb689b 100644 --- a/test/unit/components/json-schema-form.jsx +++ b/test/unit/components/json-schema-form.jsx @@ -31,11 +31,11 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("select").length).toEqual(1) - expect(wrapper.find("select option").length).toEqual(3) - expect(wrapper.find("select option").eq(0).text()).toEqual("--") - expect(wrapper.find("select option").eq(1).text()).toEqual("one") - expect(wrapper.find("select option").eq(2).text()).toEqual("two") + expect(wrapper.get(0).name).toEqual("select") + expect(wrapper.find("option").length).toEqual(3) + expect(wrapper.find("option").eq(0).text()).toEqual("--") + expect(wrapper.find("option").eq(1).text()).toEqual("one") + expect(wrapper.find("option").eq(2).text()).toEqual("two") }) it("should render a string enum as disabled when JsonSchemaForm is disabled", function(){ @@ -55,7 +55,7 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("select").attr("disabled")).toEqual("disabled") + expect(wrapper.attr("disabled")).toEqual("disabled") }) @@ -76,7 +76,7 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("select").length).toEqual(1) + expect(wrapper.get(0).name).toEqual("select") expect(wrapper.find("select option").length).toEqual(2) expect(wrapper.find("select option").eq(0).text()).toEqual("one") expect(wrapper.find("select option").eq(1).text()).toEqual("two") @@ -98,7 +98,7 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("select").length).toEqual(1) + expect(wrapper.get(0).name).toEqual("select") expect(wrapper.find("select option").length).toEqual(3) expect(wrapper.find("select option").eq(0).text()).toEqual("--") expect(wrapper.find("select option").eq(1).text()).toEqual("true") @@ -122,7 +122,7 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("select").length).toEqual(1) + expect(wrapper.get(0).name).toEqual("select") expect(wrapper.find("select option").length).toEqual(2) expect(wrapper.find("select option").eq(0).text()).toEqual("--") expect(wrapper.find("select option").eq(1).text()).toEqual("true") @@ -145,7 +145,7 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("select").length).toEqual(1) + expect(wrapper.get(0).name).toEqual("select") expect(wrapper.find("select option").length).toEqual(3) expect(wrapper.find("select option").eq(0).text()).toEqual("--") expect(wrapper.find("select option").eq(1).text()).toEqual("true") @@ -170,7 +170,7 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("select").length).toEqual(1) + expect(wrapper.get(0).name).toEqual("select") expect(wrapper.find("select option").length).toEqual(1) expect(wrapper.find("select option").eq(0).text()).toEqual("true") expect(wrapper.find("select option:checked").first().text()).toEqual("true") @@ -225,7 +225,8 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("input").length).toEqual(1) + expect(wrapper.length).toEqual(1) + expect(wrapper.get(0).name).toEqual("input") // expect(wrapper.find("select input").length).toEqual(1) // expect(wrapper.find("select option").first().text()).toEqual("true") }) @@ -247,7 +248,8 @@ describe("", function(){ let wrapper = render() - expect(wrapper.find("input").length).toEqual(1) + expect(wrapper.length).toEqual(1) + expect(wrapper.get(0).name).toEqual("input") // expect(wrapper.find("select input").length).toEqual(1) // expect(wrapper.find("select option").first().text()).toEqual("true") }) diff --git a/test/unit/components/markdown.jsx b/test/unit/components/markdown.jsx index 521f03d2348..536ce49bae6 100644 --- a/test/unit/components/markdown.jsx +++ b/test/unit/components/markdown.jsx @@ -9,38 +9,38 @@ describe("Markdown component", function () { const getConfigs = () => ({ useUnsafeMarkdown: true }) const str = `ONE` const el = render() - expect(el.html()).toEqual(`

ONE

\n
`) + 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.html()).toEqual(`

ONE

\n
`) + expect(el.prop("outerHTML")).toEqual(`

ONE

\n
`) }) it("allows td elements with colspan attrib", function () { const str = `
ABC
` const el = render() - expect(el.html()).toEqual(`
ABC
`) + 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.html()).toEqual(`

Image alt text

\n
`) + 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.html()).toEqual(`

Image alt text

\n
`) + expect(el.prop("outerHTML")).toEqual(`

Image alt text

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

` + str + `

\n
`) + expect(el.prop("outerHTML")).toEqual(`

` + str + `

\n
`) }) it("allows heading elements", function () { @@ -52,13 +52,13 @@ describe("Markdown component", function () { ##### h5 ###### h6` const el = render() - expect(el.html()).toEqual(`

h1

\n

h2

\n

h3

\n

h4

\n
h5
\n
h6
\n
`) + 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.html()).toEqual(``) + expect(el.prop("outerHTML")).toEqual(``) }) }) @@ -67,32 +67,32 @@ describe("Markdown component", function () { const getConfigs = () => ({ useUnsafeMarkdown: true }) const str = `ONE` const el = render() - expect(el.html()).toEqual(`

ONE

`) + 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.html()).toEqual(`

ONE

`) + 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.html()).toEqual(`

Image alt text

`) + 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.html()).toEqual(`

Image alt text

`) + expect(el.prop("outerHTML")).toEqual(`

Image alt text

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

` + str + `

`) + expect(el.prop("outerHTML")).toEqual(`

` + str + `

`) }) it("allows heading elements", function () { @@ -104,7 +104,7 @@ describe("Markdown component", function () { ##### h5 ###### h6` const el = render() - expect(el.html()).toEqual(`

h1

\n

h2

\n

h3

\n

h4

\n
h5
\n
h6
`) + expect(el.prop("outerHTML")).toEqual(`

h1

\n

h2

\n

h3

\n

h4

\n
h5
\n
h6
`) }) }) }) diff --git a/test/unit/components/operation-tag.jsx b/test/unit/components/operation-tag.jsx index abe8636867c..af3850c36f5 100644 --- a/test/unit/components/operation-tag.jsx +++ b/test/unit/components/operation-tag.jsx @@ -44,7 +44,7 @@ describe("", function(){ const opblockTag = wrapper.find(".opblock-tag") expect(opblockTag.length).toEqual(1) - expect(opblockTag.getNode().type).toEqual("h3") + expect(opblockTag.getElement().type).toEqual("h3") const renderedLink = wrapper.find("Link") expect(renderedLink.length).toEqual(1) diff --git a/test/unit/core/system/wrapComponent.jsx b/test/unit/core/system/wrapComponent.jsx index 594167cec4c..3972527e29e 100644 --- a/test/unit/core/system/wrapComponent.jsx +++ b/test/unit/core/system/wrapComponent.jsx @@ -31,10 +31,9 @@ describe("wrapComponents", () => { let Component = system.getSystem().getComponents("wow") const wrapper = render() - const container = wrapper.children().first() - expect(container[0].name).toEqual("container") + expect(wrapper.get(0).name).toEqual("container") - const children = container.children() + const children = wrapper.children() expect(children.length).toEqual(2) expect(children.eq(0).text()).toEqual("Normal component") expect(children.eq(1).text()).toEqual("Wrapped component") @@ -76,10 +75,9 @@ describe("wrapComponents", () => { let Component = system.getSystem().getComponents("wow") const wrapper = render() - const container = wrapper.children().first() - expect(container[0].name).toEqual("container") + expect(wrapper.get(0).name).toEqual("container") - const children = container.children() + const children = wrapper.children() expect(children.length).toEqual(2) expect(children.eq(0).text()).toEqual("Normal component") expect(children.eq(1).text()).toEqual("Wrapped component") @@ -128,10 +126,9 @@ describe("wrapComponents", () => { let Component = mySystem.getSystem().getComponents("wow") const wrapper = render() - const container = wrapper.children().first() - expect(container[0].name).toEqual("container") + expect(wrapper.get(0).name).toEqual("container") - const children = container.children() + const children = wrapper.children() expect(children.length).toEqual(2) expect(children.eq(0).text()).toEqual("Original component") expect(children.eq(1).text()).toEqual("WOW much data") @@ -182,10 +179,9 @@ describe("wrapComponents", () => { let Component = mySystem.getSystem().getComponents("wow") const wrapper = render() - const container = wrapper.children().first() - expect(container[0].name).toEqual("container") + expect(wrapper.get(0).name).toEqual("container") - const children = container.children() + const children = wrapper.children() expect(children.length).toEqual(2) expect(children.eq(0).text()).toEqual("Original component") expect(children.eq(1).text()).toEqual("WOW much data") @@ -241,10 +237,9 @@ describe("wrapComponents", () => { let Component = mySystem.getSystem().getComponents("wow") const wrapper = render() - const container2 = wrapper.children().first() - expect(container2[0].name).toEqual("container2") + expect(wrapper.get(0).name).toEqual("container2") - const children2 = container2.children() + const children2 = wrapper.children() expect(children2.length).toEqual(2) expect(children2[0].name).toEqual("div") expect(children2.eq(0).text()).toEqual("Injected before") @@ -302,10 +297,9 @@ describe("wrapComponents", () => { let Component = secondSystem.getSystem().getComponents("wow") const wrapper = render() - const container = wrapper.children().first() - expect(container[0].name).toEqual("container") + expect(wrapper.get(0).name).toEqual("container") - const children = container.children() + const children = wrapper.children() expect(children.length).toEqual(2) expect(children.eq(0).text()).toEqual("Original component") expect(children.eq(1).text()).toEqual("WOW much data") diff --git a/test/unit/setup.js b/test/unit/setup.js index 171537b18eb..db6e23bce62 100644 --- a/test/unit/setup.js +++ b/test/unit/setup.js @@ -1,8 +1,10 @@ -import win from "../../src/core/window" -// import { configure } from "enzyme" // enzyme@3 -// import Adapter from "enzyme-adapter-react-15" // enzyme@3 import { JSDOM } from "jsdom" +import Enzyme from "enzyme" +import Adapter from "@wojtekmaj/enzyme-adapter-react-17" + +import win from "../../src/core/window" +Enzyme.configure({ adapter: new Adapter() }) function copyProps(src, target) { const props = Object.getOwnPropertyNames(src) diff --git a/test/unit/xss/anchor-target-rel/link.jsx b/test/unit/xss/anchor-target-rel/link.jsx index 8f8a75181ab..6bd95a6a0f5 100644 --- a/test/unit/xss/anchor-target-rel/link.jsx +++ b/test/unit/xss/anchor-target-rel/link.jsx @@ -17,11 +17,10 @@ describe(" Anchor Target Safety", function () { href: "http://google.com/" } let wrapper = render() - const anchor = wrapper.find("a") - expect(anchor.attr("href")).toEqual("http://google.com/") - expect(anchor.attr("rel") || "").toMatch("noopener") - expect(anchor.attr("rel") || "").toMatch("noreferrer") + expect(wrapper.attr("href")).toEqual("http://google.com/") + expect(wrapper.attr("rel") || "").toMatch("noopener") + expect(wrapper.attr("rel") || "").toMatch("noreferrer") }) it("enforces `noreferrer` and `noopener` on target=_blank links", function () { @@ -31,11 +30,10 @@ describe(" Anchor Target Safety", function () { target: "_blank" } let wrapper = render() - const anchor = wrapper.find("a") - expect(anchor.attr("href")).toEqual("http://google.com/") - expect(anchor.attr("target")).toEqual("_blank") - expect(anchor.attr("rel") || "").toMatch("noopener") - expect(anchor.attr("rel") || "").toMatch("noreferrer") + expect(wrapper.attr("href")).toEqual("http://google.com/") + expect(wrapper.attr("target")).toEqual("_blank") + expect(wrapper.attr("rel") || "").toMatch("noopener") + expect(wrapper.attr("rel") || "").toMatch("noreferrer") }) }) diff --git a/test/unit/xss/markdown-script-sanitization.jsx b/test/unit/xss/markdown-script-sanitization.jsx index 3218dc3224e..c2c4e257041 100644 --- a/test/unit/xss/markdown-script-sanitization.jsx +++ b/test/unit/xss/markdown-script-sanitization.jsx @@ -8,19 +8,19 @@ describe("Markdown Script Sanitization", function() { it("sanitizes ` const el = render() - expect(el.html()).toEqual(`

script

\n
`) + expect(el.prop("outerHTML")).toEqual(`

script

\n
`) }) it("sanitizes elements", function() { const str = `` const el = render() - expect(el.html()).toEqual(`

\n
`) + expect(el.prop("outerHTML")).toEqual(`

\n
`) }) it("sanitizes
elements", function() { const str = `""` const el = render() - expect(el.html()).toEqual(`

"

"

\n
`) + expect(el.prop("outerHTML")).toEqual(`

"

"

\n
`) }) }) @@ -28,19 +28,19 @@ describe("Markdown Script Sanitization", function() { it("sanitizes ` const el = render() - expect(el.html()).toEqual(`

script

`) + expect(el.prop("outerHTML")).toEqual(`

script

`) }) it("sanitizes elements", function() { const str = `` const el = render() - expect(el.html()).toEqual(`

`) + expect(el.prop("outerHTML")).toEqual(`

`) }) it("sanitizes elements", function () { const str = `""` const el = render() - expect(el.html()).toEqual(`

"

"

`) + expect(el.prop("outerHTML")).toEqual(`

"

"

`) }) }) })