Skip to content

Commit

Permalink
Allow Jest to run TypeScript tests
Browse files Browse the repository at this point in the history
  • Loading branch information
andretchen0 committed Apr 10, 2023
1 parent 5eb34e4 commit 7a98a29
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions .babelrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module.exports = (api) => {
// Source: https://www.wisdomgeek.com/development/web-development/how-to-setup-jest-typescript-babel-webpack-project/
// Testing if babel is being run in test mode
const isTest = api.env('test');
/**
* Cache the returned value forever and don't call this function again. This is the default behavior but since we
* are reading the env value above, we need to explicitly set it after we are done doing that, else we get a
* caching was left unconfigured error.
*/
api.cache(true);
return {
plugins: ['@babel/plugin-transform-runtime'],
presets: [
// Enabling Babel to understand TypeScript
'@babel/preset-typescript',
[
// Allows smart transpilation according to target environments
'@babel/preset-env',
{
/**
* Specifying what module type should the output be in.
* For test cases, we transpile all the way down to commonjs since jest does not understand TypeScript.
* For all other cases, we don't transform since we want Webpack to do that in order for it to do
* dead code elimination (tree shaking) and intelligently select what all to add to the bundle.
*/
modules: isTest ? 'commonjs' : false,
},
],
],
};
};

0 comments on commit 7a98a29

Please sign in to comment.