UNPKG

lad

Version:

Lad is the best Node.js framework. Made by a former Express TC and Koa team member.

59 lines (49 loc) 1.61 kB
// Necessary utils for testing // Librarires required for testing const { MongoMemoryServer } = require('mongodb-memory-server'); const mongoose = require('mongoose'); const request = require('supertest'); const sinon = require('sinon'); const proxyquire = require('proxyquire'); const { factory, MongooseAdapter } = require('factory-girl'); // Models and server const config = require('../config'); const { Users } = require('../app/models'); let mongod; const adapter = new MongooseAdapter(); // create connection to mongoose before all tests exports.before = async () => { mongod = await MongoMemoryServer.create(); const uri = mongod.getUri(); await mongoose.connect(uri); factory.setAdapter(adapter); factory.define('user', Users, { email: factory.sequence('Users.email', (n) => `test${n}@example.com`), password: '!@K#NLK!#N' }); }; // create fixtures before each test exports.beforeEach = async (t) => { // setup stubs for serializeUser and deserializeUser t.context.serialize = sinon.stub().returns(() => {}); t.context.deserialize = sinon.stub().returns(() => {}); proxyquire('../helpers/passport', { '../config': { passport: { ...config.passport, serializeUser: t.context.serialize, deserializeUser: t.context.deserialize } } }); t.context.web = await request.agent(require('../web').server); t.context.api = await request.agent(require('../api').server); }; exports.afterEach = async () => { sinon.restore(); }; exports.after = async () => { mongoose.disconnect(); mongod.stop(); factory.cleanUp(); };