0
votes

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
      })
    }
  })
})