feat: Introduce toRequireProperty custom assertion

This commit is contained in:
Faruk AYDIN
2024-09-23 16:16:13 +03:00
parent 09b2b7350c
commit cbfb5dd8a6
3 changed files with 40 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
import { ValidationError } from 'objection';
export const toRequireProperty = async (model, requiredProperty) => {
try {
await model.query().insert({});
} catch (error) {
if (
error instanceof ValidationError &&
error.message.includes(
`${requiredProperty}: must have required property '${requiredProperty}'`
)
) {
return {
pass: true,
message: () =>
`Expected ${requiredProperty} to be required, and it was.`,
};
} else {
return {
pass: false,
message: () =>
`Expected ${requiredProperty} to be required, but it was not found in the error message.`,
};
}
}
return {
pass: false,
message: () =>
`Expected ${requiredProperty} to be required, but no ValidationError was thrown.`,
};
};