|
8 | 8 | // Requirements
|
9 | 9 | // ------------------------------------------------------------------------------
|
10 | 10 |
|
| 11 | +const semver = require('semver') |
11 | 12 | const rule = require('../../../lib/rules/prop-name-casing')
|
12 | 13 | const RuleTester = require('eslint').RuleTester
|
13 | 14 |
|
@@ -322,6 +323,44 @@ ruleTester.run('prop-name-casing', rule, {
|
322 | 323 | `,
|
323 | 324 | options: ['snake_case'],
|
324 | 325 | parserOptions
|
| 326 | + }, |
| 327 | + { |
| 328 | + filename: 'test.vue', |
| 329 | + code: ` |
| 330 | + <script setup> |
| 331 | + defineProps({ |
| 332 | + greetingText: String |
| 333 | + }) |
| 334 | + </script> |
| 335 | + `, |
| 336 | + parser: require.resolve('vue-eslint-parser'), |
| 337 | + parserOptions |
| 338 | + }, |
| 339 | + { |
| 340 | + filename: 'test.vue', |
| 341 | + code: ` |
| 342 | + <script setup> |
| 343 | + defineProps(['greetingText']) |
| 344 | + </script> |
| 345 | + `, |
| 346 | + parser: require.resolve('vue-eslint-parser'), |
| 347 | + parserOptions |
| 348 | + }, |
| 349 | + { |
| 350 | + filename: 'test.vue', |
| 351 | + code: ` |
| 352 | + <script setup lang="ts"> |
| 353 | + interface Props { |
| 354 | + greetingText: number |
| 355 | + } |
| 356 | + defineProps<Props>() |
| 357 | + </script> |
| 358 | + `, |
| 359 | + parser: require.resolve('vue-eslint-parser'), |
| 360 | + parserOptions: { |
| 361 | + ...parserOptions, |
| 362 | + parser: require.resolve('@typescript-eslint/parser') |
| 363 | + } |
325 | 364 | }
|
326 | 365 | ],
|
327 | 366 |
|
@@ -580,6 +619,69 @@ ruleTester.run('prop-name-casing', rule, {
|
580 | 619 | `,
|
581 | 620 | parserOptions,
|
582 | 621 | errors: ['Prop "/greeting-text/" is not in camelCase.']
|
583 |
| - } |
| 622 | + }, |
| 623 | + { |
| 624 | + filename: 'test.vue', |
| 625 | + code: ` |
| 626 | + <script setup> |
| 627 | + defineProps({ |
| 628 | + greeting_text: String |
| 629 | + }) |
| 630 | + </script> |
| 631 | + `, |
| 632 | + parser: require.resolve('vue-eslint-parser'), |
| 633 | + parserOptions, |
| 634 | + errors: [ |
| 635 | + { |
| 636 | + message: 'Prop "greeting_text" is not in camelCase.', |
| 637 | + line: 4 |
| 638 | + } |
| 639 | + ] |
| 640 | + }, |
| 641 | + { |
| 642 | + filename: 'test.vue', |
| 643 | + code: ` |
| 644 | + <script setup> |
| 645 | + defineProps(['greeting_text']) |
| 646 | + </script> |
| 647 | + `, |
| 648 | + parser: require.resolve('vue-eslint-parser'), |
| 649 | + parserOptions, |
| 650 | + errors: [ |
| 651 | + { |
| 652 | + message: 'Prop "greeting_text" is not in camelCase.', |
| 653 | + line: 3 |
| 654 | + } |
| 655 | + ] |
| 656 | + }, |
| 657 | + ...(semver.lt( |
| 658 | + require('@typescript-eslint/parser/package.json').version, |
| 659 | + '4.0.0' |
| 660 | + ) |
| 661 | + ? [] |
| 662 | + : [ |
| 663 | + { |
| 664 | + filename: 'test.vue', |
| 665 | + code: ` |
| 666 | + <script setup lang="ts"> |
| 667 | + interface Props { |
| 668 | + greeting_text: number |
| 669 | + } |
| 670 | + defineProps<Props>() |
| 671 | + </script> |
| 672 | + `, |
| 673 | + parser: require.resolve('vue-eslint-parser'), |
| 674 | + parserOptions: { |
| 675 | + ...parserOptions, |
| 676 | + parser: require.resolve('@typescript-eslint/parser') |
| 677 | + }, |
| 678 | + errors: [ |
| 679 | + { |
| 680 | + message: 'Prop "greeting_text" is not in camelCase.', |
| 681 | + line: 4 |
| 682 | + } |
| 683 | + ] |
| 684 | + } |
| 685 | + ]) |
584 | 686 | ]
|
585 | 687 | })
|
0 commit comments