Home Reference Source Test

test/modules.account.test.js

import dotenv from 'dotenv'
import chai from 'chai'
import chaiAsPromised from 'chai-as-promised'
import { SpaceInvoices } from '../src/spaceInvoices'
import { MAccount } from '../src/models'
import { RequestError } from '../src/services/errors'

dotenv.config()
let expect = chai.use(chaiAsPromised).expect

/** @test {SpaceInvoices#account} */
describe('SpaceInvoices Modules Test / Account', () => {
  let spaceInvoices = new SpaceInvoices(process.env.API_TOKEN)
  /**
   * @type { MAccount | null }
   */
  let account = null

  it('authenticate wrong cridentials', () => {
    return expect(spaceInvoices.account.authenticate('text@example.com', 'here')).to.eventually.be.rejectedWith(RequestError)
  })

  it('authenticate right cridentials', () => {
    return expect(spaceInvoices.account.authenticate(process.env.TEST_EMAIL, process.env.TEST_PASSWORD).then(_account => {
      account = _account
      return Promise.resolve(_account)
    })).to.eventually.be.fulfilled.with.instanceOf(MAccount)
  })

  it('get request', () => {
    return expect(spaceInvoices.account.get(account.id)).to.eventually.be.fulfilled.with.instanceOf(MAccount)
  })

  it('is email unique', () => {
    return expect(spaceInvoices.account.isEmailUnique(process.env.TEST_EMAIL)).to.eventually.be.fulfilled.with.false
  })
})