0.1.4 • Published 5 years ago

@pigs/plugin-puppet v0.1.4

Weekly downloads
1
License
-
Repository
-
Last release
5 years ago

@pigs/plugin-puppet status beta

Easy automatic (headless) browser testing, powered by Puppeteer.

Install

yarn add @pigs/plugin-puppet --dev

Require Pigs 12.0.2 and above.

How to use

Add this plugin in pigs.config.js:

module.exports = {
  plugins: [
    {
      resolve: '@pigs/plugin-puppet'
    }
  ]
}

Now you can bundle your code and run it in browser:

// cowsay.js
import * as cowsay from 'cowsay'

// You can use window.*, since this will be run in Chromium
const text = window.atob('SSBydW4gaW4gYSBicm93c2Vy')

// Everything logged here will be piped to your host terminal
console.log(cowsay.say({ text }))

// Explicitly terminate the script when you are done
puppet.exit()

This command will injectpuppet command to the Pigs CLI, you need to use this command in --test mode:

❯ pigs puppet --test cowsay.js
 ____________________
< I run in a browser >
 --------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
✔ All tests have passed!

Testing Frameworks

This plugin also works with some popular testing frameworks like Mocha and Tape, check out the CLI usages.

CLI Usages

pigs puppet --test [...files]

[...files]

  • Type: string[]
  • Default: **/*.test.{js,ts}

One or more glob patterns for matching test files. node_modules is always excluded.

--no-headless

Don't run Chromium in headless mode.

--framework <framework>

  • Type: string
  • Values: mocha tape

Use a testing framework.

For Mocha: you don't need addtional dependencies, window.mocha is available in your code. Here's the code example. For Tape: you need to install tape in your project since you need to import it in your code. Here's the code example.

--ui <ui>

  • Type: string
  • Values: bdd tdd qunit
  • Default: bdd

Set user-interface for mocha.

Caveats

This is just for unit testing (maybe for now).

Credits

This plugin is inspired by puppet-run which is built upon Parcel bundler.