@ttsc/lint 0.14.0-dev.20260529.1 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -87
- package/lib/defaultFormat.d.ts +10 -6
- package/lib/defaultFormat.js +10 -6
- package/lib/defaultFormat.js.map +1 -1
- package/lib/structures/ITtscLintConfig.d.ts +5 -5
- package/lib/structures/TtscLintRuleSetting.d.ts +19 -19
- package/lib/structures/{ITtscLintFormat.d.ts → format/ITtscLintFormat.d.ts} +45 -70
- package/lib/structures/format/ITtscLintFormat.js.map +1 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.d.ts +15 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.js +3 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.js.map +1 -0
- package/lib/structures/format/ITtscLintFormatSortImports.d.ts +54 -0
- package/lib/structures/format/ITtscLintFormatSortImports.js +3 -0
- package/lib/structures/format/ITtscLintFormatSortImports.js.map +1 -0
- package/lib/structures/format/index.d.ts +3 -0
- package/lib/structures/format/index.js +20 -0
- package/lib/structures/format/index.js.map +1 -0
- package/lib/structures/index.d.ts +1 -1
- package/lib/structures/index.js +1 -1
- package/lib/structures/index.js.map +1 -1
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +18 -27
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +4 -5
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -1
- package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +29 -33
- package/lib/structures/rules/ITtscLintContributorRules.d.ts +6 -7
- package/lib/structures/rules/ITtscLintCoreRules.d.ts +380 -408
- package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +5 -5
- package/lib/structures/rules/ITtscLintCypressRuleOptions.js +2 -2
- package/lib/structures/rules/ITtscLintCypressRules.d.ts +34 -38
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +21 -24
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +2 -2
- package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +51 -56
- package/lib/structures/rules/ITtscLintJestRules.d.ts +63 -74
- package/lib/structures/rules/ITtscLintJsdocRules.d.ts +47 -54
- package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +94 -102
- package/lib/structures/rules/ITtscLintNextjsRules.d.ts +50 -55
- package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +104 -122
- package/lib/structures/rules/ITtscLintPromiseRules.d.ts +62 -71
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +4 -4
- package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +17 -19
- package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +8 -10
- package/lib/structures/rules/ITtscLintReactRuleOptions.js +1 -2
- package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -1
- package/lib/structures/rules/ITtscLintReactRules.d.ts +91 -104
- package/lib/structures/rules/ITtscLintRegexpRules.d.ts +46 -54
- package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +7 -8
- package/lib/structures/rules/ITtscLintSecurityRules.d.ts +45 -52
- package/lib/structures/rules/ITtscLintSolidRules.d.ts +53 -56
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +3 -4
- package/lib/structures/rules/ITtscLintStorybookRules.d.ts +60 -69
- package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +31 -37
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +2 -3
- package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +102 -119
- package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +460 -518
- package/lib/structures/rules/ITtscLintVitestRules.d.ts +43 -51
- package/linthost/config.go +89 -72
- package/linthost/config_format.go +265 -99
- package/linthost/directives.go +5 -1
- package/linthost/display_width.go +72 -0
- package/linthost/fix.go +26 -1
- package/linthost/format.go +222 -25
- package/linthost/format_editor_settings.go +262 -0
- package/linthost/lsp.go +8 -4
- package/linthost/print_dispatch.go +3 -0
- package/linthost/print_doc.go +13 -0
- package/linthost/print_engine.go +68 -11
- package/linthost/print_nodes_array.go +108 -5
- package/linthost/print_nodes_call.go +515 -74
- package/linthost/print_nodes_function.go +25 -0
- package/linthost/print_nodes_imports.go +47 -14
- package/linthost/print_nodes_list.go +191 -8
- package/linthost/print_nodes_object.go +12 -6
- package/linthost/print_nodes_ternary.go +106 -0
- package/linthost/rules_boundaries.go +400 -400
- package/linthost/rules_camelcase.go +81 -81
- package/linthost/rules_complexity.go +52 -51
- package/linthost/rules_consistent_return.go +81 -81
- package/linthost/rules_core_extra.go +472 -472
- package/linthost/rules_curly.go +43 -43
- package/linthost/rules_default_case.go +15 -15
- package/linthost/rules_default_case_last.go +22 -22
- package/linthost/rules_format_arrow_parens.go +167 -0
- package/linthost/rules_format_bracket_spacing.go +117 -0
- package/linthost/rules_format_clause_join.go +172 -0
- package/linthost/rules_format_declaration_header.go +664 -0
- package/linthost/rules_format_indent.go +616 -0
- package/linthost/rules_format_jsdoc.go +4 -4
- package/linthost/rules_format_orphan_semi.go +106 -0
- package/linthost/rules_format_parameter_properties.go +175 -0
- package/linthost/rules_format_print_width.go +185 -69
- package/linthost/rules_format_quote_props.go +169 -0
- package/linthost/rules_format_quotes.go +75 -29
- package/linthost/rules_format_semi.go +185 -10
- package/linthost/rules_format_sort_imports.go +456 -121
- package/linthost/rules_format_statement_split.go +368 -0
- package/linthost/rules_format_ternary_nullish_parens.go +77 -0
- package/linthost/rules_format_trailing_comma.go +21 -2
- package/linthost/rules_format_whitespace.go +336 -0
- package/linthost/rules_functional.go +688 -688
- package/linthost/rules_gap.go +146 -11
- package/linthost/rules_grouped_accessor_pairs.go +60 -60
- package/linthost/rules_guard_for_in.go +122 -122
- package/linthost/rules_id_length.go +44 -44
- package/linthost/rules_imports.go +11 -3
- package/linthost/rules_init_declarations.go +25 -25
- package/linthost/rules_jsx_a11y.go +844 -844
- package/linthost/rules_max_classes_per_file.go +24 -24
- package/linthost/rules_max_depth.go +43 -43
- package/linthost/rules_max_lines.go +53 -53
- package/linthost/rules_max_lines_per_function.go +28 -28
- package/linthost/rules_max_nested_callbacks.go +26 -26
- package/linthost/rules_max_params.go +20 -20
- package/linthost/rules_max_statements.go +29 -29
- package/linthost/rules_nextjs.go +5 -5
- package/linthost/rules_no_else_return.go +38 -38
- package/linthost/rules_no_empty_named_blocks.go +45 -45
- package/linthost/rules_no_import_assign.go +96 -96
- package/linthost/rules_no_invalid_this.go +19 -19
- package/linthost/rules_no_loop_func.go +43 -43
- package/linthost/rules_no_magic_numbers.go +60 -60
- package/linthost/rules_no_mixed_operators.go +44 -44
- package/linthost/rules_no_param_reassign.go +64 -64
- package/linthost/rules_no_restricted_imports.go +45 -45
- package/linthost/rules_no_restricted_syntax.go +17 -17
- package/linthost/rules_no_shadow.go +112 -112
- package/linthost/rules_no_unreachable.go +36 -36
- package/linthost/rules_no_useless_assignment.go +79 -79
- package/linthost/rules_no_useless_constructor.go +167 -167
- package/linthost/rules_no_useless_return.go +28 -28
- package/linthost/rules_prefer_arrow_callback.go +74 -74
- package/linthost/rules_prefer_destructuring.go +61 -61
- package/linthost/rules_prefer_named_capture_group.go +87 -87
- package/linthost/rules_prefer_rest_params.go +61 -61
- package/linthost/rules_promise.go +800 -800
- package/linthost/rules_react.go +600 -600
- package/linthost/rules_react_extras.go +162 -162
- package/linthost/rules_react_hooks.go +2 -2
- package/linthost/rules_react_perf.go +231 -231
- package/linthost/rules_regexp.go +293 -293
- package/linthost/rules_security.go +613 -613
- package/linthost/rules_sort_imports.go +37 -37
- package/linthost/rules_sort_keys.go +88 -88
- package/linthost/rules_suggestions.go +13 -0
- package/linthost/rules_ts.go +2 -2
- package/linthost/rules_ts_async.go +247 -247
- package/linthost/rules_ts_class_literal_property_style.go +64 -64
- package/linthost/rules_ts_consistent_type_exports.go +209 -209
- package/linthost/rules_ts_explicit_function_return_type.go +35 -35
- package/linthost/rules_ts_extra.go +6 -2
- package/linthost/rules_ts_no_base_to_string.go +140 -140
- package/linthost/rules_ts_no_confusing_void.go +28 -28
- package/linthost/rules_ts_no_deprecated.go +110 -110
- package/linthost/rules_ts_no_for_in_array.go +45 -45
- package/linthost/rules_ts_no_magic_numbers.go +67 -67
- package/linthost/rules_ts_no_meaningless_void_operator.go +44 -44
- package/linthost/rules_ts_no_misused_spread.go +64 -64
- package/linthost/rules_ts_no_redundant_type_constituents.go +72 -72
- package/linthost/rules_ts_no_restricted_types.go +28 -28
- package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +87 -87
- package/linthost/rules_ts_no_unnecessary_condition.go +184 -184
- package/linthost/rules_ts_no_unnecessary_qualifier.go +72 -72
- package/linthost/rules_ts_no_unnecessary_template_expression.go +120 -120
- package/linthost/rules_ts_no_unnecessary_type_arguments.go +171 -171
- package/linthost/rules_ts_no_unnecessary_type_assertion.go +90 -90
- package/linthost/rules_ts_no_unsafe_argument.go +50 -50
- package/linthost/rules_ts_no_unsafe_assignment.go +60 -60
- package/linthost/rules_ts_no_unsafe_call.go +40 -40
- package/linthost/rules_ts_no_unsafe_enum_comparison.go +147 -147
- package/linthost/rules_ts_no_unsafe_member_access.go +29 -29
- package/linthost/rules_ts_no_unsafe_return.go +64 -64
- package/linthost/rules_ts_no_unsafe_unary_minus.go +42 -42
- package/linthost/rules_ts_no_useless_constructor.go +20 -20
- package/linthost/rules_ts_non_nullable_type_assertion_style.go +60 -60
- package/linthost/rules_ts_parameter_properties.go +10 -10
- package/linthost/rules_ts_prefer_find.go +116 -116
- package/linthost/rules_ts_prefer_includes.go +173 -173
- package/linthost/rules_ts_prefer_nullish_coalescing.go +54 -54
- package/linthost/rules_ts_prefer_optional_chain.go +156 -156
- package/linthost/rules_ts_prefer_promise_reject_errors.go +104 -104
- package/linthost/rules_ts_prefer_readonly.go +31 -31
- package/linthost/rules_ts_prefer_reduce_type_parameter.go +74 -74
- package/linthost/rules_ts_prefer_regexp_exec.go +69 -69
- package/linthost/rules_ts_prefer_return_this_type.go +79 -79
- package/linthost/rules_ts_prefer_string_starts_ends_with.go +237 -237
- package/linthost/rules_ts_promise_function_async.go +41 -41
- package/linthost/rules_ts_related_getter_setter_pairs.go +61 -61
- package/linthost/rules_ts_require_array_sort_compare.go +58 -58
- package/linthost/rules_ts_restrict_plus_operands.go +82 -82
- package/linthost/rules_ts_restrict_template_expressions.go +50 -50
- package/linthost/rules_ts_simple.go +249 -249
- package/linthost/rules_ts_sort_type_constituents.go +88 -88
- package/linthost/rules_ts_strict_boolean_expressions.go +103 -103
- package/linthost/rules_ts_switch_exhaustiveness_check.go +90 -90
- package/linthost/rules_ts_unbound_method.go +65 -65
- package/linthost/rules_tsdoc.go +88 -88
- package/linthost/rules_unicorn_better_regex.go +1 -1
- package/linthost/rules_unicorn_catch_error_name.go +19 -19
- package/linthost/rules_unicorn_consistent_assert.go +20 -20
- package/linthost/rules_unicorn_consistent_date_clone.go +27 -27
- package/linthost/rules_unicorn_consistent_destructuring.go +3 -3
- package/linthost/rules_unicorn_consistent_empty_array_spread.go +34 -34
- package/linthost/rules_unicorn_consistent_existence_index_check.go +42 -42
- package/linthost/rules_unicorn_consistent_function_scoping.go +3 -3
- package/linthost/rules_unicorn_consistent_template_literal_escape.go +3 -3
- package/linthost/rules_unicorn_custom_error_definition.go +92 -92
- package/linthost/rules_unicorn_empty_brace_spaces.go +47 -47
- package/linthost/rules_unicorn_error_message.go +34 -34
- package/linthost/rules_unicorn_escape_case.go +14 -14
- package/linthost/rules_unicorn_expiring_todo_comments.go +36 -36
- package/linthost/rules_unicorn_explicit_length_check.go +51 -51
- package/linthost/rules_unicorn_filename_case.go +1 -1
- package/linthost/rules_unicorn_import_style.go +1 -1
- package/linthost/rules_unicorn_isolated_functions.go +2 -2
- package/linthost/rules_unicorn_new_for_builtins.go +49 -49
- package/linthost/rules_unicorn_no_abusive_eslint_disable.go +31 -31
- package/linthost/rules_unicorn_no_accessor_recursion.go +69 -69
- package/linthost/rules_unicorn_no_anonymous_default_export.go +40 -40
- package/linthost/rules_unicorn_no_array_callback_reference.go +33 -33
- package/linthost/rules_unicorn_no_array_for_each.go +14 -14
- package/linthost/rules_unicorn_no_array_method_this_argument.go +29 -29
- package/linthost/rules_unicorn_no_array_reduce.go +15 -15
- package/linthost/rules_unicorn_no_array_reverse.go +17 -17
- package/linthost/rules_unicorn_no_array_sort.go +17 -17
- package/linthost/rules_unicorn_no_await_expression_member.go +12 -12
- package/linthost/rules_unicorn_no_await_in_promise_methods.go +38 -38
- package/linthost/rules_unicorn_no_console_spaces.go +30 -30
- package/linthost/rules_unicorn_no_document_cookie.go +13 -13
- package/linthost/rules_unicorn_no_empty_file.go +16 -16
- package/linthost/rules_unicorn_no_for_loop.go +58 -58
- package/linthost/rules_unicorn_no_hex_escape.go +11 -11
- package/linthost/rules_unicorn_no_immediate_mutation.go +55 -55
- package/linthost/rules_unicorn_no_instanceof_builtins.go +34 -34
- package/linthost/rules_unicorn_no_invalid_fetch_options.go +52 -52
- package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +25 -25
- package/linthost/rules_unicorn_no_keyword_prefix.go +56 -56
- package/linthost/rules_unicorn_no_lonely_if.go +21 -21
- package/linthost/rules_unicorn_no_magic_array_flat_depth.go +22 -22
- package/linthost/rules_unicorn_no_named_default.go +25 -25
- package/linthost/rules_unicorn_no_negated_condition.go +54 -54
- package/linthost/rules_unicorn_no_negation_in_equality_check.go +23 -23
- package/linthost/rules_unicorn_no_nested_ternary.go +15 -15
- package/linthost/rules_unicorn_no_new_array.go +5 -5
- package/linthost/rules_unicorn_no_new_buffer.go +5 -5
- package/linthost/rules_unicorn_no_null.go +2 -2
- package/linthost/rules_unicorn_no_object_as_default_parameter.go +19 -19
- package/linthost/rules_unicorn_no_process_exit.go +17 -17
- package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +29 -29
- package/linthost/rules_unicorn_no_static_only_class.go +27 -27
- package/linthost/rules_unicorn_no_thenable.go +47 -47
- package/linthost/rules_unicorn_no_this_assignment.go +10 -10
- package/linthost/rules_unicorn_no_typeof_undefined.go +31 -31
- package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +23 -23
- package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +37 -37
- package/linthost/rules_unicorn_no_unnecessary_await.go +24 -24
- package/linthost/rules_unicorn_no_unnecessary_slice_end.go +22 -22
- package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +67 -67
- package/linthost/rules_unicorn_no_unreadable_iife.go +22 -22
- package/linthost/rules_unicorn_no_useless_collection_argument.go +34 -34
- package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +18 -18
- package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +49 -49
- package/linthost/rules_unicorn_no_useless_iterator_to_array.go +41 -41
- package/linthost/rules_unicorn_no_useless_length_check.go +82 -82
- package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +42 -42
- package/linthost/rules_unicorn_no_useless_spread.go +38 -38
- package/linthost/rules_unicorn_no_useless_switch_case.go +29 -29
- package/linthost/rules_unicorn_no_useless_undefined.go +25 -25
- package/linthost/rules_unicorn_no_zero_fractions.go +17 -17
- package/linthost/rules_unicorn_number_literal_case.go +33 -33
- package/linthost/rules_unicorn_numeric_separators_style.go +36 -36
- package/linthost/rules_unicorn_prefer_add_event_listener.go +30 -30
- package/linthost/rules_unicorn_prefer_array_find.go +27 -27
- package/linthost/rules_unicorn_prefer_array_flat.go +25 -25
- package/linthost/rules_unicorn_prefer_array_flat_map.go +37 -37
- package/linthost/rules_unicorn_prefer_array_index_of.go +108 -108
- package/linthost/rules_unicorn_prefer_array_some.go +43 -43
- package/linthost/rules_unicorn_prefer_at.go +42 -42
- package/linthost/rules_unicorn_prefer_bigint_literals.go +42 -42
- package/linthost/rules_unicorn_prefer_blob_reading_methods.go +15 -15
- package/linthost/rules_unicorn_prefer_class_fields.go +57 -57
- package/linthost/rules_unicorn_prefer_classlist_toggle.go +76 -76
- package/linthost/rules_unicorn_prefer_code_point.go +21 -21
- package/linthost/rules_unicorn_prefer_date_now.go +47 -47
- package/linthost/rules_unicorn_prefer_default_parameters.go +96 -96
- package/linthost/rules_unicorn_prefer_dom_node_append.go +14 -14
- package/linthost/rules_unicorn_prefer_dom_node_dataset.go +27 -27
- package/linthost/rules_unicorn_prefer_dom_node_remove.go +17 -17
- package/linthost/rules_unicorn_prefer_dom_node_text_content.go +11 -11
- package/linthost/rules_unicorn_prefer_event_target.go +10 -10
- package/linthost/rules_unicorn_prefer_export_from.go +99 -99
- package/linthost/rules_unicorn_prefer_global_this.go +91 -91
- package/linthost/rules_unicorn_prefer_import_meta_properties.go +38 -38
- package/linthost/rules_unicorn_prefer_includes.go +108 -108
- package/linthost/rules_unicorn_prefer_json_parse_buffer.go +37 -37
- package/linthost/rules_unicorn_prefer_keyboard_event_key.go +10 -10
- package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +20 -20
- package/linthost/rules_unicorn_prefer_math_min_max.go +33 -33
- package/linthost/rules_unicorn_prefer_math_trunc.go +32 -32
- package/linthost/rules_unicorn_prefer_modern_dom_apis.go +18 -18
- package/linthost/rules_unicorn_prefer_modern_math_apis.go +38 -38
- package/linthost/rules_unicorn_prefer_module.go +22 -22
- package/linthost/rules_unicorn_prefer_native_coercion_functions.go +73 -73
- package/linthost/rules_unicorn_prefer_negative_index.go +46 -46
- package/linthost/rules_unicorn_prefer_node_protocol.go +90 -90
- package/linthost/rules_unicorn_prefer_number_properties.go +57 -57
- package/linthost/rules_unicorn_prefer_object_from_entries.go +26 -26
- package/linthost/rules_unicorn_prefer_optional_catch_binding.go +24 -24
- package/linthost/rules_unicorn_prefer_prototype_methods.go +25 -25
- package/linthost/rules_unicorn_prefer_query_selector.go +25 -25
- package/linthost/rules_unicorn_prefer_reflect_apply.go +10 -10
- package/linthost/rules_unicorn_prefer_regexp_test_rule.go +47 -47
- package/linthost/rules_unicorn_prefer_response_static_json.go +26 -26
- package/linthost/rules_unicorn_prefer_set_has.go +16 -16
- package/linthost/rules_unicorn_prefer_set_size.go +22 -22
- package/linthost/rules_unicorn_prefer_simple_condition_first.go +3 -3
- package/linthost/rules_unicorn_prefer_single_call.go +59 -59
- package/linthost/rules_unicorn_prefer_spread.go +24 -24
- package/linthost/rules_unicorn_prefer_string_raw.go +12 -12
- package/linthost/rules_unicorn_prefer_string_replace_all.go +46 -46
- package/linthost/rules_unicorn_prefer_string_slice.go +17 -17
- package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +104 -104
- package/linthost/rules_unicorn_prefer_string_trim_start_end.go +21 -21
- package/linthost/rules_unicorn_prefer_structured_clone.go +36 -36
- package/linthost/rules_unicorn_prefer_switch.go +65 -65
- package/linthost/rules_unicorn_prefer_ternary.go +35 -35
- package/linthost/rules_unicorn_prefer_top_level_await.go +34 -34
- package/linthost/rules_unicorn_prefer_type_error.go +84 -84
- package/linthost/rules_unicorn_prevent_abbreviations.go +68 -68
- package/linthost/rules_unicorn_relative_url_style.go +19 -19
- package/linthost/rules_unicorn_require_array_join_separator.go +18 -18
- package/linthost/rules_unicorn_require_module_attributes.go +25 -25
- package/linthost/rules_unicorn_require_module_specifiers.go +28 -28
- package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +18 -18
- package/linthost/rules_unicorn_require_post_message_target_origin.go +18 -18
- package/linthost/rules_unicorn_string_content.go +1 -1
- package/linthost/rules_unicorn_switch_case_braces.go +16 -16
- package/linthost/rules_unicorn_switch_case_break_position.go +3 -3
- package/linthost/rules_unicorn_template_indent.go +1 -1
- package/linthost/rules_unicorn_text_encoding_identifier_case.go +36 -36
- package/linthost/rules_unicorn_throw_new_error.go +30 -30
- package/linthost/rules_var.go +273 -3
- package/package.json +3 -3
- package/src/defaultFormat.ts +11 -7
- package/src/structures/ITtscLintConfig.ts +5 -5
- package/src/structures/TtscLintRuleSetting.ts +19 -19
- package/src/structures/{ITtscLintFormat.ts → format/ITtscLintFormat.ts} +48 -75
- package/src/structures/format/ITtscLintFormatJsDoc.ts +16 -0
- package/src/structures/format/ITtscLintFormatSortImports.ts +62 -0
- package/src/structures/format/index.ts +3 -0
- package/src/structures/index.ts +1 -1
- package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +20 -31
- package/src/structures/rules/ITtscLintBoundariesRules.ts +32 -36
- package/src/structures/rules/ITtscLintContributorRules.ts +6 -7
- package/src/structures/rules/ITtscLintCoreRules.ts +380 -408
- package/src/structures/rules/ITtscLintCypressRuleOptions.ts +5 -5
- package/src/structures/rules/ITtscLintCypressRules.ts +34 -38
- package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +28 -41
- package/src/structures/rules/ITtscLintFunctionalRules.ts +51 -56
- package/src/structures/rules/ITtscLintJestRules.ts +63 -74
- package/src/structures/rules/ITtscLintJsdocRules.ts +47 -54
- package/src/structures/rules/ITtscLintJsxA11yRules.ts +94 -102
- package/src/structures/rules/ITtscLintNextjsRules.ts +50 -55
- package/src/structures/rules/ITtscLintPlaywrightRules.ts +104 -122
- package/src/structures/rules/ITtscLintPromiseRules.ts +62 -71
- package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +4 -4
- package/src/structures/rules/ITtscLintReactPerfRules.ts +17 -19
- package/src/structures/rules/ITtscLintReactRuleOptions.ts +8 -10
- package/src/structures/rules/ITtscLintReactRules.ts +91 -104
- package/src/structures/rules/ITtscLintRegexpRules.ts +46 -54
- package/src/structures/rules/ITtscLintRuleOptionsMap.ts +7 -8
- package/src/structures/rules/ITtscLintSecurityRules.ts +45 -52
- package/src/structures/rules/ITtscLintSolidRules.ts +53 -56
- package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +3 -4
- package/src/structures/rules/ITtscLintStorybookRules.ts +60 -69
- package/src/structures/rules/ITtscLintTanstackQueryRules.ts +31 -37
- package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +2 -3
- package/src/structures/rules/ITtscLintTestingLibraryRules.ts +102 -119
- package/src/structures/rules/ITtscLintTypeScriptRules.ts +460 -518
- package/src/structures/rules/ITtscLintVitestRules.ts +43 -51
- package/lib/structures/ITtscLintFormat.js.map +0 -1
- /package/lib/structures/{ITtscLintFormat.js → format/ITtscLintFormat.js} +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import type { ITtscLintTestingLibraryConsistentDataTestIdRuleOptions } from "./ITtscLintTestingLibraryRuleOptions";
|
|
2
1
|
import type { TtscLintRuleOptionsSetting, TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
2
|
+
import type { ITtscLintTestingLibraryConsistentDataTestIdRuleOptions } from "./ITtscLintTestingLibraryRuleOptions";
|
|
3
3
|
/**
|
|
4
|
-
* Testing Library test source rules from
|
|
5
|
-
* `eslint-plugin-testing-library`.
|
|
4
|
+
* Testing Library test source rules from `eslint-plugin-testing-library`.
|
|
6
5
|
*
|
|
7
|
-
* Apply to TypeScript test sources that use any `@testing-library/*`
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Apply to TypeScript test sources that use any `@testing-library/*` package
|
|
7
|
+
* and detect Testing Library anti-patterns — `container` access, `ByTestId`
|
|
8
|
+
* overuse, missing `await` on async queries.
|
|
10
9
|
*
|
|
11
10
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library
|
|
12
11
|
*/
|
|
@@ -15,9 +14,8 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
15
14
|
* Require awaiting async user-event methods (`userEvent.click`,
|
|
16
15
|
* `userEvent.type`, ...) under the v14+ Promise-returning API.
|
|
17
16
|
*
|
|
18
|
-
* Without `await` the next assertion runs against the
|
|
19
|
-
*
|
|
20
|
-
* meant to trigger.
|
|
17
|
+
* Without `await` the next assertion runs against the pre-interaction DOM,
|
|
18
|
+
* which masks effects the user action was meant to trigger.
|
|
21
19
|
*
|
|
22
20
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-events.md
|
|
23
21
|
*/
|
|
@@ -25,30 +23,28 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
25
23
|
/**
|
|
26
24
|
* Require awaiting `findBy*` and `findAllBy*` queries.
|
|
27
25
|
*
|
|
28
|
-
* They return a Promise that resolves once the element appears; an
|
|
29
|
-
*
|
|
30
|
-
*
|
|
26
|
+
* They return a Promise that resolves once the element appears; an unawaited
|
|
27
|
+
* query yields a pending Promise that no matcher can assert against
|
|
28
|
+
* meaningfully.
|
|
31
29
|
*
|
|
32
30
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-queries.md
|
|
33
31
|
*/
|
|
34
32
|
"testing-library/await-async-queries"?: TtscLintRuleSetting;
|
|
35
33
|
/**
|
|
36
|
-
* Require awaiting `waitFor`, `waitForElementToBeRemoved`, and
|
|
37
|
-
*
|
|
34
|
+
* Require awaiting `waitFor`, `waitForElementToBeRemoved`, and the other
|
|
35
|
+
* async Testing Library utilities.
|
|
38
36
|
*
|
|
39
|
-
* Skipping the `await` means the test moves on before the
|
|
40
|
-
*
|
|
41
|
-
* wait.
|
|
37
|
+
* Skipping the `await` means the test moves on before the predicate settles,
|
|
38
|
+
* so subsequent assertions race against the wait.
|
|
42
39
|
*
|
|
43
40
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-utils.md
|
|
44
41
|
*/
|
|
45
42
|
"testing-library/await-async-utils"?: TtscLintRuleSetting;
|
|
46
43
|
/**
|
|
47
|
-
* Validate JSX `data-testid` attribute values against a regex
|
|
48
|
-
* pattern.
|
|
44
|
+
* Validate JSX `data-testid` attribute values against a regex pattern.
|
|
49
45
|
*
|
|
50
|
-
* The options object names the attribute and the pattern, keeping
|
|
51
|
-
*
|
|
46
|
+
* The options object names the attribute and the pattern, keeping test ids
|
|
47
|
+
* consistently formed across components.
|
|
52
48
|
*
|
|
53
49
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/consistent-data-testid.md
|
|
54
50
|
*/
|
|
@@ -57,63 +53,60 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
57
53
|
* Reject unnecessary `await` before synchronous event helpers
|
|
58
54
|
* (`fireEvent.click(...)`).
|
|
59
55
|
*
|
|
60
|
-
* The helpers return `boolean` rather than a Promise, so the
|
|
61
|
-
*
|
|
62
|
-
* helper is async.
|
|
56
|
+
* The helpers return `boolean` rather than a Promise, so the `await` is a
|
|
57
|
+
* no-op that misleads readers into thinking the helper is async.
|
|
63
58
|
*
|
|
64
59
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-await-sync-events.md
|
|
65
60
|
*/
|
|
66
61
|
"testing-library/no-await-sync-events"?: TtscLintRuleSetting;
|
|
67
62
|
/**
|
|
68
|
-
* Reject unnecessary `await` before synchronous queries
|
|
69
|
-
*
|
|
63
|
+
* Reject unnecessary `await` before synchronous queries (`getBy*`,
|
|
64
|
+
* `queryBy*`).
|
|
70
65
|
*
|
|
71
|
-
* These queries return DOM nodes directly, so the `await` misleads
|
|
72
|
-
*
|
|
73
|
-
* `findBy*`.
|
|
66
|
+
* These queries return DOM nodes directly, so the `await` misleads readers
|
|
67
|
+
* and can shadow a genuine missing `await` on an adjacent `findBy*`.
|
|
74
68
|
*
|
|
75
69
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-await-sync-queries.md
|
|
76
70
|
*/
|
|
77
71
|
"testing-library/no-await-sync-queries"?: TtscLintRuleSetting;
|
|
78
72
|
/**
|
|
79
|
-
* Reject `container` destructuring and DOM query methods on the
|
|
80
|
-
*
|
|
73
|
+
* Reject `container` destructuring and DOM query methods on the render
|
|
74
|
+
* result.
|
|
81
75
|
*
|
|
82
|
-
* `screen` queries the same document but matches how the user sees
|
|
83
|
-
*
|
|
84
|
-
*
|
|
76
|
+
* `screen` queries the same document but matches how the user sees the page,
|
|
77
|
+
* keeping tests accessibility-first and resilient to layout refactors that
|
|
78
|
+
* move nodes inside the tree.
|
|
85
79
|
*
|
|
86
80
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-container.md
|
|
87
81
|
*/
|
|
88
82
|
"testing-library/no-container"?: TtscLintRuleSetting;
|
|
89
83
|
/**
|
|
90
|
-
* Reject `debug`, `prettyDOM`, `logTestingPlaygroundURL`, and
|
|
91
|
-
*
|
|
84
|
+
* Reject `debug`, `prettyDOM`, `logTestingPlaygroundURL`, and related
|
|
85
|
+
* debugging utilities in committed tests.
|
|
92
86
|
*
|
|
93
|
-
* They print large DOM dumps to CI logs and only exist to help
|
|
94
|
-
*
|
|
87
|
+
* They print large DOM dumps to CI logs and only exist to help during local
|
|
88
|
+
* authoring.
|
|
95
89
|
*
|
|
96
90
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-debugging-utils.md
|
|
97
91
|
*/
|
|
98
92
|
"testing-library/no-debugging-utils"?: TtscLintRuleSetting;
|
|
99
93
|
/**
|
|
100
|
-
* Reject direct `@testing-library/dom` imports when a
|
|
101
|
-
*
|
|
94
|
+
* Reject direct `@testing-library/dom` imports when a framework-specific
|
|
95
|
+
* package is installed.
|
|
102
96
|
*
|
|
103
|
-
* Framework packages (`@testing-library/react`, ...) re-export the
|
|
104
|
-
*
|
|
105
|
-
*
|
|
97
|
+
* Framework packages (`@testing-library/react`, ...) re-export the same
|
|
98
|
+
* surface plus a `render` that wires the framework's lifecycle — importing
|
|
99
|
+
* `dom` directly skips that wiring.
|
|
106
100
|
*
|
|
107
101
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-dom-import.md
|
|
108
102
|
*/
|
|
109
103
|
"testing-library/no-dom-import"?: TtscLintRuleSetting;
|
|
110
104
|
/**
|
|
111
|
-
* Reject global RegExp flags (`/foo/g`) inside query text
|
|
112
|
-
* matchers.
|
|
105
|
+
* Reject global RegExp flags (`/foo/g`) inside query text matchers.
|
|
113
106
|
*
|
|
114
|
-
* The matcher reuses the regex across nodes, so a global regex's
|
|
115
|
-
*
|
|
116
|
-
*
|
|
107
|
+
* The matcher reuses the regex across nodes, so a global regex's persistent
|
|
108
|
+
* `lastIndex` state causes the second call to skip matches the first one
|
|
109
|
+
* found.
|
|
117
110
|
*
|
|
118
111
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-global-regexp-flag-in-query.md
|
|
119
112
|
*/
|
|
@@ -121,37 +114,36 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
121
114
|
/**
|
|
122
115
|
* Reject manual `cleanup()` calls.
|
|
123
116
|
*
|
|
124
|
-
* Framework wrappers (`@testing-library/react`, ...) register
|
|
125
|
-
*
|
|
126
|
-
*
|
|
117
|
+
* Framework wrappers (`@testing-library/react`, ...) register automatic
|
|
118
|
+
* cleanup, so explicit calls duplicate the unmount and can race against the
|
|
119
|
+
* runner's between-test reset.
|
|
127
120
|
*
|
|
128
121
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-manual-cleanup.md
|
|
129
122
|
*/
|
|
130
123
|
"testing-library/no-manual-cleanup"?: TtscLintRuleSetting;
|
|
131
124
|
/**
|
|
132
|
-
* Reject direct DOM node traversal from query results
|
|
133
|
-
*
|
|
125
|
+
* Reject direct DOM node traversal from query results (`.parentElement`,
|
|
126
|
+
* `.firstChild`, `.children`, ...).
|
|
134
127
|
*
|
|
135
|
-
* Traversal couples the test to incidental markup; another
|
|
136
|
-
*
|
|
128
|
+
* Traversal couples the test to incidental markup; another semantic query
|
|
129
|
+
* names what the assertion actually cares about.
|
|
137
130
|
*
|
|
138
131
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-node-access.md
|
|
139
132
|
*/
|
|
140
133
|
"testing-library/no-node-access"?: TtscLintRuleSetting;
|
|
141
134
|
/**
|
|
142
|
-
* Reject Promise-producing expressions passed to `fireEvent`,
|
|
143
|
-
*
|
|
135
|
+
* Reject Promise-producing expressions passed to `fireEvent`, since
|
|
136
|
+
* `fireEvent` is synchronous and the Promise is dropped.
|
|
144
137
|
*
|
|
145
138
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-promise-in-fire-event.md
|
|
146
139
|
*/
|
|
147
140
|
"testing-library/no-promise-in-fire-event"?: TtscLintRuleSetting;
|
|
148
141
|
/**
|
|
149
|
-
* Reject `render(...)` inside lifecycle hooks (`beforeEach`,
|
|
150
|
-
* etc.).
|
|
142
|
+
* Reject `render(...)` inside lifecycle hooks (`beforeEach`, etc.).
|
|
151
143
|
*
|
|
152
|
-
* Each test should render its component directly so the arrange
|
|
153
|
-
*
|
|
154
|
-
*
|
|
144
|
+
* Each test should render its component directly so the arrange step is
|
|
145
|
+
* visible in-place and auto-cleanup runs between cases without sharing
|
|
146
|
+
* state.
|
|
155
147
|
*
|
|
156
148
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-render-in-lifecycle.md
|
|
157
149
|
*/
|
|
@@ -159,35 +151,32 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
159
151
|
/**
|
|
160
152
|
* Reject `*ByTestId` queries.
|
|
161
153
|
*
|
|
162
|
-
* Test ids couple the test to incidental markup and skip the
|
|
163
|
-
*
|
|
164
|
-
*
|
|
154
|
+
* Test ids couple the test to incidental markup and skip the accessibility
|
|
155
|
+
* tree that real users navigate; queries by role, label, or text describe the
|
|
156
|
+
* UI in user-visible terms instead.
|
|
165
157
|
*
|
|
166
158
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-test-id-queries.md
|
|
167
159
|
*/
|
|
168
160
|
"testing-library/no-test-id-queries"?: TtscLintRuleSetting;
|
|
169
161
|
/**
|
|
170
|
-
* Reject unnecessary `act(...)` wrappers around Testing Library
|
|
171
|
-
* helpers.
|
|
162
|
+
* Reject unnecessary `act(...)` wrappers around Testing Library helpers.
|
|
172
163
|
*
|
|
173
|
-
* `render`, `fireEvent`, and `userEvent` already wrap their work
|
|
174
|
-
*
|
|
175
|
-
* real state change.
|
|
164
|
+
* `render`, `fireEvent`, and `userEvent` already wrap their work in `act`, so
|
|
165
|
+
* the extra wrapper is dead code that obscures the real state change.
|
|
176
166
|
*
|
|
177
167
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-unnecessary-act.md
|
|
178
168
|
*/
|
|
179
169
|
"testing-library/no-unnecessary-act"?: TtscLintRuleSetting;
|
|
180
170
|
/**
|
|
181
|
-
* Reject multiple assertions inside one `waitFor` callback —
|
|
182
|
-
*
|
|
183
|
-
* narrow.
|
|
171
|
+
* Reject multiple assertions inside one `waitFor` callback — split into
|
|
172
|
+
* separate `waitFor`s so each retry boundary is narrow.
|
|
184
173
|
*
|
|
185
174
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-multiple-assertions.md
|
|
186
175
|
*/
|
|
187
176
|
"testing-library/no-wait-for-multiple-assertions"?: TtscLintRuleSetting;
|
|
188
177
|
/**
|
|
189
|
-
* Reject side effects inside `waitFor` callbacks — `waitFor`
|
|
190
|
-
*
|
|
178
|
+
* Reject side effects inside `waitFor` callbacks — `waitFor` retries the
|
|
179
|
+
* callback, so side effects fire repeatedly.
|
|
191
180
|
*
|
|
192
181
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-side-effects.md
|
|
193
182
|
*/
|
|
@@ -195,21 +184,19 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
195
184
|
/**
|
|
196
185
|
* Reject snapshot assertions inside `waitFor`.
|
|
197
186
|
*
|
|
198
|
-
* `waitFor` retries until the callback stops throwing, so the
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
* cares about.
|
|
187
|
+
* `waitFor` retries until the callback stops throwing, so the captured
|
|
188
|
+
* snapshot is whichever pass happened to match — usually an intermediate
|
|
189
|
+
* render rather than the settled UI the test cares about.
|
|
202
190
|
*
|
|
203
191
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-snapshot.md
|
|
204
192
|
*/
|
|
205
193
|
"testing-library/no-wait-for-snapshot"?: TtscLintRuleSetting;
|
|
206
194
|
/**
|
|
207
|
-
* Require explicit assertions on the result of standalone
|
|
208
|
-
* queries.
|
|
195
|
+
* Require explicit assertions on the result of standalone queries.
|
|
209
196
|
*
|
|
210
|
-
* A bare `screen.getByRole(...)` looks like an assertion but only
|
|
211
|
-
*
|
|
212
|
-
*
|
|
197
|
+
* A bare `screen.getByRole(...)` looks like an assertion but only checks
|
|
198
|
+
* presence (and only for `getBy*`); adding `expect(...)` makes the intent and
|
|
199
|
+
* the matched property obvious.
|
|
213
200
|
*
|
|
214
201
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-explicit-assert.md
|
|
215
202
|
*/
|
|
@@ -217,9 +204,9 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
217
204
|
/**
|
|
218
205
|
* Prefer `findBy*` over `waitFor` wrapping a `getBy*`.
|
|
219
206
|
*
|
|
220
|
-
* `findBy*` is the dedicated retry-aware query; the manual
|
|
221
|
-
*
|
|
222
|
-
*
|
|
207
|
+
* `findBy*` is the dedicated retry-aware query; the manual combination
|
|
208
|
+
* duplicates its semantics and is easy to misconfigure (wrong timeout,
|
|
209
|
+
* missing `await`).
|
|
223
210
|
*
|
|
224
211
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-find-by.md
|
|
225
212
|
*/
|
|
@@ -227,18 +214,17 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
227
214
|
/**
|
|
228
215
|
* Avoid redundant `toBeInTheDocument()` around `getBy*` queries.
|
|
229
216
|
*
|
|
230
|
-
* `getBy*` already throws when nothing is found, so the extra
|
|
231
|
-
*
|
|
232
|
-
* the failure trace.
|
|
217
|
+
* `getBy*` already throws when nothing is found, so the extra matcher only
|
|
218
|
+
* restates what the query promises and adds noise to the failure trace.
|
|
233
219
|
*
|
|
234
220
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-implicit-assert.md
|
|
235
221
|
*/
|
|
236
222
|
"testing-library/prefer-implicit-assert"?: TtscLintRuleSetting;
|
|
237
223
|
/**
|
|
238
|
-
* Match presence and absence assertions to the query variant
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
224
|
+
* Match presence and absence assertions to the query variant that already
|
|
225
|
+
* encodes the same semantic: `getBy*` for presence (throws when missing),
|
|
226
|
+
* `queryBy*` for absence (returns `null` when missing). Mixing the two yields
|
|
227
|
+
* confusing failure modes.
|
|
242
228
|
*
|
|
243
229
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-presence-queries.md
|
|
244
230
|
*/
|
|
@@ -246,20 +232,19 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
246
232
|
/**
|
|
247
233
|
* Prefer `queryBy*` inside `waitForElementToBeRemoved`.
|
|
248
234
|
*
|
|
249
|
-
* The helper retries the callback against the disappearing
|
|
250
|
-
*
|
|
251
|
-
*
|
|
235
|
+
* The helper retries the callback against the disappearing element, but
|
|
236
|
+
* `getBy*` throws on the very state being waited for, which produces a noisy
|
|
237
|
+
* error in the trace each retry.
|
|
252
238
|
*
|
|
253
239
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-query-by-disappearance.md
|
|
254
240
|
*/
|
|
255
241
|
"testing-library/prefer-query-by-disappearance"?: TtscLintRuleSetting;
|
|
256
242
|
/**
|
|
257
|
-
* Prefer jest-dom document matchers (`toBeVisible`,
|
|
258
|
-
*
|
|
259
|
-
* Testing Library queries.
|
|
243
|
+
* Prefer jest-dom document matchers (`toBeVisible`, `toHaveTextContent`, ...)
|
|
244
|
+
* over generic equality checks on Testing Library queries.
|
|
260
245
|
*
|
|
261
|
-
* The dedicated matchers explain failures in terms of the DOM
|
|
262
|
-
*
|
|
246
|
+
* The dedicated matchers explain failures in terms of the DOM property they
|
|
247
|
+
* assert on, not a structural diff of nodes.
|
|
263
248
|
*
|
|
264
249
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-query-matchers.md
|
|
265
250
|
*/
|
|
@@ -267,9 +252,9 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
267
252
|
/**
|
|
268
253
|
* Prefer `screen.*` over queries on the render-result object.
|
|
269
254
|
*
|
|
270
|
-
* `screen` is the single global query target, so tests stay
|
|
271
|
-
*
|
|
272
|
-
*
|
|
255
|
+
* `screen` is the single global query target, so tests stay consistent
|
|
256
|
+
* regardless of which component is mounted and the render call's return value
|
|
257
|
+
* rarely needs destructuring.
|
|
273
258
|
*
|
|
274
259
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-screen-queries.md
|
|
275
260
|
*/
|
|
@@ -277,32 +262,30 @@ export interface ITtscLintTestingLibraryRules {
|
|
|
277
262
|
/**
|
|
278
263
|
* Prefer `userEvent` over `fireEvent`.
|
|
279
264
|
*
|
|
280
|
-
* `userEvent` simulates the full sequence of DOM events a real
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
* state.
|
|
265
|
+
* `userEvent` simulates the full sequence of DOM events a real user triggers
|
|
266
|
+
* (focus, keydown, input, change, ...) while `fireEvent` dispatches a single
|
|
267
|
+
* event and skips intermediate state.
|
|
284
268
|
*
|
|
285
269
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-user-event.md
|
|
286
270
|
*/
|
|
287
271
|
"testing-library/prefer-user-event"?: TtscLintRuleSetting;
|
|
288
272
|
/**
|
|
289
|
-
* Prefer `userEvent.setup()` (the v14+ instance pattern) over
|
|
290
|
-
*
|
|
273
|
+
* Prefer `userEvent.setup()` (the v14+ instance pattern) over the static
|
|
274
|
+
* `userEvent.*` calls.
|
|
291
275
|
*
|
|
292
|
-
* The instance binds fresh pointer state per test, removing the
|
|
293
|
-
*
|
|
294
|
-
* leaks.
|
|
276
|
+
* The instance binds fresh pointer state per test, removing the cross-test
|
|
277
|
+
* focus and click bookkeeping that the static API leaks.
|
|
295
278
|
*
|
|
296
279
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-user-event-setup.md
|
|
297
280
|
*/
|
|
298
281
|
"testing-library/prefer-user-event-setup"?: TtscLintRuleSetting;
|
|
299
282
|
/**
|
|
300
|
-
* Require the variable assigned from `render(...)` to use one of
|
|
301
|
-
*
|
|
283
|
+
* Require the variable assigned from `render(...)` to use one of the
|
|
284
|
+
* conventional names (`view`, `result`, ...).
|
|
302
285
|
*
|
|
303
|
-
* The name is a reading cue: a non-conventional one usually
|
|
304
|
-
*
|
|
305
|
-
*
|
|
286
|
+
* The name is a reading cue: a non-conventional one usually signals that the
|
|
287
|
+
* destructured queries are being treated as a component surface instead of a
|
|
288
|
+
* render artifact.
|
|
306
289
|
*
|
|
307
290
|
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/render-result-naming-convention.md
|
|
308
291
|
*/
|