{"version":3,"sources":["../test/withShape.jsx"],"names":["describe","it","withShape","to","equal","TypeError","undefined","NaN","f","assertPasses","validator","element","propName","assertFails","be","instanceOf","Error","number","array","length","missing","isRequired"],"mappings":"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","sourcesContent":["import { expect } from 'chai';\nimport { array, number, oneOf } from 'prop-types';\nimport React from 'react';\n\nimport { withShape, range } from '..';\n\nimport callValidator from './_callValidator';\n\ndescribe('withShape', () => {\n it('is a function', () => {\n expect(typeof withShape).to.equal('function');\n });\n\n describe('errors', () => {\n it('throws if not given a function', () => {\n expect(() => withShape()).to.throw(TypeError);\n expect(() => withShape(undefined)).to.throw(TypeError);\n expect(() => withShape(null)).to.throw(TypeError);\n expect(() => withShape([])).to.throw(TypeError);\n expect(() => withShape({})).to.throw(TypeError);\n expect(() => withShape('')).to.throw(TypeError);\n expect(() => withShape(42)).to.throw(TypeError);\n expect(() => withShape(NaN)).to.throw(TypeError);\n });\n\n it('throws if not given a shape object', () => {\n const f = () => {};\n expect(() => withShape(f)).to.throw(TypeError);\n expect(() => withShape(f, undefined)).to.throw(TypeError);\n expect(() => withShape(f, null)).to.throw(TypeError);\n expect(() => withShape(f, [])).to.throw(TypeError);\n expect(() => withShape(f, '')).to.throw(TypeError);\n expect(() => withShape(f, 42)).to.throw(TypeError);\n expect(() => withShape(f, NaN)).to.throw(TypeError);\n });\n });\n\n describe('validator', () => {\n it('returns a function', () => {\n expect(typeof withShape(() => {}, {})).to.equal('function');\n });\n\n function assertPasses(validator, element, propName) {\n expect(callValidator(validator, element, propName, '\"withShape\" test')).to.equal(null);\n }\n\n function assertFails(validator, element, propName) {\n expect(callValidator(validator, element, propName, '\"withShape\" test')).to.be.instanceOf(Error);\n }\n\n it('enforces the provided type', () => {\n assertPasses(\n withShape(number, {}),\n (
),\n 'foo',\n );\n assertFails(\n withShape(number, {}),\n (
),\n 'foo',\n );\n });\n\n it('enforces the provided shape', () => {\n assertPasses(\n withShape(array, {\n length: oneOf([2]),\n }),\n (
),\n 'foo',\n );\n assertPasses(\n withShape(array, {\n length: range(1, 4),\n }),\n (
),\n 'foo',\n );\n assertFails(\n withShape(array, {\n length: oneOf([2]),\n missing: number.isRequired,\n }),\n (
),\n 'foo',\n );\n assertFails(\n withShape(array, {\n length: oneOf([1]),\n }),\n (
),\n 'foo',\n );\n });\n });\n});\n"],"file":"withShape.js"}