You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
967 B
30 lines
967 B
2 years ago
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.toContainHTML = toContainHTML;
|
||
|
|
||
|
var _utils = require("./utils");
|
||
|
|
||
|
function getNormalizedHtml(container, htmlText) {
|
||
|
const div = container.ownerDocument.createElement('div');
|
||
|
div.innerHTML = htmlText;
|
||
|
return div.innerHTML;
|
||
|
}
|
||
|
|
||
|
function toContainHTML(container, htmlText) {
|
||
|
(0, _utils.checkHtmlElement)(container, toContainHTML, this);
|
||
|
|
||
|
if (typeof htmlText !== 'string') {
|
||
|
throw new Error(`.toContainHTML() expects a string value, got ${htmlText}`);
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
pass: container.outerHTML.includes(getNormalizedHtml(container, htmlText)),
|
||
|
message: () => {
|
||
|
return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toContainHTML`, 'element', ''), 'Expected:', // eslint-disable-next-line @babel/new-cap
|
||
|
` ${this.utils.EXPECTED_COLOR(htmlText)}`, 'Received:', ` ${this.utils.printReceived(container.cloneNode(true))}`].join('\n');
|
||
|
}
|
||
|
};
|
||
|
}
|