async'ify the groups code

This commit is contained in:
Girish Ramakrishnan
2021-06-28 15:15:28 -07:00
parent 7009c142cb
commit 31498afe39
15 changed files with 392 additions and 1065 deletions

View File

@@ -14,7 +14,6 @@ const appdb = require('../appdb.js'),
database = require('../database'),
domaindb = require('../domaindb'),
expect = require('expect.js'),
groupdb = require('../groupdb.js'),
hat = require('../hat.js'),
mailboxdb = require('../mailboxdb.js'),
maildb = require('../maildb.js'),
@@ -487,28 +486,6 @@ describe('database', function () {
userdb.update(USER_0.id, { email: null }, function () {});
}).to.throwError();
});
it('cannot del non-existing user', function (done) {
userdb.del(USER_0.id + USER_0.id, function (error) {
expect(error).to.be.ok();
expect(error.reason).to.be(BoxError.NOT_FOUND);
done();
});
});
it('can del existing user', function (done) {
userdb.del(USER_0.id, function (error) {
expect(error).to.not.be.ok();
done();
});
});
it('did remove the user', function (done) {
userdb.count(function (error, count) {
expect(count).to.equal(2);
done();
});
});
});
describe('apps', function () {
@@ -592,6 +569,7 @@ describe('database', function () {
before(function (done) {
async.series([
database._clear,
userdb.add.bind(null, USER_0.id, USER_0),
domaindb.add.bind(null, DOMAIN_0.domain, DOMAIN_0)
], done);
@@ -1108,139 +1086,6 @@ describe('database', function () {
});
describe('groups', function () {
before(function (done) {
async.series([
database.initialize,
database._clear,
userdb.add.bind(null, USER_0.id, USER_0),
userdb.add.bind(null, USER_1.id, USER_1),
userdb.add.bind(null, USER_2.id, USER_2)
], done);
});
var GROUP_ID_1 = 'foundersid';
it('can create a group', function (done) {
groupdb.add(GROUP_ID_1, 'founders', 'ldap', function (error) {
expect(error).to.be(null);
done();
});
});
it('can get existing group', function (done) {
groupdb.get(GROUP_ID_1, function (error, result) {
expect(error).to.be(null);
expect(result.name).to.be('founders');
done();
});
});
it('can add member to the group', function (done) {
groupdb.addMember(GROUP_ID_1, USER_0.id, function (error) {
expect(error).to.be(null);
done();
});
});
it('cannot add invalid user to group', function (done) {
groupdb.addMember(GROUP_ID_1, 'random', function (error) {
expect(error.reason).to.be(BoxError.NOT_FOUND);
done();
});
});
it('can set members', function (done) {
groupdb.setMembers(GROUP_ID_1, [ USER_1.id, USER_2.id ], function (error) {
expect(error).to.be(null);
done();
});
});
it('can list users of group', function (done) {
groupdb.getMembers(GROUP_ID_1, function (error, result) {
expect(error).to.be(null);
expect(result).to.eql([ USER_1.id, USER_2.id ]);
done();
});
});
it('cannot delete non-existent member', function (done) {
groupdb.removeMember(GROUP_ID_1, 'random', function (error) {
expect(error.reason).to.be(BoxError.NOT_FOUND);
done();
});
});
it('can remove existing member', function (done) {
groupdb.removeMember(GROUP_ID_1, USER_1.id, function (error) {
expect(error).to.be(null);
done();
});
});
it('can getWithMembers', function (done) {
groupdb.getWithMembers(GROUP_ID_1, function (error, result) {
expect(error).to.be(null);
expect(result.name).to.be('founders');
expect(result.userIds).to.eql([ USER_2.id ]);
done();
});
});
it('can create more groups for list order test', function (done) {
groupdb.add(GROUP_ID_1 + 1, 'aaaa', 'ldap', function (error) {
expect(error).to.be(null);
groupdb.add(GROUP_ID_1 + 2, 'zzzz', 'ldap', function (error) {
expect(error).to.be(null);
done();
});
});
});
it('can getAll', function (done) {
groupdb.getAll(function (error, result) {
expect(error).to.be(null);
expect(result.length).to.be(3);
expect(result[0].name).to.be('aaaa');
expect(result[1].name).to.be('founders');
expect(result[2].name).to.be('zzzz');
done();
});
});
it('can getAllWithMembers', function (done) {
groupdb.getAllWithMembers(function (error, result) {
expect(error).to.be(null);
expect(result.length).to.be(3);
expect(result[0].name).to.be('aaaa');
expect(result[1].name).to.be('founders');
expect(result[1].userIds).to.eql([ USER_2.id ]);
expect(result[2].name).to.be('zzzz');
done();
});
});
it('can set groups', function (done) {
groupdb.setMembership(USER_0.id, [ GROUP_ID_1 ], function (error) {
expect(error).to.be(null);
done();
});
});
it('can get groups', function (done) {
groupdb.getMembership(USER_0.id, function (error, result) {
expect(error).to.be(null);
expect(result).to.eql([ GROUP_ID_1 ]);
done();
});
});
});
describe('importFromFile', function () {
before(function (done) {
async.series([