import { expect, fixture } from '@open-wc/testing'; import { isVisible } from '../../src/utils/is-visible.js'; describe('isVisible()', () => { it('returns true for static block elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture(`
`) ); expect(isVisible(element)).to.equal(true); }); it('returns false for hidden static block elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture(``) ); expect(isVisible(element)).to.equal(false); }); it('returns true for relative block elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture( `
`, ) ); expect(isVisible(element)).to.equal(true); }); it('returns false for hidden relative block elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture( ``, ) ); expect(isVisible(element)).to.equal(false); }); it('returns true for absolute block elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture(`
`) ); expect(isVisible(element)).to.equal(true); }); it('returns false for hidden absolute block elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture(` `) ); expect(isVisible(element)).to.equal(false); }); it('returns true for relative block elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture(`
`) ); expect(isVisible(element)).to.equal(true); }); it('returns true for relative block elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture(` `) ); expect(isVisible(element)).to.equal(false); }); it('returns true for inline elements', async () => { const element = /** @type {HTMLElement} */ (await fixture(`Inline content`)); expect(isVisible(element)).to.equal(true); }); it('returns true for inline elements without content', async () => { const element = /** @type {HTMLElement} */ (await fixture(``)); expect(isVisible(element)).to.equal(true); }); it('returns true for static block elements with 0 dimensions', async () => { const element = /** @type {HTMLElement} */ ( await fixture(`
`) ); expect(isVisible(element)).to.equal(true); }); it('returns false for hidden inline elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture(``) ); expect(isVisible(element)).to.equal(false); }); it('returns false invisible elements', async () => { const element = /** @type {HTMLElement} */ ( await fixture(`
`) ); expect(isVisible(element)).to.equal(false); }); it('returns false when hidden by parent', async () => { const element = /** @type {HTMLElement} */ ( await fixture(` `) ); const target = /** @type {HTMLElement} */ (element.querySelector('#target')); expect(isVisible(target)).to.equal(false); }); it('returns false when invisible by parent', async () => { const element = /** @type {HTMLElement} */ ( await fixture(`
`) ); const target = /** @type {HTMLElement} */ (element.querySelector('#target')); expect(isVisible(target)).to.equal(false); }); it('returns true when display contents', async () => { const element = /** @type {HTMLElement} */ ( await fixture(`
`) ); expect(isVisible(element)).to.equal(true); }); });