UNPKG

1.51 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.expectPortal = exports.createPortal = void 0;
5
6var _css = _interopRequireDefault(require("css"));
7
8function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
10var createPortal = function createPortal() {
11 // make sure to remove all body children
12 document.body.innerHTML = '';
13 document.body.appendChild(document.createElement('div'));
14};
15
16exports.createPortal = createPortal;
17
18var expectPortal = function expectPortal(portalId) {
19 return {
20 toMatchSnapshot: function toMatchSnapshot() {
21 var node = document.getElementById(portalId);
22
23 if (node) {
24 var styles = _css.default.parse(document.getElementsByTagName('style')[0].innerHTML);
25
26 styles.stylesheet.rules = styles.stylesheet.rules.filter(function (rule) {
27 // skip everything that is not media or rule
28 if (['media', 'rule'].indexOf(rule.type) < 0) {
29 return false;
30 }
31
32 if (!rule.selectors) {
33 return true;
34 }
35
36 var selector = rule.selectors.join('');
37 return Array.from(node.classList).some(function (className) {
38 return selector.indexOf(className) >= 0;
39 });
40 });
41 expect(document.getElementById(portalId)).toMatchSnapshot();
42 expect(_css.default.stringify(styles)).toMatchSnapshot();
43 } else {
44 fail(portalId + " portal does not exist");
45 }
46 }
47 };
48};
49
50exports.expectPortal = expectPortal;
\No newline at end of file