Socket
Socket
Sign inDemoInstall

ava-ts

Package Overview
Dependencies
447
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ava-ts

Fork of the AVA test runner with native typescript support 🚀


Version published
Weekly downloads
1K
increased by3.48%
Maintainers
1
Install size
1.20 MB
Created
Weekly downloads
 

Readme

Source

AVA-TS

Build Status NPM Version

Bringing zero-config TypeScript support to the AVA test runner. Configures AVA to use ts-node and matches .ts test files by default.

🚀 Zero-configuration setup
⏊ Parallel test execution
🖼 Snapshot testing
📈 All your favorite reporters

Works with AVA v1.0+. Still on AVA v0.25? Check out ava-ts v0.25.

Installation

npm install --save-dev ava-ts ava ts-node

# Using yarn:
yarn add --dev ava-ts ava ts-node

Usage

Write your tests in TypeScript as you would usually do and import from ava, not from ava-ts, just as you would always do.

// test.ts

import test from 'ava'

test('one plus two equals three', t => {
  t.is(1 + 2, 3)
})

Instead of running ava, just run the ava-ts CLI tool instead. That's it!

It will use all the same options and defaults you know from AVA, but searches for *.ts files instead of *.js.

$ ava-ts --help

Fork of the AVA test runner with native typescript support 🚀

Usage
  ava-ts [<file|directory|glob> ...]

Options
  --init                  Add AVA to your project
  --fail-fast             Stop after first test failure
  --serial, -s            Run tests serially
  --tap, -t               Generate TAP output
  --verbose, -v           Enable verbose output
  --color                 Force color output
  --no-color              Disable color output
  --match, -m             Only run tests with matching title (Can be repeated)
  --watch, -w             Re-run tests when tests and source files change
  --timeout, -T           Set global timeout
  --concurrency, -c       Max number of test files running at the same time (Default: CPU cores)
  --update-snapshots, -u  Update snapshots

Examples
  ava-ts
  ava-ts test.ts test2.ts
  ava-ts test-*.ts
  ava-ts test

Default patterns when no arguments:
  test.ts test.tsx test-*.ts test-*.tsx test/**/*.ts test/**/*.tsx **/__tests__/**/*.ts **/__tests__/**/*.tsx **/*.test.ts **/*.test.tsx

Documentation

See AVA's official docs for detailed information.

test.before() registers a hook to be run before the first test in your test file. Similarly test.after() registers a hook to be run after the last test. Use test.after.always() to register a hook that will always run once your tests and other hooks complete. .always() hooks run regardless of whether there were earlier failures or if all tests were skipped, so they are ideal for cleanup tasks. There are two exceptions to this however. If you use --fail-fast AVA will stop testing as soon as a failure occurs, and it won't run any hooks including the .always() hooks. Uncaught exceptions will crash your tests, possibly preventing .always() hooks from running. If a test is skipped with the .skip modifier, the respective .beforeEach() and .afterEach() hooks are not run. Likewise, if all tests in a test file are skipped .before() and .after() hooks for the file are not run. Hooks modified with .always() will always run, even if all tests are skipped.

Configuration

The following AVA configuration is transparently set to consume TypeScript files:

{
  "compileEnhancements": false,
  "extensions": [
    "ts", "tsx"
  ],
  "require": [
    "ts-node/register"
  ]
}

Frequently Asked Questions

How to use AVA-TS when the module compiler option is set to ES6 modules?

Especially when working with bundlers like webpack you will encounter this issue. Fortunately, there is a simple fix to make TypeScript emit node-style modules when running AVA-TS:

TS_NODE_COMPILER_OPTIONS='{"module":"commonjs"}' ava-ts

If you feel this use case needs to be improved, complain in #5 😉

License

MIT. The fork as well as the original. AVA is a project of always awesome Sindre Sorhus.

FAQs

Last updated on 23 Feb 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc