Karma wrapper that makes sure the ES6 and ES5 shims are BOTH available. See also the example usage project.
Modified from https://github.com/pokehanai/karma-es5-shim
Most versions of PhantomJS do not support ES5, let alone ES6. This meant that you got all sorts of errors when you tried to test ES6 features, even if you had used the Babel/6to5 transpiler.
Therefore, we have modified pokehanai/karma-es5-shim in the following ways:
- Use peerDependencies rather than submodules
- Include both ES5 and ES6 so that PhantomJS can run tests
Install the module from npm:
npm install karma-es6-shim --save
es6-shim to the
frameworks key after
requirejs in your Karma configuration:
You will almost certainly need some kind of transpiler such as Babel or 6to5.
We have supplied an example repository at https://github.com/radify/karma-es6-shim-example.
When to use this and when not to
Use it if you meet all the following criteria:
- You are using PhantomJS in Karma to test ES6
- You use the es6-shim polyfill in your HTML
- You need to use AMD-based module loading, e.g. RequireJS (see Babel's docs for more information)
Do not use it if:
- You can work around it using Babel's transform
- You are polyfilling in some other way that is accessible to PhantomJS in Karma