Skip to content

Stubs for using Jest to unit test Meteor modules

License

Notifications You must be signed in to change notification settings

jaredloson/meteor-jest-stubs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

meteor-jest-stubs

This is a supported fork of orangecms/jest-meteor-stubs. Please note that, the package name is slightly different than the original one:

- jest-meteor-stubs
+ meteor-jest-stubs

About

Testing Meteor code is very slow when using the built-in meteor test command. These stubs will help you get rid of the dependencies which are not present in your project's node_modules directory. Use the setup below which does most of the actual magic. :)

Installation

npm i -D meteor-jest-stubs or yarn add -D meteor-jest-stubs

How it works

Jest preprocesses the files to be executed through the test runner. When pulling in dependencies, i.e. using require (in ES6 import), similar to the default behavior of Node.js, the resolver will look for them in a local directory named node_modules. However, Meteor injects additional modules when running meteor instead of plain Node.js, which do not reside in this directory. Jest allows you to overcome this issue by providing additional locations where the load should look for modules.

Usage

Add this module's lib/ directory to the modulePaths in your Jest config. For Meteor packages, you will need to use moduleNameMapper to rewrite the module names to use _ instead of : for the namespaces as : is not allowed by some file/operating systems. The configuration has to be in jest.config.js in Jest 20 because of a bug in the mapper.

Here is a working example:

module.exports = {
  transform: {
    '^.+\\.jsx?$': 'babel-jest',
  },
  moduleFileExtensions: [
    'js',
    'jsx',
  ],
  modulePaths: [
    '<rootDir>/node_modules/',
    '<rootDir>/node_modules/meteor-jest-stubs/lib/',
  ],
  moduleNameMapper: {
    '^(.*):(.*)$': '$1_$2',
  },
  transformIgnorePatterns: [
    "<rootDir>/node_modules/meteor-jest-stubs",
  ],
  unmockedModulePathPatterns: [
    '/^imports\\/.*\\.jsx?$/',
    '/^node_modules/',
  ],
};

About

Stubs for using Jest to unit test Meteor modules

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%