import { expect } from 'chai'; import React from 'react'; import { uniqueArray } from '..'; import callValidator from './_callValidator'; describe('uniqueArray', () => { it('returns a function', () => { expect(typeof uniqueArray()).to.equal('function'); }); function assertPasses(validator, element, propName) { expect(callValidator(validator, element, propName, '"uniqueArray" test')).to.equal(null); } function assertFails(validator, element, propName) { expect(callValidator(validator, element, propName, '"uniqueArray" test')).to.be.instanceOf(Error); } it('requires an array', () => assertFails( uniqueArray(), (
), 'foo', )); it('is not required by default', () => assertPasses( uniqueArray(), (
), 'missing', )); it('is required with .isRequired', () => assertFails( uniqueArray().isRequired, (
), 'missing', )); it('enforces uniqueness', () => { assertFails( uniqueArray(), (
), 'foo', ); assertPasses( uniqueArray(), (
), 'foo', ); }); it('enforces uniqueness of objects too', () => { const arr = [1]; assertFails( uniqueArray(), (
), 'foo', ); assertPasses( uniqueArray(), (
), 'foo', ); }); });