Skip to content

Commit be337c3

Browse files
Clean up test
1 parent 4f9c67b commit be337c3

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,44 @@
11
import React from "react";
2-
import { render } from "@testing-library/react";
2+
import {render, RenderResult} from "@testing-library/react";
33

44
import "@testing-library/jest-dom";
55

66
import { Markdown, TextReducer } from "./../../";
77
import { Default as TextReducerStory } from "./TextReducer.stories";
88

99
describe("TextReducer", () => {
10+
const textMustExist = (queryByText: RenderResult["queryByText"], text: string) => {
11+
expect(queryByText(text, { exact: false })).not.toBeNull();
12+
}
13+
const textMustNotExist = (queryByText: RenderResult["queryByText"], text: string) => {
14+
expect(queryByText(text, { exact: false })).toBeNull();
15+
}
1016
it("should display encoded HTML entities by default if they are used in the transformed markup", () => {
1117
const { queryByText } = render(<TextReducer {...TextReducerStory.args} />);
12-
expect(queryByText("&#x27;entities&#x27; &amp; &quot;quotes&quot;", { exact: false })).not.toBeNull();
13-
expect(queryByText(`'entities' & "quotes"`, { exact: false })).toBeNull();
18+
textMustExist(queryByText, "&#x27;entities&#x27; &amp; &quot;quotes&quot;");
19+
textMustNotExist(queryByText, `'entities' & "quotes"`);
1420
});
1521
it("should not display encoded HTML entities if `decodeHtmlEntities` is enabled", () => {
1622
const { queryByText } = render(<TextReducer {...TextReducerStory.args} decodeHtmlEntities />);
17-
expect(queryByText("&#x27;entities&#x27; &amp; &quot;quotes&quot;", { exact: false })).toBeNull();
18-
expect(queryByText(`'entities' & "quotes"`, { exact: false })).not.toBeNull();
23+
textMustNotExist(queryByText, "&#x27;entities&#x27; &amp; &quot;quotes&quot;");
24+
textMustExist(queryByText, `'entities' & "quotes"`);
1925
});
2026
it("should only decode if correct encoded HTML entities are found (strict mode)", () => {
2127
const { queryByText } = render(
2228
<TextReducer decodeHtmlEntities>
2329
<Markdown>&</Markdown>&amp foo&ampbar
2430
</TextReducer>
2531
);
26-
expect(queryByText("& &amp foo&ampbar", { exact: false })).not.toBeNull();
27-
expect(queryByText("& & foo&ampbar", { exact: false })).toBeNull();
32+
textMustExist(queryByText, "& &amp foo&ampbar");
33+
textMustNotExist(queryByText, "& & foo&ampbar");
2834
});
2935
it("should allow decoding non-strict encoded HTML entities", () => {
3036
const { queryByText } = render(
3137
<TextReducer decodeHtmlEntities decodeHtmlEntitiesOptions={{ strict: false }}>
3238
<Markdown>&</Markdown>&amp foo&ampbar
3339
</TextReducer>
3440
);
35-
expect(queryByText("& &amp foo&ampbar", { exact: false })).toBeNull();
36-
expect(queryByText("& & foo&ampbar", { exact: false })).not.toBeNull();
41+
textMustNotExist(queryByText, "& &amp foo&ampbar");
42+
textMustExist(queryByText, "& & foo&ampbar");
3743
});
3844
});

0 commit comments

Comments
 (0)