{"version":3,"sources":["../test/mutuallyExclusiveTrueProps.jsx"],"names":["describe","it","to","TypeError","equal","assertPasses","validator","element","propName","assertFails","be","instanceOf","Error","prop1","prop2","isRequired","undefined"],"mappings":"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","sourcesContent":["import { expect } from 'chai';\nimport React from 'react';\n\nimport { mutuallyExclusiveTrueProps } from '..';\n\nimport callValidator from './_callValidator';\n\ndescribe('mutuallyExclusiveTrueProps', () => {\n it('throws when given non-strings', () => {\n expect(() => mutuallyExclusiveTrueProps()).to.throw(TypeError);\n expect(() => mutuallyExclusiveTrueProps(null)).to.throw(TypeError);\n expect(() => mutuallyExclusiveTrueProps({})).to.throw(TypeError);\n expect(() => mutuallyExclusiveTrueProps([])).to.throw(TypeError);\n });\n\n it('throws when given 0 props', () => {\n expect(() => mutuallyExclusiveTrueProps()).to.throw(TypeError);\n });\n\n it('returns a function', () => {\n expect(typeof mutuallyExclusiveTrueProps('a', 'b')).to.equal('function');\n });\n\n function assertPasses(validator, element, propName) {\n expect(callValidator(validator, element, propName)).to.equal(null);\n }\n\n function assertFails(validator, element, propName) {\n expect(callValidator(validator, element, propName)).to.be.instanceOf(Error);\n }\n\n it('passes with one mutually exclusive prop', () => {\n assertPasses(\n mutuallyExclusiveTrueProps('b'),\n (
),\n 'a',\n );\n assertPasses(\n mutuallyExclusiveTrueProps('a'),\n (
),\n 'b',\n );\n });\n\n it('passes when mutually exclusive props are not both provided', () => {\n const prop1 = 'foo';\n const prop2 = 'bar';\n const validator = mutuallyExclusiveTrueProps(prop1, prop2);\n\n assertPasses(validator,
, 'a');\n assertPasses(validator.isRequired,
, 'a');\n\n assertPasses(validator,
, prop1);\n assertPasses(validator.isRequired,
, prop1);\n\n assertPasses(validator,
, prop2);\n assertPasses(validator.isRequired,
, prop2);\n });\n\n it('fails when the provided propType fails', () => {\n const prop1 = 'foo';\n const prop2 = 'bar';\n const validator = mutuallyExclusiveTrueProps(prop1, prop2);\n\n assertFails(validator,
, prop1);\n assertFails(validator.isRequired,
, prop1);\n\n assertFails(validator,
, prop2);\n assertFails(validator.isRequired,
, prop2);\n });\n\n it('fails when mutually exclusive props are provided', () => {\n const prop1 = 'foo';\n const prop2 = 'bar';\n const validator = mutuallyExclusiveTrueProps(prop1, prop2);\n\n assertFails(validator,
, prop1);\n assertFails(validator.isRequired,
, prop1);\n\n assertFails(validator,
, prop2);\n assertFails(validator.isRequired,
, prop2);\n });\n\n it('passes when one of the exclusive props is null/undefined', () => {\n const prop1 = 'foo';\n const prop2 = 'bar';\n const validator = mutuallyExclusiveTrueProps(prop1, prop2);\n\n assertPasses(validator, (
), prop1);\n assertPasses(validator, (
), prop2);\n assertPasses(validator, (
), prop1);\n assertPasses(validator, (
), prop2);\n });\n\n it('fails when required, and one of the exclusive props is null/undefined', () => {\n const prop1 = 'foo';\n const prop2 = 'bar';\n const validator = mutuallyExclusiveTrueProps(prop1, prop2).isRequired;\n\n assertFails(validator, (
), prop2);\n assertFails(validator, (
), prop1);\n assertFails(validator, (
), prop2);\n assertFails(validator, (
), prop1);\n });\n});\n"],"file":"mutuallyExclusiveTrueProps.js"}