Recently i have came across a requirement where i need to validate json string in vue form. I have written custom validator for the same. But i am not able to write jest unit test for the same.
import { Validator } from 'vee-validate'
import utils from './utils'
Validator.extend('validJson', {
// Custom validation message
getMessage: (field) => `The ${field} does not have valid json data.`,
// Custom validation rule
validate: (value) => new Promise(resolve => {
try {
const data = JSON.parse(value)
if (utils.isEmptyObject(data)) {
resolve({
valid: false
})
} else if (Array.isArray(data)) {
if (data.length === 0) {
resolve({
valid: false
})
} else {
resolve({
valid: !utils.isArrayHasEmptyObject(data)
})
}
} else {
resolve({
valid: true
})
}
} catch (e) {
resolve({
valid: false
})
}
})
})