Skip to content

qlik-oss/after-work.js

Repository files navigation

after-work.js

CircleCI Renovate enabled Coverage Status

after-work.js is an unified test framework highly configurable through cli and configuration files allowing tests to be executed in the desired context.

Deprecated

after-work.js is deprecated. Here are some alternatives:

Requirements

Default runner

  • node: Node.js >= 12.x

Context dependent

  • cdp (Chrome Debugging Protocol): Chrome > 61
  • protractor (webdriver protocol): protractor 5.x + browser(s)
  • puppeteer (High-level Headless Chrome Node API - experimental): puppeteer

Introduction

after-work.js aims to be a tool that facilitates the testing while development or restructuring code. Designed for test and provide fast feedback on changed code and added testcases.

To configure after-work.js you need to start with an analyse of the code.

  • What context should it be executed in (Node.js, browser)
  • What type of tests should be executed (unit, component, integration, e2e)
  • Does the code have any dependencies to build or run (babel...)

Get started

Installation

Install the module using npm:

npm install --save-dev @after-work.js/aw

CLI entrypoint

after-work.js is CLI and consists of a command together with appropriate options Help is always available with the --help, -h option

npx aw -h
npx aw chrome -h
npx aw protractor -h
npx aw serve -h
npx aw puppeteer -h
Command Description Alias Default Experimental
node Run tests in node. x
cdp Run tests in Chrome (chrome devtools protocol). chrome
protractor Run tests with Protractor. ptor
serve Serve files.
puppeteer Run tests with Puppeteer. puppet x

All commands support passing a config file for all options.

npx aw -c ./path/to/aw.config.js

However, passing an option from command line will override the config file option.

npx aw -c ./path/to/aw.config.js --glob /path/that/overrides/glob/in/config/file

This enables easy debugging setup from modern editors for example Visual Studio Code

This will only run the current active file. And you don't have to worry about your tests timing out since after-work.js will automatically detect running a debugger and set the appropriate options accordingly.

Included Tools

The following tools are bundled into after-work.js:

  • Mocha: an extensible testing framework for TDD or BDD.
  • Chai: an assertion library used together with a JavaScript testing framework.
  • Sinon: a framework for standalone test spies, stubs and mocks for JavaScript.
  • Nyc: the Istanbul command line interface

Contributing

Please follow the instructions in CONTRIBUTING.md.

Publish to npm

  1. npx lerna version --exact --no-push --no-git-tag-version --force-publish
  2. Update all @after-work.js/* dependencies in the root package.json to match the new version
  3. git commit -m "chore(release): publish vX.Y.Z"
  4. git tag -a vX.Y.Z -m "vX.Y.Z"
  5. npx lerna publish from-git
  6. git push --follow-tags