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