Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cypress-mongodb

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cypress-mongodb

Cypress MongoDB plugin

  • 5.1.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
12K
increased by30.17%
Maintainers
1
Weekly downloads
 
Created
Source

Introduction

Plugin that allows interaction with MongoDB server using Cypress commands.

Installation

run npm install cypress-mongodb
configure (see below)
profit

Supported and tested MongoDB versions

4.4, 5.0

Usage

cy.createCollection('new_collection', {database: 'new_database'}); // creates both collection and database

const oneDocument = {document: 1};
cy.insertOne(oneDocument, {collection: 'some_collection', database: 'some_database'}).then(res => {
    cy.log(res); // prints the id of inserted document
});

const manyDocuments = [{document: 1}, {document: 2}];
cy.insertMany(manyDocuments, {collection: 'some_other_collection'}).then(res => { // defaults to database from env variable
    console.log(res); // prints the key-value pairs with inserted ids
});

const deleteClause = {document: 1};
cy.deleteOne(oneDocument, {collection: 'new_collection', database: 'some_database'}).then(res => {
    cy.log(res); // prints 1 (or 0) document deleted
});

cy.deleteMany(deleteClause).then(res => { // defaults to collection and database from env variables
    cy.log(res); // prints '# documents deleted'
});

const pipeline = []; // any kind of aggregation
cy.aggregate(pipeline).then(res => {
    cy.log(res); // prints the result of the aggregation
});

cy.dropCollection('start_new').then(res => {
    cy.log(res); // prints 'Collection dropped'
});

createCollection and dropCollection have the option to failSilently.

cy.createCollection('existing_collection', {failSilently: true}).then(res => {
    cy.log(res); // Error object if collection already exists
});

cy.dropCollection('nonexistent_collection', {failSilently: true}).then(res => {
    cy.log(res); // Error object if collection doesn’t exist
});

Environment setup

Add the following env properties in your cypress.config.js file:

{
    module.exports = defineConfig({
        "env": {
            "mongodb": {
                "uri": "mongodb://localhost:27017",
                "database": "database_name",
                "collection": "collection_name"
            }
        }
    });
}

Note: only mongodb.uri is mandatory, you can always override/set database and collection names in each cypress mongodb command using options. You can set both local and remote urls.

Plugin configuration - JavaScript

In your cypress.config.js add the following:

const mongo = require('cypress-mongodb');

module.exports = defineConfig({
    e2e: {
        setupNodeEvents(on, config) {
            mongo.configurePlugin(on);
        }
    }
});

In your cypress/support/e2e.js add the following:

const mongo = require('cypress-mongodb');
mongo.addCommands();

Plugin configuration - TypeScript

In your cypress.config.ts add the following:

import {defineConfig} from 'cypress'
import {configurePlugin} from 'cypress-mongodb';

/**
 * @type {Cypress.PluginConfig}
 */
export default defineConfig({
    e2e: {
        setupNodeEvents(on) {
            configurePlugin(on);
        }
    }
});

In your cypress/support/e2e.ts add the following:

import {addCommands} from "cypress-mongodb";

addCommands();

Future development & support

Please create feature requests for things you'd like to see.
Please raise issues for any problems you encounter.

Keywords

FAQs

Package last updated on 18 Oct 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc