{"version":3,"sources":["../test/predicate.jsx"],"names":["describe","it","to","equal","TypeError","assertPasses","validator","element","propName","assertFails","be","instanceOf","Error","undefined","isRequired","values","Infinity","forEach","x"],"mappings":"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","sourcesContent":["import { expect } from 'chai';\nimport React from 'react';\n\nimport { predicate } from '..';\n\nimport callValidator from './_callValidator';\n\ndescribe('predicate', () => {\n it('returns a function', () => {\n expect(typeof predicate(() => {})).to.equal('function');\n });\n\n it('throws when provided a non-function predicate', () => {\n expect(() => predicate()).to.throw(TypeError);\n });\n\n it('throws when provided a non-string message', () => {\n expect(() => predicate(() => {}, null)).to.throw(TypeError);\n });\n\n function assertPasses(validator, element, propName) {\n expect(callValidator(validator, element, propName, '\"predicate\" test')).to.equal(null);\n }\n\n function assertFails(validator, element, propName) {\n expect(callValidator(validator, element, propName, '\"predicate\" test')).to.be.instanceOf(Error);\n }\n\n it('passes on null/undefined', () => {\n const validator = predicate(() => false);\n\n assertPasses(validator, (
), 'foo');\n assertPasses(validator, (
), 'foo');\n });\n\n it('fails on null/undefined when required', () => {\n const validator = predicate(() => false).isRequired;\n\n assertFails(validator, (
), 'foo');\n assertFails(validator, (
), 'foo');\n });\n\n const values = [\n undefined,\n null,\n 0,\n -0,\n 42,\n Infinity,\n -Infinity,\n '',\n 'foo',\n true,\n false,\n [],\n {},\n () => {},\n ];\n\n it('fails when the predicate returns false', () => {\n const validator = predicate(() => false);\n\n values.forEach((x) => {\n if (x != null) {\n assertFails(validator, (
), 'foo');\n }\n assertFails(validator.isRequired, (
), 'foo');\n });\n });\n\n it('passes when the predicate returns true', () => {\n const validator = predicate(() => true);\n\n values.forEach((x) => {\n assertPasses(validator, (
), 'foo');\n assertPasses(validator.isRequired, (
), 'foo');\n });\n });\n\n it('passes based on the predicate', () => {\n const validator = predicate((x) => x === 2);\n\n assertPasses(validator, (
), 'foo');\n assertPasses(validator.isRequired, (
), 'foo');\n\n assertFails(validator, (
), 'foo');\n assertFails(validator.isRequired, (
), 'foo');\n });\n});\n"],"file":"predicate.js"}