department-of-veterans-affairs/vets-website

View on GitHub
src/applications/appeals/testing/sc/validations/issues.js

Summary

Maintainability
B
4 hrs
Test Coverage
import { validateDate } from './date';

import errorMessages from '../../../shared/content/errorMessages';
import { MAX_LENGTH } from '../../../shared/constants';
import {
  getIssueDate,
  getIssueName,
  getSelected,
} from '../../../shared/utils/issues';
import { missingIssueName } from '../../../shared/validations/issues';

export const maxNameLength = (errors, data) => {
  if (data.length > MAX_LENGTH.ISSUE_NAME) {
    errors.addError(errorMessages.maxLength(MAX_LENGTH.ISSUE_NAME));
  }
};

export const checkIssues = (
  errors,
  _fieldData,
  formData,
  _schema,
  _uiSchema,
  _index,
  appStateData,
) => {
  const data = Object.keys(appStateData || {}).length ? appStateData : formData;
  // Only use selected in case an API loaded issues includes an invalid date
  getSelected(data).forEach(issue => {
    missingIssueName(errors, getIssueName(issue));
    validateDate(errors, getIssueDate(issue));
  });
};