Files
Verso/services/web/test/unit/src/infrastructure/ValidationTests.js
T
Tim DownandCopybot 473e74ecf1 Merge pull request #16749 from overleaf/td-upgrade-joi-celebrate
Upgrade Joi and Celebrate to latest

GitOrigin-RevId: 287130f6e476c04f9eb4efdf202729452b081c40
2024-02-05 09:04:16 +00:00

48 lines
1.2 KiB
JavaScript

const { Joi } = require('../../../../app/src/infrastructure/Validation')
const { ObjectId } = require('mongodb')
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)
})
})