UNPKG

sails-hook-fixtures

Version:

Automatically install database fixtures with relations to your database when you lift Sails

77 lines (70 loc) 1.56 kB
const Sails = require('sails').Sails const path = require('path') const debug = require('debug')('sails-hook-fixtures:sailsHelper') const resetCache = require('resnap')() const _ = require('lodash') async function loadSails (fixtures) { debug('loadSails', fixtures) if (!fixtures) { resetCache(); fixtures = require('./fixtures') } return new Promise((resolve, reject) => { // Try to lift new Sails().load({ appPath: path.join(__dirname, 'sampleApp'), hooks: { fixtures: require('../../lib'), grunt: false, views: false, blueprints: false }, log: { level: 'silent' }, datastores: { default: { adapter: 'sails-mongo', host: 'localhost', port: 27017, database: 'sails-hook-fixtures-testdb' } }, models: { datastore: 'default', migrate: 'drop' }, fixtures: fixtures }, function (err, sails) { if (err) { reject(err) } resolve(sails) }) }) } async function reloadSails (sails, fixtures) { await lowerSails(sails) resetCache() sails = await loadSails(fixtures) return sails } async function lowerSails (sails) { debug('lowerSails') return new Promise((resolve, reject) => { if (sails && _.isFunction(sails.lower)) { sails.lower({}, (err) => { if (err) { reject(err) } resolve() }) } resolve() }) } module.exports = { reloadSails, loadSails, lowerSails }