diff options
author | dan <dan.abramov@gmail.com> | 2024-04-05 15:09:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-05 15:09:35 +0100 |
commit | 46c112edfdcb40681a8997ec4f47b413a08fdd14 (patch) | |
tree | 8745de3a743f9231a5151296c2df4fd6e39404e7 /eslint/__tests__/avoid-unwrapped-text.test.js | |
parent | 49266c355ea781cbd7a0b373e64143da7740c91e (diff) | |
download | voidsky-46c112edfdcb40681a8997ec4f47b413a08fdd14.tar.zst |
Enforce that text is wrapped in <Text>, remaining cases (#3421)
* Toggle.Button -> Toggle.ButtonWithText * Simplify Prompt.Cancel/Action * Move lines down for better diff * Remove ButtonWithText * Simplify types * Enforce Button/ButtonText nesting * Add suggested wrapper in linter error * Check <Trans> ancestry too * Also check literals * Rm ts-ignore
Diffstat (limited to 'eslint/__tests__/avoid-unwrapped-text.test.js')
-rw-r--r-- | eslint/__tests__/avoid-unwrapped-text.test.js | 339 |
1 files changed, 338 insertions, 1 deletions
diff --git a/eslint/__tests__/avoid-unwrapped-text.test.js b/eslint/__tests__/avoid-unwrapped-text.test.js index 7c667b4a8..a6762b8fd 100644 --- a/eslint/__tests__/avoid-unwrapped-text.test.js +++ b/eslint/__tests__/avoid-unwrapped-text.test.js @@ -199,7 +199,7 @@ describe('avoid-unwrapped-text', () => { { code: ` -<View prop={ +<View propText={ <Trans><Text>foo</Text></Trans> }> <Bar /> @@ -281,6 +281,170 @@ function MyText({ foo }) { } `, }, + + { + code: ` +<View> + <Text>{'foo'}</Text> +</View> + `, + }, + + { + code: ` +<View> + <Text>{foo + 'foo'}</Text> +</View> + `, + }, + + { + code: ` +<View> + <Text><Trans>{'foo'}</Trans></Text> +</View> + `, + }, + + { + code: ` +<View> + {foo['bar'] && <Bar />} +</View> + `, + }, + + { + code: ` +<View> + {(foo === 'bar') && <Bar />} +</View> + `, + }, + + { + code: ` +<View> + {(foo !== 'bar') && <Bar />} +</View> + `, + }, + + { + code: ` +<View> + <Text>{\`foo\`}</Text> +</View> + `, + }, + + { + code: ` +<View> + <Text><Trans>{\`foo\`}</Trans></Text> +</View> + `, + }, + + { + code: ` +<View> + <Text>{_(msg\`foo\`)}</Text> +</View> + `, + }, + + { + code: ` +<View> + <Text><Trans>{_(msg\`foo\`)}</Trans></Text> +</View> + `, + }, + + { + code: ` +<Foo> + <View prop={stuff('foo')}> + <Bar /> + </View> +</Foo> + `, + }, + + { + code: ` +<Foo> + <View onClick={() => stuff('foo')}> + <Bar /> + </View> +</Foo> + `, + }, + + { + code: ` +<View> + {renderItem('foo')} +</View> + `, + }, + + { + code: ` +<View> + {foo === 'foo' && <Bar />} +</View> + `, + }, + + { + code: ` +<View> + {foo['foo'] && <Bar />} +</View> + `, + }, + + { + code: ` +<View> + {check('foo') && <Bar />} +</View> + `, + }, + + { + code: ` +<View> + {foo.bar && <Bar />} +</View> + `, + }, + + { + code: ` +<Text> + <Trans>{renderItem('foo')}</Trans> +</Text> + `, + }, + + { + code: ` +<View> + {null} +</View> + `, + }, + + { + code: ` +<Text> + <Trans>{null}</Trans> +</Text> + `, + }, ], invalid: [ @@ -455,6 +619,179 @@ function MyText({ foo }) { `, errors: 1, }, + + { + code: ` +<View> + {'foo'} +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + {foo && 'foo'} +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{'foo'}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + {foo && <Trans>{'foo'}</Trans>} +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + {10} +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{10}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{foo + 10}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + {\`foo\`} +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{\`foo\`}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{foo + \`foo\`}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + {_(msg\`foo\`)} +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + {foo + _(msg\`foo\`)} +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{_(msg\`foo\`)}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{foo + _(msg\`foo\`)}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>foo</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans><Trans>foo</Trans></Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{foo}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View> + <Trans>{'foo'}</Trans> +</View> + `, + errors: 1, + }, + + { + code: ` +<View prop={ + <Trans><Text>foo</Text></Trans> +}> + <Bar /> +</View> + `, + errors: 1, + }, ], } |