UNPKG

@schukai/monster

Version:

Monster is a simple library for creating fast, robust and lightweight websites.

83 lines (56 loc) 2.06 kB
import {getGlobal} from "../../../../source/types/global.mjs"; import * as chai from 'chai'; import {chaiDom} from "../../../util/chai-dom.mjs"; import {initJSDOM} from "../../../util/jsdom.mjs"; let expect = chai.expect; chai.use(chaiDom); const global = getGlobal(); // language=html let html1 = ` <monster-panel id="my-panel"> </monster-panel> `; let SplitScreen; describe('SplitScreen', function () { before(function (done) { initJSDOM().then(() => { import("element-internals-polyfill").catch(e => done(e)); let promises = [] if (!global['crypto']) { promises.push(import("@peculiar/webcrypto").then((m) => { const Crypto = m['Crypto']; global['crypto'] = new Crypto(); })); } promises.push(import("../../../../source/components/layout/panel.mjs").then((m) => { SplitScreen = m['Panel']; })) Promise.all(promises).then(()=>{ done(); }).catch(e => done(e)) }); }) describe('document.createElement()', function () { afterEach(() => { let mocks = document.getElementById('mocks'); mocks.innerHTML = ""; }) it('should have buttons and SplitScreen', function (done) { let mocks = document.getElementById('mocks'); mocks.innerHTML = html1; setTimeout(() => { try { const SplitScreen = document.getElementById('my-panel') expect(SplitScreen).is.instanceof(HTMLElement); setTimeout(() => { let div = SplitScreen.shadowRoot.querySelector('div'); expect(div.hasChildNodes()).to.be.true; done(); }, 100) } catch (e) { return done(e); } }, 0) }); }); });