| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- import { expect } from 'chai'
- import { User } from '../../../app/src/models/User.mjs'
- import { Subscription } from '../../../app/src/models/Subscription.mjs'
- import Features from '../../../app/src/infrastructure/Features.mjs'
- 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 })).to.be.fulfilled
- await expect(User.findOne({ email }, { _id: 1 })).to.eventually.exist
- })
- it('does not allow the creation of multiple users with the same email', async function () {
- await expect(User.create({ email })).to.be.fulfilled
- await expect(User.create({ email })).to.be.rejected
- await expect(User.countDocuments({ email })).to.eventually.equal(1)
- })
- it('formats assignedAt as Date', async function () {
- await expect(
- User.create({
- email,
- splitTests: {
- 'some-test': [
- {
- variantName: 'control',
- versionNumber: 1,
- phase: 'release',
- assignedAt: '2021-09-24T11:53:18.313Z',
- },
- {
- variantName: 'control',
- versionNumber: 2,
- phase: 'release',
- assignedAt: new Date(),
- },
- ],
- },
- })
- ).to.be.fulfilled
- const user = await User.findOne({ email }, { splitTests: 1 })
- expect(user.splitTests['some-test'][0].assignedAt).to.be.a('date')
- expect(user.splitTests['some-test'][1].assignedAt).to.be.a('date')
- })
- })
- describe('Subscription', function () {
- let user
- beforeEach(async function () {
- if (!Features.hasFeature('saas')) {
- this.skip()
- }
- user = await User.create({ email: 'wombat@potato.net' })
- })
- it('allows the creation of a subscription', async function () {
- await expect(
- Subscription.create({
- admin_id: user._id,
- manager_ids: [user._id],
- salesforce_id: 'a0a0a00000AAA0AAAA',
- })
- ).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 the creation of a subscription with an invalid salesforce_id', async function () {
- await expect(
- Subscription.create({
- admin_id: user._id,
- manager_ids: [user._id],
- salesforce_id: 'a00aaaAAa0000a',
- })
- ).to.be.rejected
- })
- })
- })
|