water-orm
Version:
A monolith version of Standalone waterline ORM
82 lines (63 loc) • 2.97 kB
JavaScript
/**
* Module Dependencies
*/
var path = require('path');
var Waterline = require(path.join(process.cwd(),'lib/waterline.js'));
var _ = require('lodash');
var async = require('async');
// Require Fixtures
var fixtures = {
PaymentBelongsFixture: require('./fixtures/belongsTo.child.fixture'),
PaymentBelongsCustomFixture: require('./fixtures/belongsTo.child.customPK.fixture'),
CustomerBelongsFixture: require('./fixtures/belongsTo.parent.fixture'),
CustomerBelongsCustomFixture: require('./fixtures/belongsTo.parent.customPK.fixture'),
PaymentHasManyFixture: require('./fixtures/hasMany.child.fixture'),
CustomerHasManyFixture: require('./fixtures/hasMany.parent.fixture'),
ApartmentHasManyFixture: require('./fixtures/hasMany.customPK.fixture'),
PaymentManyFixture: require('./fixtures/multipleAssociations.fixture').payment,
CustomerManyFixture: require('./fixtures/multipleAssociations.fixture').customer,
StadiumFixture: require('./fixtures/hasManyThrough.stadium.fixture'),
TeamFixture: require('./fixtures/hasManyThrough.team.fixture'),
VenueFixture: require('./fixtures/hasManyThrough.venue.fixture'),
TaxiFixture: require('./fixtures/manyToMany.taxi.fixture'),
DriverFixture: require('./fixtures/manyToMany.driver.fixture'),
TaxiWithSchemaFixture: require('./fixtures/manyToMany.taxi.withSchema.fixture'),
DriverWithSchemaFixture: require('./fixtures/manyToMany.driver.withSchema.fixture'),
TaxiCustomFixture: require('./fixtures/manyToMany.taxi.customPK.fixture'),
DriverCustomFixture: require('./fixtures/manyToMany.driver.customPK.fixture'),
UserOneFixture: require('./fixtures/oneToOne.fixture').user_resource,
ProfileOneFixture: require('./fixtures/oneToOne.fixture').profile
};
/////////////////////////////////////////////////////
// TEST SETUP
////////////////////////////////////////////////////
var waterline, ontology;
before(function(done) {
waterline = new Waterline();
Object.keys(fixtures).forEach(function(key) {
waterline.loadCollection(fixtures[key]);
});
var connections = { associations: _.clone(Connections.test) };
waterline.initialize({ adapters: { wl_tests: Adapter }, connections: connections }, function(err, _ontology) {
if(err) return done(err);
ontology = _ontology;
Object.keys(_ontology.collections).forEach(function(key) {
var globalName = key.charAt(0).toUpperCase() + key.slice(1);
global.Associations[globalName] = _ontology.collections[key];
});
done();
});
});
after(function(done) {
function dropCollection(item, next) {
if(!Adapter.hasOwnProperty('drop')) return next();
ontology.collections[item].drop(function(err) {
if(err) return next(err);
next();
});
}
async.each(Object.keys(ontology.collections), dropCollection, function(err) {
if(err) return done(err);
waterline.teardown(done);
});
});