Jest preset to run MongoDB memory server
Usage
0. Install
$ yarn add @shelf/jest-mongodb --dev
Make sure mongodb
is installed in the project as well, as it's required as a peer dependency.
jest.config.js
1. Create moduleexports = preset: '@shelf/jest-mongodb';
If you have a custom jest.config.js
make sure you remove testEnvironment
property, otherwise it will conflict with the preset.
jest-mongodb-config.js
2. Create
moduleexports = mongodbMemoryServerOptions: binary: version: '4.0.3' skipMD5: true autoStart: false instance: {} ;
To use the same database for all tests pass the config like this:
moduleexports = mongodbMemoryServerOptions: binary: version: '4.0.3' skipMD5: true instance: dbName: 'jest' autoStart: false ;
To use dynamic database name you must pass empty object for instance field
moduleexports = mongodbMemoryServerOptions: binary: version: '4.0.3' skipMD5: true instance: {} autoStart: false ;
3. Configure MongoDB client
Library sets the process.env.MONGO_URL
for your convenience
const MongoClient = ; ;
4. PROFIT! Write tests
;
Cache MongoDB binary in CI by putting this folder to the list of cached paths: ./node_modules/.cache/mongodb-memory-server/mongodb-binaries
You can enable debug logs by setting environment variable DEBUG=jest-mongodb:*
5. Clean collections before each test (optional)
;
See this issue for discussion
See Also
Publish
$ git checkout master$ yarn version$ yarn publish$ git push origin master --tags
License
MIT © Shelf