Files
overleaf-cep/services/web/test/unit/src/infrastructure/ValidationTests.js
andrew rumble 032deaf05c Switch to mongodb-legacy
GitOrigin-RevId: 11e09528c153de6b7766d18c3c90d94962190371
2024-08-21 08:04:24 +00:00

48 lines
1.3 KiB
JavaScript

const { Joi } = require('../../../../app/src/infrastructure/Validation')
const { ObjectId } = require('mongodb-legacy')
const { expect } = require('chai')
const { ValidationError } = require('joi')
describe('Validation', function () {
const validObjectId = '123456781234567812345678'
const invalidObjectId = '12345678-1234-1234-12345678'
it('accepts valid ObjectId strings', async function () {
const schema = Joi.object({
test: Joi.objectId(),
})
const value = await schema.validateAsync({
test: validObjectId,
})
expect(value.test).to.be.instanceof(ObjectId)
expect(value.test.toHexString()).to.equal(validObjectId)
})
it('rejects invalid ObjectId strings', async function () {
const schema = Joi.object({
test: Joi.objectId(),
})
const promise = schema.validateAsync({
test: invalidObjectId,
})
expect(promise).to.be.rejectedWith(ValidationError)
})
it('accepts valid ObjectId objects', async function () {
const schema = Joi.object({
test: Joi.objectId(),
})
const value = await schema.validateAsync({
test: new ObjectId(validObjectId),
})
expect(value.test).to.be.instanceof(ObjectId)
expect(value.test.toHexString()).to.equal(validObjectId)
})
})