Home

Awesome

why espower-ts-node

power-assert is a really great project which makes writing expressive test much easier. It supports a lot of different javascript flavours and tools, which is great.

ts-node is also a really great project that handles a lot of the typescript basics that a project like power-assert shouldn't need to worry about. If you want to run typescript code in node, then you should check out ts-node. it's awkward for ts-node users to need to work out how to configure how another loader will handle typescript compilation when they've already settled on ts-node.

Much better that ts-node users can simply keep using ts-node as they already have, with the awesome extra testing power that power-assert gives them.

sourcemap support

espower-ts-node supports source-maps. It grabs the source map produced by ts-node and passes them into power-assert. All your asserts & stack traces will have the right line numbers - nothing more to do.

installation

npm install --save-dev espower-ts-node

usage

espower-ts-node will match any files which end in .test.ts, .spec.ts, or .unit.ts as well as any files in a /spec /test or /unit directory.

calling mocha directly with ts-node as a compiler - test files distinguished by extension

mocha --compilers ts:ts-node/register,tsx:ts-node/register --require espower-ts-node src/**/*.test.ts

calling mocha directly with ts-node as a compiler - test files distinguished by directory

mocha --compilers ts:ts-node/register,tsx:ts-node/register --require espower-ts-node test/**/*.ts

passing flags to ts-node - test files distinguished by extension

ts-node -D -F ./node_modules/mocha/bin/_mocha --require espower-ts-node src/**/*.test.ts

passing flags to ts-node - test files distinguished by directory

ts-node -D -F ./node_modules/mocha/bin/_mocha --require espower-ts-node test/**/*.ts

I'm compiling with great.io (the latest fab js flavour) - will this work?

Probably! It just depends on how great.io handles source maps - so long as it's consistent with how ts-node handles source maps then it Should Work Fine (tm).