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