{"ScriptPreparationCode":"var getRandomBoolean = () =\u003E {\r\n return Math.random() \u003C 0.5;\r\n}","TestCases":[{"Name":"memoized hook","Code":"/*When writing async/deferred tests, use \u0060deferred.resolve()\u0060 to mark test as done*/\r\nconst useWithLimit = () =\u003E {\r\n const isClose = getRandomBoolean();\r\n const isLimit = getRandomBoolean();\r\n const isEnabled = getRandomBoolean();\r\n \r\n const shouldShow = React.useMemo(() =\u003E {\r\n return !isClose || (!isLimit \u0026\u0026 isEnabled)\r\n }, [isClose, isLimit, isEnabled]);\r\n\treturn {showBanner: shouldShow};\r\n}\r\nconst Hello = ({toWhat}) =\u003E {\r\n const {showBanner} = useWithLimit();\r\n return React.createElement(\u0027div\u0027, null, \u0060Hello ${toWhat}\u0060);\r\n}\r\n\r\nReactDOM.render(\r\n React.createElement(Hello, {toWhat: \u0027World\u0027}, null),\r\n document.getElementById(\u0027dest\u0027)\r\n);","IsDeferred":false},{"Name":"raw hook","Code":"const useWithLimit = () =\u003E {\r\n const isClose = getRandomBoolean();\r\n const isLimit = getRandomBoolean();\r\n const isEnabled = getRandomBoolean();\r\n \r\n\treturn {showBanner: !isClose || (!isLimit \u0026\u0026 isEnabled)};\r\n}\r\nconst Hello = ({toWhat}) =\u003E {\r\n const {showBanner} = useWithLimit();\r\n return React.createElement(\u0027div\u0027, null, \u0060Hello ${toWhat}\u0060);\r\n}\r\n\r\nReactDOM.render(\r\n React.createElement(Hello, {toWhat: \u0027World\u0027}, null),\r\n document.getElementById(\u0027dest\u0027)\r\n);","IsDeferred":false}]}