@patternfly/elements
Version:
PatternFly Elements
44 lines • 2.53 kB
JavaScript
import { html, expect, oneEvent, nextFrame } from '@open-wc/testing';
import { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';
import { PfAvatar, PfAvatarLoadEvent } from '@patternfly/elements/pf-avatar/pf-avatar.js';
describe('<pf-avatar>', function () {
it('imperatively instantiates', function () {
expect(document.createElement('pf-avatar')).to.be.an.instanceof(PfAvatar);
});
it('should upgrade', async function () {
const el = await createFixture(html `<pf-avatar></pf-avatar>`);
expect(el, 'pf-badge should be an instance of PfAvatar')
.to.be.an.instanceOf(customElements.get('pf-avatar'))
.and
.to.be.an.instanceOf(PfAvatar);
});
describe('without src attr', function () {
let element;
beforeEach(async function () {
element = await createFixture(html `<pf-avatar></pf-avatar>`);
await nextFrame();
});
it('loads default avatar', function () {
const { offsetWidth } = element;
expect(offsetWidth).to.be.greaterThan(0);
});
});
describe('with a src attr', function () {
let element;
let loaded;
const datauri = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAB0UlEQVR4Xu3UAQ0AAAyDsM+/6QspcwAh2zXawGj64K8A8AgKoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7gALADeD4PUAB4AZw/B6gAHADOH4PUAC4ARy/BygA3ACO3wMUAG4Ax+8BCgA3gOP3AAWAG8Dxe4ACwA3g+D1AAeAGcPweoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7gALADeD4PUAB4AZw/B6gAHADOH4PUAC4ARy/BygA3ACO3wMUAG4Ax+8BCgA3gOP3AAWAG8Dxe4ACwA3g+D1AAeAGcPweoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7ADyAB6SPAIFm19U7AAAAAElFTkSuQmCC';
const onLoad = (e) => {
const paths = e.originalEvent.composedPath();
loaded = paths.find(x => x.localName === 'img')?.src;
};
beforeEach(async function () {
element = await createFixture(html `<pf-avatar @load="${onLoad}"></pf-avatar>`);
setTimeout(() => element.src = datauri);
await oneEvent(element, 'load');
});
it('loads the image', function () {
expect(loaded).to.equal(datauri);
});
});
});
//# sourceMappingURL=pf-avatar.spec.js.map