54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
/* eslint-env jest */
|
|
|
|
import parseDOM from "./parse-dom";
|
|
|
|
describe("parseDOM", () => {
|
|
let realDOMParser, result;
|
|
|
|
beforeEach(() => {
|
|
realDOMParser = global.DOMParser;
|
|
});
|
|
|
|
afterEach(() => {
|
|
global.DOMParser = realDOMParser;
|
|
});
|
|
|
|
describe("DOMParser available", () => {
|
|
let parseFromString;
|
|
|
|
beforeEach(() => {
|
|
parseFromString = jest.fn().mockReturnValue("%document%");
|
|
global.DOMParser = jest.fn(() => ({ parseFromString }));
|
|
|
|
result = parseDOM('<div id="test"></div>');
|
|
});
|
|
|
|
it("creates a new DOMParser", () => {
|
|
expect(global.DOMParser).toHaveBeenCalled();
|
|
});
|
|
|
|
it("calls parseFromString with the passed-in string", () => {
|
|
expect(parseFromString).toHaveBeenCalledWith(
|
|
'<div id="test"></div>',
|
|
"text/html"
|
|
);
|
|
});
|
|
|
|
it("returns the value returned by parseFromString", () => {
|
|
expect(result).toBe("%document%");
|
|
});
|
|
});
|
|
|
|
describe("No DOMParser available", () => {
|
|
beforeEach(() => {
|
|
global.DOMParser = undefined;
|
|
|
|
result = parseDOM('<div id="test"></div>');
|
|
});
|
|
|
|
it("retuns null", () => {
|
|
expect(result).toBeNull();
|
|
});
|
|
});
|
|
});
|