ValidationTests.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const { Joi } = require('../../../../app/src/infrastructure/Validation')
  2. const { ObjectId } = require('mongodb-legacy')
  3. const { expect } = require('chai')
  4. const { ValidationError } = require('joi')
  5. describe('Validation', function () {
  6. const validObjectId = '123456781234567812345678'
  7. const invalidObjectId = '12345678-1234-1234-12345678'
  8. it('accepts valid ObjectId strings', async function () {
  9. const schema = Joi.object({
  10. test: Joi.objectId(),
  11. })
  12. const value = await schema.validateAsync({
  13. test: validObjectId,
  14. })
  15. expect(value.test).to.be.instanceof(ObjectId)
  16. expect(value.test.toHexString()).to.equal(validObjectId)
  17. })
  18. it('rejects invalid ObjectId strings', async function () {
  19. const schema = Joi.object({
  20. test: Joi.objectId(),
  21. })
  22. const promise = schema.validateAsync({
  23. test: invalidObjectId,
  24. })
  25. expect(promise).to.be.rejectedWith(ValidationError)
  26. })
  27. it('accepts valid ObjectId objects', async function () {
  28. const schema = Joi.object({
  29. test: Joi.objectId(),
  30. })
  31. const value = await schema.validateAsync({
  32. test: new ObjectId(validObjectId),
  33. })
  34. expect(value.test).to.be.instanceof(ObjectId)
  35. expect(value.test.toHexString()).to.equal(validObjectId)
  36. })
  37. })