UNPKG

37.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/__test__/Media.test.tsx"],"names":["config","breakpoints","small","medium","large","interactions","hover","Media","MediaContextProvider","createMediaStyle","SortedBreakpoints","findBreakpointAtWidth","findBreakpointsForWidths","valuesWithBreakpointProps","mediaQueries","MediaQueries","describe","it","expect","toEqual","undefined","greaterThanOrEqual","at","between","beforeEach","afterEach","window","matchMedia","errorLogger","global","console","error","warnLogger","warn","jest","fn","renderer","create","toThrow","toJSON","toHaveBeenCalled","query","type","toHaveStyleRule","props","className","toContain","media","xit","_","renderChildren","root","findAllByType","map","div","children","filter","Boolean","Object","entries","breakpoint","interaction","forEach","mediaQuery","mockCurrentDynamicBreakpoint","length","findByProps","not","toBeNull","done","spy","spyOn","App","container","document","createElement","body","appendChild","innerHTML","ReactDOMServer","renderToString","ReactDOM","hydrate","find","e","includes","suppressHydrationWarning","xdescribe","key","dynamicResponsiveMediaQueries","matches","addListener","removeListener"],"mappings":"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","sourcesContent":["import \"jest-styled-components\"\n\nimport React from \"react\"\nimport renderer, { ReactTestRendererJSON } from \"react-test-renderer\"\nimport { injectGlobal } from \"styled-components\"\nimport { createMedia } from \"../Media\"\nimport { MediaQueries } from \"../MediaQueries\"\nimport ReactDOMServer from \"react-dom/server\"\nimport ReactDOM from \"react-dom\"\n\nconst config = {\n breakpoints: {\n \"extra-small\": 0,\n small: 768,\n medium: 1024,\n large: 1120,\n },\n interactions: {\n hover: `not all and (hover:hover)`,\n },\n}\n\nconst {\n Media,\n MediaContextProvider,\n createMediaStyle,\n SortedBreakpoints,\n findBreakpointAtWidth,\n findBreakpointsForWidths,\n valuesWithBreakpointProps,\n} = createMedia(config)\n\nconst mediaQueries = new MediaQueries(config.breakpoints, config.interactions)\n\ndescribe(\"utilities\", () => {\n it(\"returns a list of breakpoints sorted from small to large\", () => {\n expect(SortedBreakpoints).toEqual([\n \"extra-small\",\n \"small\",\n \"medium\",\n \"large\",\n ])\n })\n\n it(\"returns the breakpoint that supports the given width\", () => {\n expect(findBreakpointAtWidth(-42)).toEqual(undefined)\n expect(findBreakpointAtWidth(42)).toEqual(\"extra-small\")\n expect(findBreakpointAtWidth(767)).toEqual(\"extra-small\")\n expect(findBreakpointAtWidth(768)).toEqual(\"small\")\n expect(findBreakpointAtWidth(1042)).toEqual(\"medium\")\n expect(findBreakpointAtWidth(9999)).toEqual(\"large\")\n })\n\n it(\"returns the breakpoints from the first through the last given widths\", () => {\n expect(findBreakpointsForWidths(-42, -21)).toEqual(undefined)\n expect(findBreakpointsForWidths(42, 767)).toEqual([\"extra-small\"])\n expect(findBreakpointsForWidths(42, 768)).toEqual([\"extra-small\", \"small\"])\n expect(findBreakpointsForWidths(42, 1042)).toEqual([\n \"extra-small\",\n \"small\",\n \"medium\",\n ])\n expect(findBreakpointsForWidths(768, 9999)).toEqual([\n \"small\",\n \"medium\",\n \"large\",\n ])\n })\n\n it(\"maps a list of responsive values to breakpoint props\", () => {\n expect(valuesWithBreakpointProps([1])).toEqual([\n [1, { greaterThanOrEqual: \"extra-small\" }],\n ])\n expect(valuesWithBreakpointProps([1, 2])).toEqual([\n [1, { at: \"extra-small\" }],\n [2, { greaterThanOrEqual: \"small\" }],\n ])\n expect(valuesWithBreakpointProps([1, 2, 2, 3])).toEqual([\n [1, { at: \"extra-small\" }],\n [2, { between: [\"small\", \"large\"] }],\n [3, { greaterThanOrEqual: \"large\" }],\n ])\n expect(valuesWithBreakpointProps([2, 2, 2, 3])).toEqual([\n [2, { between: [\"extra-small\", \"large\"] }],\n [3, { greaterThanOrEqual: \"large\" }],\n ])\n })\n})\n\ndescribe(\"Media\", () => {\n beforeEach(() => {\n injectGlobal`\n ${createMediaStyle()}\n `\n })\n\n afterEach(() => {\n window.matchMedia = undefined\n })\n\n describe(\"concerning errors and warnings\", () => {\n const errorLogger = global.console.error\n const warnLogger = global.console.warn\n\n afterEach(() => {\n global.console.error = errorLogger\n global.console.warn = warnLogger\n })\n\n it(\"throws when trying to use mutually exclusive props\", () => {\n global.console.error = jest.fn()\n expect(() => {\n renderer.create(\n <Media lessThan=\"small\" at=\"extra-small\">\n ohai\n </Media>\n )\n }).toThrow()\n })\n\n it(\"warns when using `at` in conjunction with the largest breakpoint\", () => {\n global.console.warn = jest.fn()\n renderer.create(<Media at=\"large\">ohai</Media>).toJSON()\n expect(global.console.warn).toHaveBeenCalled()\n })\n })\n\n describe(\"concerning styling\", () => {\n it(\"doesn’t add any size to the layout\", () => {\n const query = renderer\n .create(<Media lessThan=\"small\">ohai</Media>)\n .toJSON()\n expect(query.type).toEqual(\"div\")\n expect(query).toHaveStyleRule(\"margin\", \"0\")\n expect(query).toHaveStyleRule(\"padding\", \"0\")\n })\n\n it(\"applies additional classNames passed as props\", () => {\n const query = renderer\n .create(\n <Media lessThan=\"small\" className=\"foo\">\n ohai\n </Media>\n )\n .toJSON()\n expect(query.props.className).toContain(\"foo\")\n })\n })\n\n describe(\"concerning breakpoints\", () => {\n it(\"creates a container that will only display when the page size is less than the specified breakpoint\", () => {\n const query = renderer\n .create(<Media lessThan=\"small\">ohai</Media>)\n .toJSON()\n expect(query.type).toEqual(\"div\")\n expect(query).toHaveStyleRule(\"display\", \"none!important\", {\n media: \"not all and (max-width:767px)\",\n })\n })\n\n it(\"creates a container that will only display when the page size is greater than or equal to the next breakpoint of the specified breakpoint\", () => {\n const query = renderer\n .create(<Media greaterThan=\"medium\">ohai</Media>)\n .toJSON()\n expect(query.type).toEqual(\"div\")\n expect(query).toHaveStyleRule(\"display\", \"none!important\", {\n media: \"not all and (min-width:1120px)\",\n })\n })\n\n it(\"creates a container that will only display when the page size is greater than or equal to the specified breakpoint\", () => {\n const query = renderer\n .create(<Media greaterThanOrEqual=\"medium\">ohai</Media>)\n .toJSON()\n expect(query.type).toEqual(\"div\")\n expect(query).toHaveStyleRule(\"display\", \"none!important\", {\n media: \"not all and (min-width:1024px)\",\n })\n })\n\n it(\"creates a container that will only display when the page size is between the specified breakpoints\", () => {\n const query = renderer\n .create(<Media between={[\"small\", \"large\"]}>ohai</Media>)\n .toJSON()\n expect(query.type).toEqual(\"div\")\n expect(query).toHaveStyleRule(\"display\", \"none!important\", {\n media: \"not all and (min-width:768px) and (max-width:1119px)\",\n })\n })\n\n describe(\"concerning shortcuts\", () => {\n // FIXME: styled-components reconciliation issues. Output is right yet the\n // generated classNames don't match\n xit(\"creates a container that will only display when the page size is between the specified breakpoint and the next one\", () => {\n expect(\n renderer.create(<Media at=\"extra-small\">ohai</Media>).toJSON()\n ).toEqual(\n renderer\n .create(<Media between={[\"extra-small\", \"small\"]}>ohai</Media>)\n .toJSON()\n )\n expect(\n renderer.create(<Media at=\"small\">ohai</Media>).toJSON()\n ).toEqual(\n renderer\n .create(<Media between={[\"small\", \"medium\"]}>ohai</Media>)\n .toJSON()\n )\n expect(\n renderer.create(<Media at=\"medium\">ohai</Media>).toJSON()\n ).toEqual(\n renderer\n .create(<Media between={[\"medium\", \"large\"]}>ohai</Media>)\n .toJSON()\n )\n expect(\n renderer.create(<Media at=\"large\">ohai</Media>).toJSON()\n ).toEqual(\n renderer\n .create(<Media greaterThanOrEqual=\"large\">ohai</Media>)\n .toJSON()\n )\n })\n })\n })\n\n describe(\"concerning interactions\", () => {\n it(\"creates a container that will only display when the interaction media query matches\", () => {\n const query = renderer\n .create(<Media interaction=\"hover\">ohai</Media>)\n .toJSON()\n expect(query.type).toEqual(\"div\")\n expect(query).toHaveStyleRule(\"display\", \"none!important\", {\n media: \"not all and (hover:hover)\",\n })\n })\n })\n\n describe(\"with a render prop\", () => {\n it(\"yields the class name so it can be applied to another element\", () => {\n const query = renderer\n .create(\n <Media lessThan=\"small\">\n {className => <span className={className}>ohai</span>}\n </Media>\n )\n .toJSON()\n expect(query.type).toEqual(\"span\")\n expect(query).toHaveStyleRule(\"display\", \"none!important\", {\n media: \"not all and (max-width:767px)\",\n })\n })\n\n it(\"yields wether or not the element’s children should be rendered\", () => {\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"extra-small\", \"small\"]}>\n <Media at=\"extra-small\">\n {(_, renderChildren) => (\n <span>{renderChildren && \"extra-small\"}</span>\n )}\n </Media>\n <Media at=\"small\">\n {(_, renderChildren) => <span>{renderChildren && \"small\"}</span>}\n </Media>\n <Media at=\"medium\">\n {(_, renderChildren) => <span>{renderChildren && \"medium\"}</span>}\n </Media>\n </MediaContextProvider>\n )\n expect(\n query.root\n .findAllByType(\"span\")\n .map(div => div.props.children)\n .filter(Boolean)\n ).toEqual([\"extra-small\", \"small\"])\n })\n })\n\n describe(\"with a context\", () => {\n it(\"renders only matching `at` breakpoints\", () => {\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"extra-small\", \"small\"]}>\n <Media at=\"extra-small\">extra-small</Media>\n <Media at=\"small\">small</Media>\n <Media at=\"medium\">medium</Media>\n </MediaContextProvider>\n )\n expect(\n query.root\n .findAllByType(\"div\")\n .map(div => div.props.children)\n .filter(Boolean)\n ).toEqual([\"extra-small\", \"small\"])\n })\n\n it(\"renders only matching `lessThan` breakpoints\", () => {\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"small\", \"medium\"]}>\n <Media lessThan=\"small\">extra-small</Media>\n <Media lessThan=\"medium\">small</Media>\n <Media lessThan=\"large\">medium</Media>\n </MediaContextProvider>\n )\n expect(\n query.root\n .findAllByType(\"div\")\n .map(div => div.props.children)\n .filter(Boolean)\n ).toEqual([\"small\", \"medium\"])\n })\n\n it(\"renders only matching `greaterThan` breakpoints\", () => {\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"small\", \"medium\"]}>\n <Media greaterThan=\"extra-small\">small</Media>\n <Media greaterThan=\"small\">medium</Media>\n <Media greaterThan=\"medium\">large</Media>\n </MediaContextProvider>\n )\n expect(\n query.root\n .findAllByType(\"div\")\n .map(div => div.props.children)\n .filter(Boolean)\n ).toEqual([\"small\", \"medium\"])\n })\n\n it(\"renders only matching `greaterThanOrEqual` breakpoints\", () => {\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"small\", \"medium\"]}>\n <Media greaterThanOrEqual=\"small\">small</Media>\n <Media greaterThanOrEqual=\"medium\">medium</Media>\n <Media greaterThanOrEqual=\"large\">large</Media>\n </MediaContextProvider>\n )\n expect(\n query.root\n .findAllByType(\"div\")\n .map(div => div.props.children)\n .filter(Boolean)\n ).toEqual([\"small\", \"medium\"])\n })\n\n it(\"renders only matching `between` breakpoints\", () => {\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"medium\", \"large\"]}>\n <Media between={[\"extra-small\", \"medium\"]}>\n extra-small - medium\n </Media>\n <Media between={[\"small\", \"large\"]}>small - large</Media>\n </MediaContextProvider>\n )\n expect(\n query.root\n .findAllByType(\"div\")\n .map(div => div.props.children)\n .filter(Boolean)\n ).toEqual([\"small - large\"])\n })\n\n it(\"renders only matching interactions\", () => {\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"hover\"]}>\n <Media interaction=\"hover\">hover</Media>\n <Media between={[\"small\", \"large\"]}>small - large</Media>\n </MediaContextProvider>\n )\n expect(\n query.root\n .findAllByType(\"div\")\n .map(div => div.props.children)\n .filter(Boolean)\n ).toEqual([\"hover\"])\n })\n\n describe(\"client-side with dynamic media query API available\", () => {\n Object.entries({\n breakpoint: \"medium\",\n interaction: \"hover\",\n }).forEach(([type, mediaQuery]) => {\n it(`only renders the current ${type} media query`, () => {\n mockCurrentDynamicBreakpoint(mediaQuery)\n\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"small\", mediaQuery as any]}>\n <Media at=\"extra-small\">\n <span className=\"extra-small\" />\n </Media>\n <Media at=\"medium\">\n <span className=\"medium\" />\n </Media>\n <Media at=\"large\">\n <span className=\"large\" />\n </Media>\n <Media interaction=\"hover\">\n <span className=\"hover\" />\n </Media>\n </MediaContextProvider>\n )\n\n expect(query.root.findAllByType(\"span\").length).toEqual(1)\n expect(\n query.root.findByProps({ className: mediaQuery })\n ).not.toBeNull()\n })\n })\n\n it(\"disables usage of dynamic API to further narrow down\", () => {\n mockCurrentDynamicBreakpoint(\"medium\")\n\n const query = renderer.create(\n <MediaContextProvider\n onlyMatch={[\"extra-small\", \"medium\", \"large\"]}\n disableDynamicMediaQueries\n >\n <Media at=\"extra-small\">\n <span className=\"extra-small\" />\n </Media>\n <Media at=\"medium\">\n <span className=\"medium\" />\n </Media>\n <Media at=\"large\">\n <span className=\"large\" />\n </Media>\n </MediaContextProvider>\n )\n\n expect(query.root.findAllByType(\"span\").length).toEqual(3)\n })\n\n it(\"does not render anything if the current breakpoint isn’t in the already narrowed down set\", () => {\n mockCurrentDynamicBreakpoint(\"large\")\n\n const query = renderer.create(\n <MediaContextProvider onlyMatch={[\"small\", \"medium\"]}>\n <Media at=\"extra-small\">\n <span className=\"extra-small\" />\n </Media>\n <Media at=\"medium\">\n <span className=\"medium\" />\n </Media>\n <Media at=\"large\">\n <span className=\"large\" />\n </Media>\n </MediaContextProvider>\n )\n\n expect(query.root.findAllByType(\"span\").length).toEqual(0)\n })\n })\n })\n\n describe(\"during hydration\", () => {\n // FIXME: Unable to reproduce this here, so we'll do a more synthetic test.\n xit(\"does not warn about Media components that do not match and are empty\", done => {\n const spy = jest.spyOn(console, \"error\")\n\n const App = () => (\n <MediaContextProvider>\n <Media at=\"extra-small\">\n <div className=\"extra-small\" />\n </Media>\n <Media at=\"medium\">\n <div className=\"medium\" />\n </Media>\n <Media greaterThanOrEqual=\"large\">\n <div className=\"large\" />\n </Media>\n </MediaContextProvider>\n )\n\n const container = document.createElement(\"div\")\n document.body.appendChild(container)\n\n mockCurrentDynamicBreakpoint(\"medium\")\n\n container.innerHTML = ReactDOMServer.renderToString(<App />)\n ReactDOM.hydrate(<App />, container, () => {\n expect(spy).not.toHaveBeenCalled()\n done()\n })\n })\n\n // This is the best we can do until we figure out a way to reproduce a\n // warning, as per above.\n it(\"does not warn about Media components that do not match and are empty\", () => {\n mockCurrentDynamicBreakpoint(\"medium\")\n\n const query = (renderer\n .create(\n <MediaContextProvider>\n <Media at=\"extra-small\">\n <span className=\"extra-small\" />\n </Media>\n <Media at=\"medium\">\n <span className=\"medium\" />\n </Media>\n <Media at=\"large\">\n <span className=\"large\" />\n </Media>\n </MediaContextProvider>\n )\n .toJSON() as any) as ReactTestRendererJSON[]\n\n expect(\n query.find(e => e.props.className.includes(\"extra-small\")).props\n .suppressHydrationWarning\n ).toEqual(true)\n expect(\n query.find(e => e.props.className.includes(\"medium\")).props\n .suppressHydrationWarning\n ).toEqual(false)\n expect(\n query.find(e => e.props.className.includes(\"large\")).props\n .suppressHydrationWarning\n ).toEqual(true)\n })\n })\n\n // TODO: This actually doesn’t make sense, I think, because if the user\n // decides to not use a provider they are opting for rendering all\n // variants. We just need to make sure to document this well.\n xdescribe(\"without a context provider\", () => {\n it(\"only renders the current breakpoint\", () => {\n mockCurrentDynamicBreakpoint(\"medium\")\n\n const query = renderer.create(\n <>\n <Media at=\"extra-small\">\n <span className=\"extra-small\" />\n </Media>\n <Media at=\"medium\">\n <span className=\"medium\" />\n </Media>\n <Media at=\"large\">\n <span className=\"large\" />\n </Media>\n </>\n )\n\n expect(query.root.findAllByType(\"span\").length).toEqual(1)\n expect(query.root.findByProps({ className: \"medium\" })).not.toBeNull()\n })\n })\n})\n\nfunction mockCurrentDynamicBreakpoint(at) {\n window.matchMedia = jest.fn(mediaQuery => {\n const key = Object.entries(mediaQueries.dynamicResponsiveMediaQueries).find(\n ([_, query]) => mediaQuery === query\n )[0]\n // Return mock object that only matches the mocked breakpoint\n return {\n matches: key === at,\n addListener: jest.fn(),\n removeListener: jest.fn(),\n }\n })\n}\n"],"file":"Media.test.js"}
\No newline at end of file