{"version":3,"sources":["../test/forbidExtraProps.jsx"],"names":["describe","specialProperty","beforeEach","assertPasses","validator","element","propName","componentName","to","equal","assertFails","be","instanceOf","Error","it","TypeError","undefined","propTypes","a","b","c","result","eql","concat","not","knownProp"],"mappings":"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","sourcesContent":["import { expect } from 'chai';\nimport React from 'react';\nimport ownKeys from 'reflect.ownkeys';\n\nimport { forbidExtraProps } from '..';\n\nimport callValidator from './_callValidator';\n\ndescribe('forbidExtraProps', () => {\n let specialProperty;\n beforeEach(() => {\n [specialProperty] = ownKeys(forbidExtraProps({}));\n });\n\n function assertPasses(validator, element, propName, componentName) {\n expect(callValidator(validator, element, propName, componentName)).to.equal(null);\n }\n\n function assertFails(validator, element, propName, componentName) {\n expect(callValidator(validator, element, propName, componentName)).to.be.instanceOf(Error);\n }\n\n it('throws when the given propTypes is not an object', () => {\n expect(() => forbidExtraProps()).to.throw(TypeError);\n expect(() => forbidExtraProps(undefined)).to.throw(TypeError);\n expect(() => forbidExtraProps(null)).to.throw(TypeError);\n expect(() => forbidExtraProps('')).to.throw(TypeError);\n expect(() => forbidExtraProps(42)).to.throw(TypeError);\n expect(() => forbidExtraProps(true)).to.throw(TypeError);\n expect(() => forbidExtraProps(false)).to.throw(TypeError);\n expect(() => forbidExtraProps(() => {})).to.throw(TypeError);\n });\n\n it('throws when the given propTypes has the magic property', () => {\n expect(() => forbidExtraProps({ [specialProperty]: true })).to.throw(TypeError);\n });\n\n it('returns an object', () => {\n expect(typeof forbidExtraProps({})).to.equal('object');\n });\n\n it('adds one extra key', () => {\n const propTypes = { a: 1, b: 2, c: 3 };\n const result = forbidExtraProps(propTypes);\n expect(ownKeys(result)).to.eql(ownKeys(propTypes).concat(specialProperty));\n });\n\n it('allows for merging of propTypes that have been processed', () => {\n expect(() => forbidExtraProps(forbidExtraProps({}))).not.to.throw();\n });\n\n describe('forbid()', () => {\n const knownProp = 'a';\n\n let validator;\n beforeEach(() => {\n validator = forbidExtraProps({ [knownProp]() {} })[specialProperty];\n });\n\n it('adds a function', () => {\n expect(typeof validator).to.equal('function');\n });\n\n it('passes when given no props', () => {\n assertPasses(validator,
, specialProperty, 'Foo');\n });\n\n it('passes when given only known props', () => {\n assertPasses(validator,
, specialProperty, 'Foo');\n });\n\n it('fails when given an unknown prop', () => {\n assertFails(validator,
, specialProperty, 'Foo');\n });\n });\n});\n"],"file":"forbidExtraProps.js"}