{"version":3,"sources":["../test/and.jsx"],"names":["describe","it","number","nonNegativeInteger","to","equal","TypeError","undefined","RangeError","not","assertPasses","validator","element","propName","result","assertFails","be","instanceOf","Error","validatorNumber","validatorNonNegative","invalidElement","prop","location","eql","actual","expected","name","message","isRequired"],"mappings":"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","sourcesContent":["import { expect } from 'chai';\nimport { number } from 'prop-types';\nimport React from 'react';\n\nimport { and, nonNegativeInteger } from '..';\n\nimport callValidator from './_callValidator';\n\ndescribe('and', () => {\n it('returns a function', () => {\n expect(typeof and([number, nonNegativeInteger])).to.equal('function');\n });\n\n it('throws on non-array input', () => {\n expect(() => and()).to.throw(TypeError);\n expect(() => and(null)).to.throw(TypeError);\n expect(() => and(undefined)).to.throw(TypeError);\n expect(() => and({})).to.throw(TypeError);\n expect(() => and(() => {})).to.throw(TypeError);\n expect(() => and(true)).to.throw(TypeError);\n expect(() => and(42)).to.throw(TypeError);\n expect(() => and('')).to.throw(TypeError);\n });\n\n it('requires at least 2 validators', () => {\n expect(() => and([])).to.throw(RangeError);\n expect(() => and([() => {}])).to.throw(RangeError);\n expect(() => and([() => {}, () => {}])).not.to.throw();\n });\n\n function assertPasses(validator, element, propName) {\n const result = callValidator(validator, element, propName, '\"and\" test');\n expect(result).to.equal(null);\n }\n\n function assertFails(validator, element, propName) {\n const result = callValidator(validator, element, propName, '\"and\" test');\n expect(result).to.be.instanceOf(Error);\n }\n\n describe('validates both propTypes', () => {\n it('passes when expected', () => {\n const validatorNumber = and([number, nonNegativeInteger]);\n const validatorNonNegative = and([nonNegativeInteger, number]);\n\n assertPasses(validatorNumber, (
), 'a');\n assertPasses(validatorNonNegative, (
), 'a');\n });\n\n it('fails when expected', () => {\n const validatorNumber = and([number, nonNegativeInteger]);\n const validatorNonNegative = and([nonNegativeInteger, number]);\n const invalidElement = (
);\n const prop = 'a';\n\n assertFails(validatorNumber, invalidElement, prop);\n assertFails(validatorNonNegative, invalidElement, prop);\n });\n\n it('fails in the right order', () => {\n const invalidElement = (
);\n const prop = 'a';\n const location = 'testing \"and\"';\n\n expect(callValidator(\n and([number, nonNegativeInteger]),\n invalidElement,\n prop,\n location,\n )).to.eql(callValidator(number, invalidElement, prop, location));\n\n const actual = callValidator(\n and([nonNegativeInteger, number]),\n invalidElement,\n prop,\n location,\n );\n const expected = callValidator(nonNegativeInteger, invalidElement, prop, location);\n expect(typeof actual).to.equal(typeof expected);\n expect(actual.name).to.equal(expected.name);\n expect(actual.message).to.equal(expected.message);\n });\n });\n\n describe('isRequired', () => {\n it('passes if not required', () => {\n const validatorNumber = and([number, nonNegativeInteger]);\n assertPasses(validatorNumber, (
), 'a');\n });\n\n it('fails if overarching one is required', () => {\n const validatorNumber = and([number, nonNegativeInteger]).isRequired;\n assertFails(validatorNumber, (
), 'a');\n });\n\n it('fails if an individual validator is required', () => {\n const validatorNumber = and([number, nonNegativeInteger.isRequired]);\n assertFails(validatorNumber, (
), 'a');\n });\n });\n});\n"],"file":"and.js"}