Using Jest with MongoDB and DynamoDB
Using with MongoDB
Using the Global Setup/Teardown and Async Test Environment APIs, Jest will be able to work smoothly with MongoDB.
Use jest-mongodb Preset
Jest MongoDB will provide all the required configuration to run your tests using MongoDB.
1. First you need to install @shelf/jest-mongodb by running the command below:
yarn add @shelf/jest-mongodb -dev
2. Then you can specify preset in your Jest configuration like so:
{
"preset": "@shelf/jest-mongodb"
}
3. Finally, you can write your test
const {MongoClient} = require('mongodb');
describe('insert', () => {
let connection;
let db;
beforeAll(async () => {
connection = await MongoClient.connect(global.__MONGO_URI__, {
useNewUrlParser: true,
});
db = await connection.db(global.__MONGO_DB_NAME__);
});
afterAll(async () => {
await connection.close();
await db.close();
});
it('should insert a doc into collection', async () => {
const users = db.collection('users');
const mockUser = {_id: 'some-user-id', name: 'John'};
await users.insertOne(mockUser);
const insertedUser = await users.findOne({_id: 'some-user-id'});
expect(insertedUser).toEqual(mockUser);
});
});
Let us consider the mocking the insertion of a post on a blog.
const {MongoClient} = require('mongodb');
describe('insert', () => {
let connection;
let db;
beforeAll(async () => {
connection = await MongoClient.connect(global.__MONGO_URI__, {
useNewUrlParser: true,
});
db = await connection.db(global.__MONGO_DB_NAME__);
});
afterAll(async () => {
await connection.close();
await db.close();
});
it('should insert a document into collection', async () => {
const posts = db.collection('posts');
const mockPost = {_id: 'some-post-id', name: 'Stocks'};
await posts.insertOne(mockPost);
const insertedPost = await posts.findOne({_id: 'some-post-id'});
expect(insertedPost).toEqual(mockPost);
});
});
Finally, let us consider the addition of a product to a product listing page.
const {MongoClient} = require('mongodb');
describe('insert', () => {
let connection;
let db;
beforeAll(async () => {
connection = await MongoClient.connect(global.__MONGO_URI__, {
useNewUrlParser: true,
});
db = await connection.db(global.__MONGO_DB_NAME__);
});
afterAll(async () => {
await connection.close();
await db.close();
});
it('should insert a document into collection', async () => {
const products = db.collection('products');
const mockProduct = {_id: 'some-product-id', name: 'Shirts'};
await products.insertOne(mockProduct);
const insertedProduct = await products.findOne({_id: 'some-product-id'});
expect(insertedProduct).toEqual(mockProduct);
});
});
We have demonstrated how to mock a MongoDB database with three examples that inserts a document into a collection.
Notice that each of the examples above there is no need to load any dependencies.
Previous:
Using with DynamoDB
Next:
Using with puppeteer
- New Content published on w3resource :
- Python Numpy exercises
- Python GeoPy Package exercises
- Python Pandas exercises
- Python nltk exercises
- Python BeautifulSoup exercises
- Form Template
- Composer - PHP Package Manager
- PHPUnit - PHP Testing
- Laravel - PHP Framework
- Angular - JavaScript Framework
- React - JavaScript Library
- Vue - JavaScript Framework
- Jest - JavaScript Testing Framework