mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
11ce07ec50
Add database migrations using 'east' GitOrigin-RevId: da067292e9db1fad050545858bc7cc39245d3395
63 lines
2.1 KiB
JavaScript
63 lines
2.1 KiB
JavaScript
const chai = require('chai')
|
|
const expect = chai.expect
|
|
const chaiAsPromised = require('chai-as-promised')
|
|
chai.use(chaiAsPromised)
|
|
|
|
const { User } = require('../../../app/src/models/User')
|
|
const { Subscription } = require('../../../app/src/models/Subscription')
|
|
|
|
describe('mongoose', function() {
|
|
describe('User', function() {
|
|
const email = 'wombat@potato.net'
|
|
|
|
it('allows the creation of a user', async function() {
|
|
await expect(User.create({ email: email })).to.be.fulfilled
|
|
await expect(User.findOne({ email: email })).to.eventually.exist
|
|
})
|
|
|
|
it('does not allow the creation of multiple users with the same email', async function() {
|
|
await expect(User.create({ email: email })).to.be.fulfilled
|
|
await expect(User.create({ email: email })).to.be.rejected
|
|
await expect(User.count({ email: email })).to.eventually.equal(1)
|
|
})
|
|
})
|
|
|
|
describe('Subsription', function() {
|
|
let user, otherUser
|
|
|
|
beforeEach(async function() {
|
|
user = await User.create({ email: 'wombat@potato.net' })
|
|
otherUser = await User.create({ email: 'giraffe@turnip.org' })
|
|
})
|
|
|
|
it('allows the creation of a subscription', async function() {
|
|
await expect(
|
|
Subscription.create({ admin_id: user._id, manager_ids: [user._id] })
|
|
).to.be.fulfilled
|
|
await expect(Subscription.findOne({ admin_id: user._id })).to.eventually
|
|
.exist
|
|
})
|
|
|
|
it('does not allow the creation of a subscription without a manager', async function() {
|
|
await expect(Subscription.create({ admin_id: user._id })).to.be.rejected
|
|
})
|
|
|
|
it('does not allow a user to manage more than one group', async function() {
|
|
await expect(
|
|
Subscription.create({ admin_id: user._id, manager_ids: [user._id] })
|
|
).to.be.fulfilled
|
|
await expect(
|
|
Subscription.create({
|
|
admin_id: otherUser._id,
|
|
manager_ids: [otherUser._id]
|
|
})
|
|
).to.be.fulfilled
|
|
await expect(
|
|
Subscription.update(
|
|
{ admin_id: user._id },
|
|
{ $push: { manager_ids: otherUser._id } }
|
|
)
|
|
).to.be.rejected
|
|
})
|
|
})
|
|
})
|