All files / src/validation arrayValidation.spec.ts

100% Statements 43/43
100% Branches 10/10
100% Functions 0/0
100% Lines 43/43

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 471x   1x   1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import { test, describe, expect } from 'vitest';
 
import { maxItems, minItems } from './arrayValidation';
 
describe('Array Validation', () => {
  describe('Array min items', () => {
    test('minItems on null array', () => {
      const arr: any = null;
      const validator = minItems(1);
      expect(validator(arr).isValid).toBeFalsy();
    });
    test('minItems on empty array', () => {
      const arr: Array<any> = [];
      const validator = minItems(1);
      expect(validator(arr).isValid).toBeFalsy();
    });
    test('minItems with 1 item', () => {
      const arr: Array<any> = [{ test: 'tester' }];
      const validator = minItems(1);
      expect(validator(arr).isValid).toBeTruthy();
    });
  });
 
  describe('Array max items', () => {
    test('maxItems on null array', () => {
      const arr: any = null;
      const validator = maxItems(1);
      expect(validator(arr).isValid).toBeTruthy();
    });
    test('maxItems on empty array', () => {
      const arr: Array<any> = [];
      const validator = maxItems(1);
      expect(validator(arr).isValid).toBeTruthy();
    });
    test('maxItems 1 with 1 item', () => {
      const arr: Array<any> = [{ test: 'tester' }];
      const validator = maxItems(1);
      expect(validator(arr).isValid).toBeFalsy();
    });
    test('maxItems 2 with 1 item', () => {
      const arr: Array<any> = [{ test: 'tester' }];
      const validator = maxItems(2);
      expect(validator(arr).isValid).toBeTruthy();
    });
  });
});