Vulcan/packages/vulcan-users/test/server/callback.test.js
2018-11-05 13:39:30 +01:00

36 lines
No EOL
1.5 KiB
JavaScript

import { usersMakeAdmin } from '../../lib/server/callbacks';
import Users from '../../lib/modules/collection';
import StubCollections from 'meteor/hwillson:stub-collections';
import expect from 'expect';
describe('vulcan:users/callbacks', function () {
beforeEach(function () {
StubCollections.stub(Users);
});
afterEach(function () {
StubCollections.restore();
});
describe('usersMakeAdmin', function () {
it('makes the first user an admin', function () {
const user = usersMakeAdmin({ email: 'foo@bar.bar', password: 'password' });
expect(user.isAdmin).toBe(true);
});
it('ignores dummy users', function () {
const user = usersMakeAdmin({ isDummy: true, email: 'foo@bar.bar', password: 'password' });
expect(user.isAdmin).toBe(false);
});
it('does not make 2nd user admin', function () {
const user1 = usersMakeAdmin({ email: '11@11.fr', password: 'password' });
Users.insert(user1);
const user2 = usersMakeAdmin({ email: '22@22.fr', password: 'password' });
expect(user1.isAdmin).toBe(true);
expect(user2.isAdmin).toBe(false);
});
it('does not override isAdmin prop if passed', function () {
const userNonAdmin = usersMakeAdmin({ isAdmin: false, email: 'foo@bar.bar', password: 'password' });
expect(userNonAdmin.isAdmin).toBe(false);
const userAdmin = usersMakeAdmin({ isAdmin: true, email: 'foo@bar.bar', password: 'password' });
expect(userAdmin.isAdmin).toBe(true);
});
});
});