Necessary Package Manager

    ava-webcomponents

    0.1.3 • Public • Published

    ava-webcomponents

    Utility middleware for testing web components in AVA via Puppeteer.

    Travis   npm   License MIT   code style: prettier

    npm: npm install ava-webcomponents
    yarn: yarn add ava-webcomponents

    Getting Started

    Create a file that renders content to the screen – such as a web component:

    class Hello extends HTMLElement {
        connectedCallback() {
            this.innerHTML = 'Hello AVA!';
        }
    }
     
    customElements.define('x-ava', Hello);

    Use ava-webcomponents to import the file in your AVA test, which then gives you access to the Puppeteer page variable, as well as a util function for awaiting upgrade of a defined web component.

    All imports in your web component file will be resolved relative to the nearest package.json file, which uses a simple Express server instance to import your files.

    import test from 'ava';
    import withComponent from 'ava-webcomponents';
     
    test(
        'It should render "Hello AVA!";',
        withComponent(`${__dirname}/helpers/example.js`),
        async (t, { page, utils }) => {
            await utils.waitForUpgrade('x-ava');
     
            const content = await page.evaluate(() => {
                const node = document.createElement('x-ava');
                document.body.append(node);
                return node.innerHTML;
            });
     
            t.is(content, 'Hello AVA!');
        }
    );

    With the second argument of the withComponent function you can pass options for puppeteer.launch. However there's also a shortcut for debugging Puppeteer by using withComponent.debug which slows down the tests, opens the devtools, and prevents Chromium from being headless.

    Keywords

    none

    Install

    npm i ava-webcomponents

    DownloadsWeekly Downloads

    6

    Version

    0.1.3

    License

    MIT

    Unpacked Size

    202 kB

    Total Files

    13

    Last publish

    Collaborators

    • wildhoney