{"version":3,"sources":["../test/elementType.jsx"],"names":["SFC","Component","React","describe","it","to","equal","TypeError","undefined","assertPasses","validator","element","propName","componentName","assertFails","be","instanceOf","Error","isRequired","forwardRef","skip","MyForwardRef","props","ref","createContext","Provider","Consumer"],"mappings":"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","sourcesContent":["import { expect } from 'chai';\nimport React from 'react';\n\nimport { elementType } from '..';\n\nimport callValidator from './_callValidator';\n\nfunction SFC() {}\nclass Component extends React.Component {} // eslint-disable-line react/prefer-stateless-function\n\ndescribe('elementType', () => {\n it('returns a function', () => {\n expect(typeof elementType('')).to.equal('function');\n });\n\n it('throws on an invalid type', () => {\n expect(() => elementType()).to.throw(TypeError);\n expect(() => elementType(null)).to.throw(TypeError);\n expect(() => elementType(undefined)).to.throw(TypeError);\n expect(() => elementType(42)).to.throw(TypeError);\n expect(() => elementType(true)).to.throw(TypeError);\n expect(() => elementType([])).to.throw(TypeError);\n expect(() => elementType({})).to.throw(TypeError);\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 describe('a single child', () => {\n it('passes with a DOM element', () => assertPasses(\n elementType('span'),\n (
),\n 'children',\n 'span!',\n ));\n\n it('passes with an SFC', () => assertPasses(\n elementType(SFC),\n (
),\n 'children',\n 'SFC!',\n ));\n\n it('passes with a Component', () => assertPasses(\n elementType(Component),\n (
),\n 'children',\n 'Component!',\n ));\n\n it('fails expecting a DOM element', () => assertFails(\n elementType('span'),\n (
No way.
),\n 'children',\n 'span!',\n ));\n\n it('fails expecting an SFC', () => assertFails(\n elementType(SFC),\n (
No way.
),\n 'children',\n 'SFC!',\n ));\n\n it('fails expecting a Component', () => assertFails(\n elementType(Component),\n (
No way.
),\n 'children',\n 'Component!',\n ));\n });\n\n describe('a prop', () => {\n it('passes expecting a DOM element', () => assertPasses(\n elementType('span'),\n (
} />),\n 'a',\n 'span!',\n ));\n\n it('passes expecting an SFC', () => assertPasses(\n elementType(SFC),\n (
} />),\n 'a',\n 'SFC!',\n ));\n\n it('passes expecting a Component', () => assertPasses(\n elementType(Component),\n (
} />),\n 'a',\n 'Component!',\n ));\n\n it('fails expecting a DOM element', () => assertFails(\n elementType('span'),\n (
No way.} />),\n 'a',\n 'span!',\n ));\n\n it('fails expecting an SFC', () => assertFails(\n elementType(SFC),\n (
No way.} />),\n 'a',\n 'SFC!',\n ));\n\n it('fails expecting a Component', () => assertFails(\n elementType(Component),\n (
No way.} />),\n 'a',\n 'Component!',\n ));\n });\n\n describe('*', () => {\n it('allows a DOM element as a child', () => assertPasses(\n elementType('*'),\n (
),\n 'children',\n 'span!',\n ));\n\n it('allows a DOM element as a prop', () => assertPasses(\n elementType('*'),\n (
} />),\n 'a',\n 'span!',\n ));\n\n it('allows a Component as a child', () => assertPasses(\n elementType('*'),\n (
),\n 'children',\n 'Component!',\n ));\n\n it('allows a Component as a prop', () => assertPasses(\n elementType('*'),\n (
} />),\n 'a',\n 'Component!',\n ));\n\n it('allows an SFC as a child', () => assertPasses(\n elementType('*'),\n (
),\n 'children',\n 'SFC!',\n ));\n\n it('allows an SFC as a prop', () => assertPasses(\n elementType('*'),\n (
} />),\n 'a',\n 'SFC!',\n ));\n\n describe('with a nonelement child', () => {\n it('fails with a string', () => assertFails(\n elementType('*'),\n (
foo
),\n 'children',\n 'string',\n ));\n\n it('fails with a number', () => assertFails(\n elementType('*'),\n (
{3}
),\n 'children',\n 'number',\n ));\n\n it('fails with true', () => assertFails(\n elementType('*'),\n (
{true}
),\n 'children',\n 'true',\n ));\n\n it('fails with false', () => assertFails(\n elementType('*'),\n (
{false}
),\n 'children',\n 'false',\n ));\n\n it('fails with an array', () => assertFails(\n elementType('*'),\n (
{[]}
),\n 'children',\n 'array',\n ));\n });\n\n describe('with a nonelement prop', () => {\n it('passes with undefined', () => assertPasses(\n elementType('*'),\n (
),\n 'a',\n 'undefined',\n ));\n\n it('fails with undefined when required', () => assertFails(\n elementType('*').isRequired,\n (
),\n 'a',\n 'undefined required',\n ));\n\n it('passes with null', () => {\n assertPasses(\n elementType('*'),\n (
),\n 'a',\n 'null *',\n );\n assertPasses(\n elementType('span'),\n (
),\n 'a',\n 'null span',\n );\n });\n\n it('fails with null when required', () => {\n assertFails(\n elementType('*').isRequired,\n (
),\n 'a',\n 'null required *',\n );\n assertFails(\n elementType('span').isRequired,\n (
),\n 'a',\n 'null required span',\n );\n });\n\n it('fails with a string', () => assertFails(\n elementType('*'),\n (
),\n 'a',\n 'string',\n ));\n\n it('fails with a number', () => assertFails(\n elementType('*'),\n (
),\n 'a',\n 'number',\n ));\n\n it('fails with true', () => assertFails(\n elementType('*'),\n (
),\n 'a',\n 'true',\n ));\n\n it('fails with false', () => assertFails(\n elementType('*'),\n (
),\n 'a',\n 'false',\n ));\n\n it('fails with an array', () => assertFails(\n elementType('*'),\n (
),\n 'a',\n 'array',\n ));\n });\n\n (React.forwardRef ? describe : describe.skip)('React.forwardRef', () => {\n const MyForwardRef = React.forwardRef && React.forwardRef((props, ref) =>
);\n\n it('passes with * and a forwardRef', () => assertPasses(\n elementType('*'),\n (
} />),\n 'a',\n '* + forwardRef',\n ));\n\n it('passes with matching forwardRef', () => assertPasses(\n elementType(MyForwardRef),\n (
} />),\n 'a',\n 'forwardRef + forwardRef',\n ));\n\n it('fails with a string and a forwardRef', () => assertFails(\n elementType('div'),\n (
} />),\n 'a',\n 'div + forwardRef',\n ));\n });\n\n (React.createContext ? describe : describe.skip)('React.createContext', () => {\n const { Provider, Consumer } = React.createContext ? React.createContext('test') : {};\n\n it('passes with * and a Provider', () => assertPasses(\n elementType('*'),\n (
} />),\n 'a',\n '* + Provider',\n ));\n\n it('passes with * and a Consumer', () => assertPasses(\n elementType('*'),\n (
} />),\n 'a',\n '* + Consumer',\n ));\n\n it('passes with matching Provider', () => assertPasses(\n elementType(Provider),\n (
} />),\n 'a',\n 'Provider + Provider',\n ));\n\n it('passes with matching Consumer', () => assertPasses(\n elementType(Consumer),\n (
} />),\n 'a',\n 'Consumer + Consumer',\n ));\n\n it('fails with a string and a Provider', () => assertFails(\n elementType('div'),\n (
} />),\n 'a',\n 'div + Provider',\n ));\n\n it('fails with a string and a Consumer', () => assertFails(\n elementType('div'),\n (
} />),\n 'a',\n 'div + Consumer',\n ));\n });\n });\n});\n"],"file":"elementType.js"}