@ttsc/lint 0.14.0-dev.20260529.2 → 0.14.1
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 +23 -25
- 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 +167 -5
- package/linthost/print_nodes_call.go +786 -77
- package/linthost/print_nodes_function.go +43 -0
- package/linthost/print_nodes_imports.go +64 -14
- package/linthost/print_nodes_list.go +214 -8
- package/linthost/print_nodes_object.go +14 -6
- package/linthost/print_nodes_ternary.go +147 -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 +213 -0
- package/linthost/rules_format_bracket_spacing.go +117 -0
- package/linthost/rules_format_clause_join.go +179 -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 +180 -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 +517 -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,21 +1,19 @@
|
|
|
1
1
|
import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Playwright end-to-end test rules from `eslint-plugin-playwright`,
|
|
5
|
-
*
|
|
6
|
-
* runner.
|
|
4
|
+
* Playwright end-to-end test rules from `eslint-plugin-playwright`, applied to
|
|
5
|
+
* TypeScript test files driven by the `@playwright/test` runner.
|
|
7
6
|
*
|
|
8
|
-
* Guard Playwright-specific patterns — locator usage, web-first
|
|
9
|
-
*
|
|
10
|
-
* and run silently.
|
|
7
|
+
* Guard Playwright-specific patterns — locator usage, web-first assertions,
|
|
8
|
+
* focused/slowed tests — that would otherwise compile and run silently.
|
|
11
9
|
*
|
|
12
10
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright
|
|
13
11
|
*/
|
|
14
12
|
export interface ITtscLintPlaywrightRules {
|
|
15
13
|
/**
|
|
16
|
-
* Require every Playwright test body to contain at least one
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* Require every Playwright test body to contain at least one `expect(...)`
|
|
15
|
+
* call. A test with no assertions still passes, giving a false-positive
|
|
16
|
+
* signal.
|
|
19
17
|
*
|
|
20
18
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/expect-expect.md
|
|
21
19
|
*/
|
|
@@ -24,32 +22,31 @@ export interface ITtscLintPlaywrightRules {
|
|
|
24
22
|
/**
|
|
25
23
|
* Limit the assertion count inside a single Playwright test body.
|
|
26
24
|
*
|
|
27
|
-
* A test packed with assertions usually verifies several user
|
|
28
|
-
*
|
|
29
|
-
*
|
|
25
|
+
* A test packed with assertions usually verifies several user flows at once,
|
|
26
|
+
* making failures ambiguous — splitting per scenario keeps each case
|
|
27
|
+
* diagnostic.
|
|
30
28
|
*
|
|
31
29
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/max-expects.md
|
|
32
30
|
*/
|
|
33
31
|
"playwright/max-expects"?: TtscLintRuleSetting;
|
|
34
32
|
|
|
35
33
|
/**
|
|
36
|
-
* Reject `expect(...)` calls under `if`/`try`/`catch` or other
|
|
37
|
-
*
|
|
34
|
+
* Reject `expect(...)` calls under `if`/`try`/`catch` or other conditional
|
|
35
|
+
* branches in Playwright tests.
|
|
38
36
|
*
|
|
39
|
-
* A branch that never executes turns the assertion into a silent
|
|
40
|
-
*
|
|
37
|
+
* A branch that never executes turns the assertion into a silent no-op, so
|
|
38
|
+
* the test passes without verifying anything.
|
|
41
39
|
*
|
|
42
40
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-conditional-expect.md
|
|
43
41
|
*/
|
|
44
42
|
"playwright/no-conditional-expect"?: TtscLintRuleSetting;
|
|
45
43
|
|
|
46
44
|
/**
|
|
47
|
-
* Reject conditional logic (`if`/`switch`/ternary) inside
|
|
48
|
-
*
|
|
45
|
+
* Reject conditional logic (`if`/`switch`/ternary) inside Playwright test
|
|
46
|
+
* bodies.
|
|
49
47
|
*
|
|
50
|
-
* Each test should describe a single deterministic user flow;
|
|
51
|
-
*
|
|
52
|
-
* passing log.
|
|
48
|
+
* Each test should describe a single deterministic user flow; branching hides
|
|
49
|
+
* which path the runner took when reading a passing log.
|
|
53
50
|
*
|
|
54
51
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-conditional-in-test.md
|
|
55
52
|
*/
|
|
@@ -57,27 +54,26 @@ export interface ITtscLintPlaywrightRules {
|
|
|
57
54
|
|
|
58
55
|
/**
|
|
59
56
|
* Reject duplicate Playwright setup/teardown hook calls
|
|
60
|
-
* (`test.beforeEach`/`test.afterEach`/etc.) in the same
|
|
61
|
-
* `test.describe`.
|
|
57
|
+
* (`test.beforeEach`/`test.afterEach`/etc.) in the same `test.describe`.
|
|
62
58
|
*
|
|
63
|
-
* Playwright runs both copies in declaration order, almost always
|
|
64
|
-
*
|
|
59
|
+
* Playwright runs both copies in declaration order, almost always a
|
|
60
|
+
* copy-paste mistake.
|
|
65
61
|
*
|
|
66
62
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-duplicate-hooks.md
|
|
67
63
|
*/
|
|
68
64
|
"playwright/no-duplicate-hooks"?: TtscLintRuleSetting;
|
|
69
65
|
|
|
70
66
|
/**
|
|
71
|
-
* Reject repeated `test.slow()` calls inside the same test —
|
|
72
|
-
*
|
|
67
|
+
* Reject repeated `test.slow()` calls inside the same test — the first call
|
|
68
|
+
* already marks the test slow.
|
|
73
69
|
*
|
|
74
70
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-duplicate-slow.md
|
|
75
71
|
*/
|
|
76
72
|
"playwright/no-duplicate-slow"?: TtscLintRuleSetting;
|
|
77
73
|
|
|
78
74
|
/**
|
|
79
|
-
* Reject the legacy `ElementHandle`-style Playwright API
|
|
80
|
-
*
|
|
75
|
+
* Reject the legacy `ElementHandle`-style Playwright API (`page.$`,
|
|
76
|
+
* `page.$$`).
|
|
81
77
|
*
|
|
82
78
|
* Handles snapshot the DOM at query time and bypass Playwright's
|
|
83
79
|
* auto-waiting; locators are the modern retry-aware replacement.
|
|
@@ -89,33 +85,31 @@ export interface ITtscLintPlaywrightRules {
|
|
|
89
85
|
/**
|
|
90
86
|
* Reject `page.$eval` and `page.$$eval`.
|
|
91
87
|
*
|
|
92
|
-
* They depend on the legacy handle API and run user-supplied
|
|
93
|
-
*
|
|
94
|
-
*
|
|
88
|
+
* They depend on the legacy handle API and run user-supplied selectors
|
|
89
|
+
* against a frozen snapshot of the DOM — use `locator.evaluate` or inline
|
|
90
|
+
* logic in the test instead.
|
|
95
91
|
*
|
|
96
92
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-eval.md
|
|
97
93
|
*/
|
|
98
94
|
"playwright/no-eval"?: TtscLintRuleSetting;
|
|
99
95
|
|
|
100
96
|
/**
|
|
101
|
-
* Reject `test.only`, `test.describe.only`, and similar focused
|
|
102
|
-
*
|
|
97
|
+
* Reject `test.only`, `test.describe.only`, and similar focused Playwright
|
|
98
|
+
* tests.
|
|
103
99
|
*
|
|
104
|
-
* A focused test silently skips every other test in the file, so
|
|
105
|
-
*
|
|
106
|
-
* in CI.
|
|
100
|
+
* A focused test silently skips every other test in the file, so a stray
|
|
101
|
+
* `.only` left from debugging hides the rest of the suite in CI.
|
|
107
102
|
*
|
|
108
103
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-focused-test.md
|
|
109
104
|
*/
|
|
110
105
|
"playwright/no-focused-test"?: TtscLintRuleSetting;
|
|
111
106
|
|
|
112
107
|
/**
|
|
113
|
-
* Reject Playwright `{ force: true }` options on actionable
|
|
114
|
-
*
|
|
108
|
+
* Reject Playwright `{ force: true }` options on actionable commands
|
|
109
|
+
* (`click`, `fill`, ...).
|
|
115
110
|
*
|
|
116
|
-
* `force` skips the actionability checks Playwright relies on for
|
|
117
|
-
*
|
|
118
|
-
* be exposing.
|
|
111
|
+
* `force` skips the actionability checks Playwright relies on for stability,
|
|
112
|
+
* usually papering over a real UI bug the test should be exposing.
|
|
119
113
|
*
|
|
120
114
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-force-option.md
|
|
121
115
|
*/
|
|
@@ -124,21 +118,20 @@ export interface ITtscLintPlaywrightRules {
|
|
|
124
118
|
/**
|
|
125
119
|
* Reject `getByTitle(...)` locators.
|
|
126
120
|
*
|
|
127
|
-
* The `title` attribute is rarely set with testing in mind and
|
|
128
|
-
*
|
|
129
|
-
*
|
|
121
|
+
* The `title` attribute is rarely set with testing in mind and often changes
|
|
122
|
+
* for i18n or cosmetic reasons, making title-based selectors among the least
|
|
123
|
+
* stable test targets.
|
|
130
124
|
*
|
|
131
125
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-get-by-title.md
|
|
132
126
|
*/
|
|
133
127
|
"playwright/no-get-by-title"?: TtscLintRuleSetting;
|
|
134
128
|
|
|
135
129
|
/**
|
|
136
|
-
* Reject Playwright `test.beforeEach`/`test.afterEach`/etc.
|
|
137
|
-
* hooks.
|
|
130
|
+
* Reject Playwright `test.beforeEach`/`test.afterEach`/etc. hooks.
|
|
138
131
|
*
|
|
139
|
-
* Promotes the style where each test arranges and tears down its
|
|
140
|
-
*
|
|
141
|
-
*
|
|
132
|
+
* Promotes the style where each test arranges and tears down its own state
|
|
133
|
+
* inline, so a reader can understand a single case without scrolling to a
|
|
134
|
+
* distant hook.
|
|
142
135
|
*
|
|
143
136
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-hooks.md
|
|
144
137
|
*/
|
|
@@ -147,21 +140,20 @@ export interface ITtscLintPlaywrightRules {
|
|
|
147
140
|
/**
|
|
148
141
|
* Reject nested `test.step(...)` calls.
|
|
149
142
|
*
|
|
150
|
-
* Playwright's trace viewer collapses steps into a flat timeline,
|
|
151
|
-
*
|
|
152
|
-
*
|
|
143
|
+
* Playwright's trace viewer collapses steps into a flat timeline, so nested
|
|
144
|
+
* steps are hard to read and usually signal that the inner step should live
|
|
145
|
+
* in its own top-level entry.
|
|
153
146
|
*
|
|
154
147
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-nested-step.md
|
|
155
148
|
*/
|
|
156
149
|
"playwright/no-nested-step"?: TtscLintRuleSetting;
|
|
157
150
|
|
|
158
151
|
/**
|
|
159
|
-
* Reject the `networkidle` load-state in `page.waitForLoadState`
|
|
160
|
-
*
|
|
152
|
+
* Reject the `networkidle` load-state in `page.waitForLoadState` and
|
|
153
|
+
* navigation options.
|
|
161
154
|
*
|
|
162
|
-
* Modern apps stream requests on a keep-alive socket so the state
|
|
163
|
-
*
|
|
164
|
-
* instead.
|
|
155
|
+
* Modern apps stream requests on a keep-alive socket so the state is racy;
|
|
156
|
+
* the Playwright team recommends waiting on a locator instead.
|
|
165
157
|
*
|
|
166
158
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-networkidle.md
|
|
167
159
|
*/
|
|
@@ -170,9 +162,9 @@ export interface ITtscLintPlaywrightRules {
|
|
|
170
162
|
/**
|
|
171
163
|
* Reject `.first()`, `.last()`, and `.nth(...)` on locators.
|
|
172
164
|
*
|
|
173
|
-
* Positional access couples the test to current DOM ordering and
|
|
174
|
-
*
|
|
175
|
-
*
|
|
165
|
+
* Positional access couples the test to current DOM ordering and breaks the
|
|
166
|
+
* moment the layout changes — prefer a more specific locator (role, label,
|
|
167
|
+
* test id) that names the target directly.
|
|
176
168
|
*
|
|
177
169
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-nth-methods.md
|
|
178
170
|
*/
|
|
@@ -181,20 +173,19 @@ export interface ITtscLintPlaywrightRules {
|
|
|
181
173
|
/**
|
|
182
174
|
* Reject `page.pause()` debugging calls.
|
|
183
175
|
*
|
|
184
|
-
* The helper drops the runner into Playwright's inspector, which
|
|
185
|
-
*
|
|
186
|
-
* committed test.
|
|
176
|
+
* The helper drops the runner into Playwright's inspector, which is useful
|
|
177
|
+
* locally but hangs CI indefinitely if it slips into a committed test.
|
|
187
178
|
*
|
|
188
179
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-page-pause.md
|
|
189
180
|
*/
|
|
190
181
|
"playwright/no-page-pause"?: TtscLintRuleSetting;
|
|
191
182
|
|
|
192
183
|
/**
|
|
193
|
-
* Reject `test.skip`, `test.describe.skip`, and the conditional
|
|
194
|
-
*
|
|
184
|
+
* Reject `test.skip`, `test.describe.skip`, and the conditional `test.skip()`
|
|
185
|
+
* annotation.
|
|
195
186
|
*
|
|
196
|
-
* Skipped tests appear green in CI but quietly drop coverage for
|
|
197
|
-
*
|
|
187
|
+
* Skipped tests appear green in CI but quietly drop coverage for the feature
|
|
188
|
+
* they were meant to pin.
|
|
198
189
|
*
|
|
199
190
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-skipped-test.md
|
|
200
191
|
*/
|
|
@@ -203,21 +194,19 @@ export interface ITtscLintPlaywrightRules {
|
|
|
203
194
|
/**
|
|
204
195
|
* Reject `test.slow()` marks on Playwright tests.
|
|
205
196
|
*
|
|
206
|
-
* The annotation triples the per-test timeout, usually masking a
|
|
207
|
-
*
|
|
208
|
-
* wait.
|
|
197
|
+
* The annotation triples the per-test timeout, usually masking a real
|
|
198
|
+
* performance regression instead of fixing the underlying wait.
|
|
209
199
|
*
|
|
210
200
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-slowed-test.md
|
|
211
201
|
*/
|
|
212
202
|
"playwright/no-slowed-test"?: TtscLintRuleSetting;
|
|
213
203
|
|
|
214
204
|
/**
|
|
215
|
-
* Reject `expect(...)` calls outside the body of a Playwright
|
|
216
|
-
*
|
|
205
|
+
* Reject `expect(...)` calls outside the body of a Playwright test or
|
|
206
|
+
* lifecycle hook.
|
|
217
207
|
*
|
|
218
|
-
* Top-level assertions execute at module load before any test
|
|
219
|
-
*
|
|
220
|
-
* report.
|
|
208
|
+
* Top-level assertions execute at module load before any test starts, so
|
|
209
|
+
* failures never attach to a named case in the runner's report.
|
|
221
210
|
*
|
|
222
211
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-standalone-expect.md
|
|
223
212
|
*/
|
|
@@ -226,10 +215,9 @@ export interface ITtscLintPlaywrightRules {
|
|
|
226
215
|
/**
|
|
227
216
|
* Reject `page.waitForNavigation`.
|
|
228
217
|
*
|
|
229
|
-
* The helper races against navigations triggered by the very
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
* explicitly.
|
|
218
|
+
* The helper races against navigations triggered by the very command
|
|
219
|
+
* preceding it; use a locator-based wait or the action's own `waitUntil`
|
|
220
|
+
* option to pin the post-navigation state explicitly.
|
|
233
221
|
*
|
|
234
222
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-wait-for-navigation.md
|
|
235
223
|
*/
|
|
@@ -238,9 +226,9 @@ export interface ITtscLintPlaywrightRules {
|
|
|
238
226
|
/**
|
|
239
227
|
* Reject `page.waitForSelector`.
|
|
240
228
|
*
|
|
241
|
-
* The helper duplicates locator auto-waiting but does not share
|
|
242
|
-
*
|
|
243
|
-
*
|
|
229
|
+
* The helper duplicates locator auto-waiting but does not share its retry
|
|
230
|
+
* semantics — prefer `locator.waitFor()` or a web-first assertion on the same
|
|
231
|
+
* locator.
|
|
244
232
|
*
|
|
245
233
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-wait-for-selector.md
|
|
246
234
|
*/
|
|
@@ -249,56 +237,53 @@ export interface ITtscLintPlaywrightRules {
|
|
|
249
237
|
/**
|
|
250
238
|
* Reject `page.waitForTimeout(ms)` sleeps.
|
|
251
239
|
*
|
|
252
|
-
* A hardcoded delay is either too short under load (flaky
|
|
253
|
-
*
|
|
254
|
-
*
|
|
240
|
+
* A hardcoded delay is either too short under load (flaky failures) or too
|
|
241
|
+
* long under normal conditions (slow suite); wait on a locator or response
|
|
242
|
+
* that signals readiness directly.
|
|
255
243
|
*
|
|
256
244
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-wait-for-timeout.md
|
|
257
245
|
*/
|
|
258
246
|
"playwright/no-wait-for-timeout"?: TtscLintRuleSetting;
|
|
259
247
|
|
|
260
248
|
/**
|
|
261
|
-
* Prefer locator-based Playwright APIs (`page.locator(sel).click()`)
|
|
262
|
-
*
|
|
249
|
+
* Prefer locator-based Playwright APIs (`page.locator(sel).click()`) over
|
|
250
|
+
* page-level convenience methods (`page.click(selector)`).
|
|
263
251
|
*
|
|
264
|
-
* Page methods re-resolve the selector each call and skip the
|
|
265
|
-
*
|
|
252
|
+
* Page methods re-resolve the selector each call and skip the retry semantics
|
|
253
|
+
* that make locators robust under animation.
|
|
266
254
|
*
|
|
267
255
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/prefer-locator.md
|
|
268
256
|
*/
|
|
269
257
|
"playwright/prefer-locator"?: TtscLintRuleSetting;
|
|
270
258
|
|
|
271
259
|
/**
|
|
272
|
-
* Prefer `expect(locator).toHaveCount(n)` over asserting on
|
|
273
|
-
*
|
|
260
|
+
* Prefer `expect(locator).toHaveCount(n)` over asserting on `await
|
|
261
|
+
* locator.count()`.
|
|
274
262
|
*
|
|
275
|
-
* The web-first matcher retries until the count stabilizes, while
|
|
276
|
-
*
|
|
277
|
-
* ongoing renders.
|
|
263
|
+
* The web-first matcher retries until the count stabilizes, while the awaited
|
|
264
|
+
* value is a one-shot snapshot that races against ongoing renders.
|
|
278
265
|
*
|
|
279
266
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/prefer-to-have-count.md
|
|
280
267
|
*/
|
|
281
268
|
"playwright/prefer-to-have-count"?: TtscLintRuleSetting;
|
|
282
269
|
|
|
283
270
|
/**
|
|
284
|
-
* Prefer `expect(value).toHaveLength(n)` over asserting on
|
|
285
|
-
*
|
|
271
|
+
* Prefer `expect(value).toHaveLength(n)` over asserting on `value.length`
|
|
272
|
+
* directly.
|
|
286
273
|
*
|
|
287
|
-
* The dedicated matcher reports the actual length on failure
|
|
288
|
-
*
|
|
274
|
+
* The dedicated matcher reports the actual length on failure instead of a
|
|
275
|
+
* bare number mismatch.
|
|
289
276
|
*
|
|
290
277
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/prefer-to-have-length.md
|
|
291
278
|
*/
|
|
292
279
|
"playwright/prefer-to-have-length"?: TtscLintRuleSetting;
|
|
293
280
|
|
|
294
281
|
/**
|
|
295
|
-
* Prefer Playwright web-first assertions
|
|
296
|
-
*
|
|
297
|
-
* composed manual waits.
|
|
282
|
+
* Prefer Playwright web-first assertions (`expect(locator).toBeVisible()`,
|
|
283
|
+
* `.toHaveText(...)`) over composed manual waits.
|
|
298
284
|
*
|
|
299
|
-
* Web-first matchers retry until the predicate holds, which is how
|
|
300
|
-
*
|
|
301
|
-
* jitter.
|
|
285
|
+
* Web-first matchers retry until the predicate holds, which is how Playwright
|
|
286
|
+
* keeps tests stable under animation and network jitter.
|
|
302
287
|
*
|
|
303
288
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/prefer-web-first-assertions.md
|
|
304
289
|
*/
|
|
@@ -307,8 +292,8 @@ export interface ITtscLintPlaywrightRules {
|
|
|
307
292
|
/**
|
|
308
293
|
* Require an explicit `timeout` option on `expect(...).toPass(...)`.
|
|
309
294
|
*
|
|
310
|
-
* The matcher otherwise inherits the suite-wide timeout and can
|
|
311
|
-
*
|
|
295
|
+
* The matcher otherwise inherits the suite-wide timeout and can strand CI
|
|
296
|
+
* when the underlying assertion never settles.
|
|
312
297
|
*
|
|
313
298
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/require-to-pass-timeout.md
|
|
314
299
|
*/
|
|
@@ -317,9 +302,8 @@ export interface ITtscLintPlaywrightRules {
|
|
|
317
302
|
/**
|
|
318
303
|
* Require a message argument on `expect(...).toThrow(...)`.
|
|
319
304
|
*
|
|
320
|
-
* Without a message the assertion only confirms that something
|
|
321
|
-
*
|
|
322
|
-
* green.
|
|
305
|
+
* Without a message the assertion only confirms that something threw, so a
|
|
306
|
+
* regression that throws a different error still looks green.
|
|
323
307
|
*
|
|
324
308
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/require-to-throw-message.md
|
|
325
309
|
*/
|
|
@@ -328,32 +312,30 @@ export interface ITtscLintPlaywrightRules {
|
|
|
328
312
|
/**
|
|
329
313
|
* Validate the shape of Playwright `test.describe` callbacks.
|
|
330
314
|
*
|
|
331
|
-
* The callback must be synchronous and take no arguments —
|
|
332
|
-
*
|
|
333
|
-
*
|
|
315
|
+
* The callback must be synchronous and take no arguments — Playwright ignores
|
|
316
|
+
* returned Promises and stray parameters at the describe level, silently
|
|
317
|
+
* swallowing setup errors.
|
|
334
318
|
*
|
|
335
319
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/valid-describe-callback.md
|
|
336
320
|
*/
|
|
337
321
|
"playwright/valid-describe-callback"?: TtscLintRuleSetting;
|
|
338
322
|
|
|
339
323
|
/**
|
|
340
|
-
* Validate `expect(...)` arity and matcher chaining: exactly one
|
|
341
|
-
*
|
|
342
|
-
* properly awaited.
|
|
324
|
+
* Validate `expect(...)` arity and matcher chaining: exactly one argument,
|
|
325
|
+
* terminated by a matcher call, and async matchers properly awaited.
|
|
343
326
|
*
|
|
344
|
-
* Malformed expects either throw at runtime or pass without
|
|
345
|
-
*
|
|
327
|
+
* Malformed expects either throw at runtime or pass without asserting
|
|
328
|
+
* anything.
|
|
346
329
|
*
|
|
347
330
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/valid-expect.md
|
|
348
331
|
*/
|
|
349
332
|
"playwright/valid-expect"?: TtscLintRuleSetting;
|
|
350
333
|
|
|
351
334
|
/**
|
|
352
|
-
* Require non-empty static Playwright test and `describe`
|
|
353
|
-
* titles.
|
|
335
|
+
* Require non-empty static Playwright test and `describe` titles.
|
|
354
336
|
*
|
|
355
|
-
* Empty or dynamically-built titles produce unreadable reports and
|
|
356
|
-
*
|
|
337
|
+
* Empty or dynamically-built titles produce unreadable reports and break
|
|
338
|
+
* filter-by-name flags like `--grep`.
|
|
357
339
|
*
|
|
358
340
|
* @reference https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/valid-title.md
|
|
359
341
|
*/
|