Test: unknown hooks should not assert effects

This commit is contained in:
Mofei Zhang
2023-05-23 13:55:12 -04:00
parent b76ee1ab32
commit 08a8891245
4 changed files with 44 additions and 0 deletions
@@ -94,6 +94,7 @@ export async function compile(
let panicOnBailout = true;
let memoizeJsxElements = true;
let enableAssumeHooksFollowRulesOfReact = false;
let enableTreatHooksAsFunctions = false;
if (firstLine.indexOf("@forgetDirective") !== -1) {
enableOnlyOnUseForgetDirective = true;
}
@@ -124,6 +125,9 @@ export async function compile(
if (firstLine.indexOf("@enableAssumeHooksFollowRulesOfReact true") !== -1) {
enableAssumeHooksFollowRulesOfReact = true;
}
if (firstLine.indexOf("@enableTreatHooksAsFunctions true") !== -1) {
enableTreatHooksAsFunctions = true;
}
const language = parseLanguage(firstLine);
@@ -144,6 +148,7 @@ export async function compile(
enableAssumeHooksFollowRulesOfReact,
inlineUseMemo: true,
memoizeJsxElements,
enableTreatHooksAsFunctions,
},
logger: null,
gating,
@@ -0,0 +1,27 @@
## Input
```javascript
// @enableTreatHooksAsFunctions true
// (enableAssumeHooksFollowRulesOfReact=false)
function Component(props) {
const x = useUnknownHook1(props);
const y = useUnknownHook2(x);
return y;
}
```
## Code
```javascript
// @enableTreatHooksAsFunctions true
// (enableAssumeHooksFollowRulesOfReact=false)
function Component(props) {
const x = useUnknownHook1(props);
const y = useUnknownHook2(x);
return y;
}
```
@@ -0,0 +1,7 @@
// @enableTreatHooksAsFunctions true
// (enableAssumeHooksFollowRulesOfReact=false)
function Component(props) {
const x = useUnknownHook1(props);
const y = useUnknownHook2(x);
return y;
}
@@ -103,6 +103,7 @@ export default function generateTestsFromFixtures(
let panicOnBailout = true;
let memoizeJsxElements = true;
let enableAssumeHooksFollowRulesOfReact = false;
let enableTreatHooksAsFunctions = false;
if (inputFile != null) {
input = fs.readFileSync(inputFile, "utf8");
@@ -152,6 +153,9 @@ export default function generateTestsFromFixtures(
) {
enableAssumeHooksFollowRulesOfReact = true;
}
if (lines[0]!.indexOf("@enableTreatHooksAsFunctions true") !== -1) {
enableTreatHooksAsFunctions = true;
}
}
testCommand(basename, () => {
@@ -162,6 +166,7 @@ export default function generateTestsFromFixtures(
inlineUseMemo,
memoizeJsxElements,
enableAssumeHooksFollowRulesOfReact,
enableTreatHooksAsFunctions,
},
logger: null,
debug,