Big news!Introducing Socket AI - ChatGPT-Powered Threat Analysis. Learn more
Socket
Log inDemoInstall

sequelize-mocking

Package Overview
Dependencies
3
Maintainers
1
Versions
20
Issues
File Explorer

Advanced tools

sequelize-mocking

A Sequelize extension to deal with mocking for tests

    2.0.1latest
    GitHub

Version published
Maintainers
1
Weekly downloads
370
decreased by-44.86%

Weekly downloads

Readme

Source

sequelize-mocking

Build StatusDependency Status devDependency Status

Known Vulnerabilities

NPM NPM

Sequelize extension to deal with data-mocking for testing

  • it was tested with Sequelize 3.19.3 before 1.0.0
  • it was tested with Sequelize 4.3.1 since 1.0.0.
  • it was tested with Sequelize 5.3.0 since 2.0.0

And you have to declare in your package.json the expected sequelize version

It will use the sqlite database for mocked database, will recreate it for database.

Can be integrated with Mocha and Jasmine.

A sample of use:

/** * Test around the @{UserService} * * @module test/user/service */ 'use strict'; const chai = require('chai'); const sinon = require('sinon'); const path = require('path'); const sequelizeMockingMocha = require('sequelize-mocking').sequelizeMockingMocha; describe('User - UserService (using sequelizeMockingMocha) - ', function () { const Database = require('../../lib/database'); const UserService = require('../../lib/user/service'); const UserModel = require('../../lib/user/model'); // Basic configuration: create a sinon sandbox for testing let sandbox = null; beforeEach(function () { sandbox = sinon.sandbox.create(); }); afterEach(function () { sandbox && sandbox.restore(); }); // Load fake data for the users sequelizeMockingMocha( Database.getInstance(), path.resolve(path.join(__dirname, './fake-users-database.json')), /* Or load array of files [ path.resolve(path.join(__dirname, './fake-users-database.json')), path.resolve(path.join(__dirname, './fake-candy-database.json')), ] */ { 'logging': false } ); it('the service shall exist', function () { chai.expect(UserService).to.exist; }); describe('and the method findAll shall ', function () { it('exist', function () { chai.expect(UserService.findAll).to.exist; }); it('shall returns an array of user', function () { return UserService .findAll() .then(function (users) { chai.expect(users).deep.equals([{ 'id': 1, 'firstName': 'John', 'lastName': 'Doe', 'age': 25, 'description': null }]); }); }); }); describe('and the method find shall ', function () { it('exist', function () { chai.expect(UserService.find).to.exist; }); it('shall return a user if we can', function () { let findByIdSpy = sandbox.spy(UserModel, 'findById'); return UserService .find(1) .then(function (user) { chai.expect(findByIdSpy.called).to.be.true; chai.expect(findByIdSpy.calledOnce).to.be.true; chai.expect(findByIdSpy.calledWith(1)).to.be.true; chai.expect(user).deep.equals({ 'id': 1, 'firstName': 'John', 'lastName': 'Doe', 'age': 25, 'description': null }); }); }); it('shall return null if not found', function () { return UserService .find(-1) .then(function (user) { chai.expect(user).to.be.null; }); }); }); });

And the mocked data from the JSON file:

[ { "model": "user", "data": { "id": 1, "firstName": "John", "lastName": "Doe", "age": 25, "description": null } } ]

Keywords

FAQs

Last updated on 13 Aug 2019

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket
support@socket.devSocket SOC 2 Logo

Product

  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc