Sails.js Sails权限测试,使用bluebird创建记录
所以我在玩弄风帆。我正在尝试创建一个简单的系统,用户可以登录,创建公司,然后其他人可以加入这些公司,看到公司中的其他人 在所有测试运行之前,我想在引导文件中创建一些用户。这样,我的所有测试都可以利用这些用户 这基本上显示了这一切(链接,因为它是巨大的)。我创建了2个公司和10个用户。但是,这部分工作正常,当sails权限尝试将角色链接到新创建的用户时,它会变得非常混乱,并尝试创建一百万个链接到最后一个创建的用户 Company.jsSails.js Sails权限测试,使用bluebird创建记录,sails.js,waterline,bluebird,Sails.js,Waterline,Bluebird,所以我在玩弄风帆。我正在尝试创建一个简单的系统,用户可以登录,创建公司,然后其他人可以加入这些公司,看到公司中的其他人 在所有测试运行之前,我想在引导文件中创建一些用户。这样,我的所有测试都可以利用这些用户 这基本上显示了这一切(链接,因为它是巨大的)。我创建了2个公司和10个用户。但是,这部分工作正常,当sails权限尝试将角色链接到新创建的用户时,它会变得非常混乱,并尝试创建一百万个链接到最后一个创建的用户 Company.js module.exports = { attribute
module.exports = {
attributes: {
name: {
type: 'string',
required: true,
minLength: 3,
maxLength: 255,
unique: true,
index: true
}
}
}
User.js
var _ = require('lodash');
var _super = require('sails-permissions/api/models/User');
_.merge(exports, _super);
_.merge(exports, {
attributes: {
// Extend with custom logic here by adding additional fields, methods, etc.
company: {
model: 'Company'
}
}
});
引导文件:
/**
* Test starter - with this version of sails.js we can only start one sails server,
* to solve this problem we use only one before All and after All to start and
* stop the server
*/
var Sails = require('sails');
var ConfigOverrides = require('../config/env/testing');
var Promise = require('bluebird');
var sails;
before(function (done) {
this.timeout(100000);
Sails.lift(ConfigOverrides, function (err, server) {
sails = server;
if (err) {
return done(err);
}
// Companies
var company1 = {name: 'Company 1'};
var company2 = {name: 'Company 2'};
// Users
var company1Owner = {username: 'Company 1 owner', email: 'admin@company1.com', password: 'password'};
var company2Owner = {username: 'Company 2 owner', email: 'admin@company2.com', password: 'password'};
var company1Employee1 = {username: 'company1 Employee 1', email: '1@company1.com', password: 'password'};
var company1Employee2 = {username: 'company1 Employee 2', email: '2@company1.com', password: 'password'};
var company1Employee3 = {username: 'company1 Employee 3', email: '3@company1.com', password: 'password'};
var company2Employee1 = {username: 'company2 Employee 1', email: '1@company2.com', password: 'password'};
var company2Employee2 = {username: 'company2 Employee 2', email: '2@company2.com', password: 'password'};
var company2Employee3 = {username: 'company2 Employee 3', email: '3@company2.com', password: 'password'};
var company2Employee4 = {username: 'company2 Employee 4', email: '4@company2.com', password: 'password'};
var registered = {username: 'registered', email: 'registered@foobar.com', password: 'password'};
Promise.all([
Company.create(company1),
Company.create(company2)
])
.spread(function (company1, company2) {
return Promise.all([
User.register(_.merge(company1Owner, {company: company1})),
User.register(_.merge(company1Employee1, {company: company1})),
User.register(_.merge(company1Employee2, {company: company1})),
User.register(_.merge(company1Employee3, {company: company1})),
User.register(_.merge(company2Owner, {company: company2})),
User.register(_.merge(company2Employee1, {company: company2})),
User.register(_.merge(company2Employee2, {company: company2})),
User.register(_.merge(company2Employee3, {company: company2})),
User.register(_.merge(company2Employee4, {company: company2})),
User.register(registered)
]);
})
.catch(function(err) {
console.dir(err);
})
.done(function(){
done();
});
});
});
after(function (done) {
// here you can clear fixtures, etc.
sails.lower(done);
});
我明白了。我明白了。