All files / js/helpers validatemethods.js

0% Statements 0/23
0% Branches 0/26
0% Functions 0/8
0% Lines 0/23

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83                                                                                                                                                                     
import {
  nameRegexPattern,
  emailRegexPattern,
  phoneUKRegexPattern,
  postcodeUKRegexPattern,
  numberPlateRegexArray,
} from './regexpatterns.js';
 
export function validateForm(formData) {
  // validation that all fields have been completed
  if (
    !formData.firstName ||
    !formData.lastName ||
    !formData.email ||
    !formData.phone ||
    !formData.address ||
    !formData.city ||
    !formData.county ||
    !formData.postcode
  ) {
    return { valid: false, message: 'Please complete all fields.' };
  } else {
    return { valid: true };
  }
}
 
export function validateFirstName(name) {
  // validates first name
  if (!nameRegexPattern.test(name) || name.length > 30) {
    return { valid: false, message: 'Please enter a valid first name.' };
  }
  return { valid: true };
}
 
export function validateLastName(name) {
  // validates last name
  if (!nameRegexPattern.test(name) || name.length > 30) {
    return { valid: false, message: 'Please enter a valid last name.' };
  } else {
    return { valid: true };
  }
}
 
export function validateEmail(email) {
  // validates email is in correct pattern
  if (!emailRegexPattern.test(email)) {
    return { valid: false, message: 'Please enter a valid email address.' };
  } else {
    return { valid: true };
  }
}
 
export function validatePhone(phone) {
  // validates phone number
  if (!phoneUKRegexPattern.test(phone)) {
    return { valid: false, message: 'Please enter a valid UK phone number.' };
  } else {
    return { valid: true };
  }
}
 
export function validatePostcode(postcode) {
  if (!postcodeUKRegexPattern.test(postcode)) {
    return { valid: false, message: 'Please enter a valid UK postcode.' };
  } else {
    return { valid: true };
  }
}
 
export function validateNumberPlate(regNumber) {
  // Test entered reg number against array
  const matchesAny = numberPlateRegexArray.some((regex) =>
    regex.test(regNumber)
  );
 
  // reject if a string has been entered and no regex match is found
  if (!matchesAny) {
    return { valid: false, message: 'Not a valid UK number plate' };
  } else {
    return { valid: true };
  }
}