power-assert instrumentor for CoffeeScript
espower-coffee
is a Node.js module loader that instruments power-assert feature into target CoffeeScript sources on the fly.
Pull-requests, issue reports and patches are always welcomed. See power-assert project for more documentation.
Given test/demo_test.coffee
assert = require 'assert' class Person constructor: (name, age) -> @name = name @age = age describe "various types", -> beforeEach -> @types = [ "string" 98.6 true false null `undefined` [ "nested" "array" ] { object: true } NaN Infinity /^not/ new Person("alice", 3) ] it "demo", -> index = @types.length - 1 bob = new Person("bob", 5) assert @types[index].name is bob.name
Run mocha with --require 'espower-coffee/guess'
$ mocha --require 'espower-coffee/guess' test/demo_test.coffee
․
0 passing (15ms)
1 failing
1) various types demo:
AssertionError: # /path/to/test/demo_test.coffee:33
assert(this.types[index].name === bob.name)
| || | | | |
| || | | | "bob"
| || | | Person{name:"bob",age:5}
| || | false
| |11 "alice"
| Person{name:"alice",age:3}
["string",98.6,true,false,null,undefined,#Array#,#Object#,NaN,Infinity,/^not/,#Person#]
--- [string] bob.name
+++ [string] this.types[index].name
@@ -1,3 +1,5 @@
-bob
+alice
at Decorator.concreteAssert (/path/to/node_modules/power-assert/node_modules/empower/lib/decorator.js:63:21)
at /path/to/node_modules/power-assert/node_modules/empower/lib/decorate.js:44:26
at powerAssert (/path/to/node_modules/power-assert/node_modules/empower/index.js:57:32)
at Context.<anonymous> (/path/to/test/demo_test.coffee:1:1)
$
See the power-assert output appears!
$ npm install --save-dev espower-coffee power-assert
If your tests are located on 'test/**/*.coffee'
, just run mocha with --require 'espower-coffee/guess'
$ mocha --require 'espower-coffee/guess' test/**/*.coffee
If your tests are not in test dir
You can set test directory in your package.json
{ "name": "your-module", "description": "Your module", "version": "0.0.1", "directories": { "test": "spec/" }, ... }
Then, run mocha with --require 'espower-coffee/guess'
$ mocha --require 'espower-coffee/guess' spec/**/*.coffee
Note: 'espower-coffee/guess'
is inspired by intelli-espower-loader
If you want to configure more explicitly, put espower-coffee-loader.js
somewhere in your project.
require('espower-coffee')({ // directory where match starts with cwd: process.cwd(), // glob pattern using minimatch module pattern: '{src,test}/**/*.coffee', // options for espower module espowerOptions: { patterns: [ 'assert(value, [message])', 'assert.ok(value, [message])', 'assert.equal(actual, expected, [message])', 'assert.notEqual(actual, expected, [message])', 'assert.strictEqual(actual, expected, [message])', 'assert.notStrictEqual(actual, expected, [message])', 'assert.deepEqual(actual, expected, [message])', 'assert.notDeepEqual(actual, expected, [message])', 'assert.deepStrictEqual(actual, expected, [message])', 'assert.notDeepStrictEqual(actual, expected, [message])' ] } });
Then, run mocha with --require
option
$ mocha --require ./path/to/espower-coffee-loader spec/unit/some_test.coffee
We support Node under maintenance. In other words, we stop supporting old Node version when their maintenance ends.
This means that any other environment is not supported.
NOTE: If espower-coffee works in any of the unsupported environments, it is purely coincidental and has no bearing on future compatibility. Use at your own risk.
See CHANGELOG
Licensed under the MIT license.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4