pip-services-roles-node
Version:
User roles microservice in Node.js
134 lines (114 loc) • 4.39 kB
text/typescript
let _ = require('lodash');
let async = require('async');
let assert = require('chai').assert;
import { Descriptor } from 'pip-services3-commons-node';
import { ConfigParams } from 'pip-services3-commons-node';
import { References } from 'pip-services3-commons-node';
import { ConsoleLogger } from 'pip-services3-components-node';
import { RolesMemoryPersistence } from '../../src/persistence/RolesMemoryPersistence';
import { RolesController } from '../../src/logic/RolesController';
import { RolesLambdaFunction } from '../../src/container/RolesLambdaFunction';
let ROLES = ['Role 1', 'Role 2', 'Role 3'];
suite('RolesLambdaFunction', ()=> {
let lambda: RolesLambdaFunction;
suiteSetup((done) => {
let config = ConfigParams.fromTuples(
'logger.descriptor', 'pip-services:logger:console:default:1.0',
'persistence.descriptor', 'pip-services-roles:persistence:memory:default:1.0',
'controller.descriptor', 'pip-services-roles:controller:default:default:1.0'
);
lambda = new RolesLambdaFunction();
lambda.configure(config);
lambda.open(null, done);
});
suiteTeardown((done) => {
lambda.close(null, done);
});
test('Grant and Revoke Roles', (done) => {
async.series([
// Grant roles first time
(callback) => {
lambda.act(
{
role: 'roles',
cmd: 'grant_roles',
user_id: '1',
roles: ['Role1']
},
(err, roles) => {
assert.isNull(err);
assert.lengthOf(roles, 1);
assert.sameMembers(roles, ['Role1']);
callback(err);
}
);
},
// Grant roles second time
(callback) => {
lambda.act(
{
role: 'roles',
cmd: 'grant_roles',
user_id: '1',
roles: ['Role1', 'Role2', 'Role3']
},
(err, roles) => {
assert.isNull(err);
assert.lengthOf(roles, 3);
assert.sameMembers(roles, ['Role1', 'Role2', 'Role3']);
callback(err);
}
);
},
// Revoke roles first time
(callback) => {
lambda.act(
{
role: 'roles',
cmd: 'revoke_roles',
user_id: '1',
roles: ['Role1']
},
(err, roles) => {
assert.isNull(err);
assert.lengthOf(roles, 2);
assert.sameMembers(roles, ['Role2', 'Role3']);
callback(err);
}
);
},
// Get roles
(callback) => {
lambda.act(
{
role: 'roles',
cmd: 'get_roles_by_id',
user_id: '1'
},
(err, roles) => {
assert.isNull(err);
assert.lengthOf(roles, 2);
assert.sameMembers(roles, ['Role2', 'Role3']);
callback(err);
});
},
// Revoke roles second time
(callback) => {
lambda.act(
{
role: 'roles',
cmd: 'revoke_roles',
user_id: '1',
roles: ['Role1', 'Role2']
},
(err, roles) => {
assert.isNull(err);
assert.lengthOf(roles, 1);
assert.sameMembers(roles, ['Role3']);
callback(err);
}
);
}
], done);
});
});