Skip to content
Snippets Groups Projects
Select Git revision
  • 5b9aa060ef465c17afbd2a505ae28dd6b2daf221
  • master default protected
  • v0.4.7
  • v0.4.6
  • v0.4.5
  • v0.4.4
  • v0.4.3
  • v0.4.2
  • v0.4.1
  • v0.4.0
  • v0.3.0
  • v0.2.1
  • v0.2.0
13 results

directories-standard.mk

Blame
  • link.mjs 2.46 KiB
    'use strict';
    
    import chai from "chai"
    import {Link} from "../../../../source/dom/resource/link.mjs";
    import {DataUrl} from "../../../../source/types/dataurl.mjs";
    import {ID} from "../../../../source/types/id.mjs";
    import {chaiDom} from "../../../util/chai-dom.mjs";
    import {cleanupDOMFromTesting, initMutationObserverForTesting} from "../../../util/cleanupdom.mjs";
    import {initJSDOM} from "../../../util/jsdom.mjs";
    
    let expect = chai.expect;
    
    chai.use(chaiDom);
    
    
    
    describe('Link', function () {
    
        before(function (done) {
            initJSDOM().then(() => {
                done()
            });
        });
    
        beforeEach(() => {
            initMutationObserverForTesting()
        })
    
        afterEach(() => {
            cleanupDOMFromTesting();
        })
    
        describe('Link()', function () {
            this.timeout(5000);
    
            it('connect().available()', function (done) {
    
                const link = new Link({
                    href: new DataUrl('', 'text/css').toString(),
                    rel: 'stylesheet'
                });
    
                link.connect().available().then(() => {
                    done()
                }).catch(e => done(e));
    
            })
        });
    
        describe('External Link', () => {
            this.timeout(5000);
    
            let id = new ID('link').toString();
            let link, url = 'https://alvine.io/main.min.css';
    
            beforeEach(() => {
    
                link = new Link({
                    href: url,
                    id: id,
                    rel: 'stylesheet'
                });
    
            });
    
            it('append and remove Link ', (done) => {
    
                expect(link.isConnected()).to.be.false;
    
                link.connect().available().then(() => {
                    expect(link.isConnected()).to.be.true;
                    expect(document.querySelector('[href="' + url + '"]')).to.exist;
    
                    document.getElementById(id).remove();
                    expect(link.isConnected()).to.be.false;
                    expect(document.querySelector('[href="' + url + '"]')).not.to.exist;
    
                    link.connect().available().then(() => {
                        expect(link.isConnected()).to.be.true;
                        expect(document.querySelector('[href="' + url + '"]')).to.exist;
    
                        document.getElementById(id).remove();
                        expect(document.querySelector('[href="' + url + '"]')).not.to.exist;
                        expect(link.isConnected()).to.be.false;
    
                        done()
                    }).catch(e => done(e));
    
    
                }).catch(e => done(e));
    
    
            });
    
    
        });
    
    
    });