├── .gitignore ├── .testbabelrc ├── .travis.yml ├── bin └── babel-tape-runner ├── changelog.md ├── package.json ├── readme.md └── test.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.testbabelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | node_js: 4 | - "10" 5 | - "8" 6 | -------------------------------------------------------------------------------- /bin/babel-tape-runner: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('@babel/register') 4 | require('@babel/polyfill') 5 | var path = require('path') 6 | var glob = require('glob') 7 | 8 | process.argv.slice(2).forEach(function (arg) { 9 | glob(arg, function (er, files) { 10 | if (er) throw er 11 | 12 | files.forEach(function (file) { 13 | require(path.resolve(process.cwd(), file)) 14 | }) 15 | }) 16 | }) 17 | 18 | // vim: ft=javascript 19 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | 3.0.0 / 2018-09-12 2 | ================== 3 | 4 | * Remove support for Babel 6 5 | 6 | 2.0.1 / 2016-02-22 7 | ================== 8 | 9 | * Update readme for Babel 5 users 10 | 11 | 2.0.0 / 2015-12-11 12 | ================== 13 | 14 | * Remove support for Babel 5 15 | * Include babel-polyfill in tests 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "babel-tape-runner", 3 | "version": "3.0.0", 4 | "description": "Babel + Tape for running your ES Next tests", 5 | "bin": "./bin/babel-tape-runner", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/wavded/babel-tape-runner.git" 9 | }, 10 | "scripts": { 11 | "pretest": "cp .testbabelrc .babelrc", 12 | "test": "standard bin/babel-tape-runner test.js && node bin/babel-tape-runner test.js", 13 | "posttest": "rm .babelrc" 14 | }, 15 | "keywords": [ 16 | "babel", 17 | "tape", 18 | "tests", 19 | "testing", 20 | "harmony", 21 | "es6", 22 | "esnext" 23 | ], 24 | "author": "Marc Harter ", 25 | "license": "MIT", 26 | "bugs": { 27 | "url": "https://github.com/wavded/babel-tape-runner/issues" 28 | }, 29 | "homepage": "https://github.com/wavded/babel-tape-runner", 30 | "dependencies": { 31 | "@babel/core": "^7.0.0", 32 | "@babel/polyfill": "^7.0.0", 33 | "@babel/register": "^7.0.0", 34 | "glob": "^6.0.1" 35 | }, 36 | "devDependencies": { 37 | "@babel/preset-env": "^7.0.0", 38 | "standard": "^12.0.1", 39 | "tape": "^4.0.2" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | [![build status](https://img.shields.io/travis/wavded/babel-tape-runner.svg?style=flat-square)](https://travis-ci.org/wavded/babel-tape-runner) [![npm package](https://img.shields.io/npm/v/babel-tape-runner.svg?style=flat-square)](https://www.npmjs.org/package/babel-tape-runner) [![dependency status](https://img.shields.io/david/wavded/babel-tape-runner.svg?style=flat-square)](https://david-dm.org/wavded/babel-tape-runner) 2 | 3 | ``` 4 | Using Babel 7: Use ^3.0.0 5 | Using Babel 6: Use ^2.0.0 6 | Using Babel 5: Use ^1.0.0 7 | ``` 8 | 9 | A test runner for tape that utilizes babel in order to run test suites that include ESNext/Harmony features. 10 | 11 | ## install 12 | 13 | Install globally or locally (for npm scripts): 14 | 15 | ```sh 16 | npm install babel-tape-runner [-g] 17 | ``` 18 | 19 | ## usage 20 | 21 | Just run `babel-tape-runner` with the files to test (just like tape's bundled runner). Store configuration in a `.babelrc` file. 22 | 23 | ```sh 24 | babel-tape-runner my-es-next-test.js 25 | 26 | babel-tape-runner lib/**/__tests__/*-test.js # or glob patterns 27 | ``` 28 | 29 | For example, use this in your `package.json` file so you can run `npm test` to execute your tests: 30 | ```json 31 | { 32 | "scripts": { 33 | "test": "babel-tape-runner \"lib/**/__tests__/*-test.js\" | faucet" 34 | }, 35 | "" 36 | } 37 | ``` 38 | 39 | ## licence 40 | 41 | MIT 42 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | import { readFileSync } from 'fs' 2 | import test from 'tape' 3 | 4 | test('babel-tape-runner', t => { 5 | const file = readFileSync(__filename, 'utf8') 6 | t.ok(/hello/gim.flags, 'gim') 7 | t.ok(/^import/.test(file)) 8 | t.end() 9 | }) 10 | --------------------------------------------------------------------------------