diff --git a/__tests__/__outputs__/dart-json.md b/__tests__/__outputs__/dart-json.md
index 5e5da8d..dfe8e05 100644
--- a/__tests__/__outputs__/dart-json.md
+++ b/__tests__/__outputs__/dart-json.md
@@ -1,31 +1,31 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/dart-json.json|1:white_check_mark:|4:x:|1:warning:|4s|
-## :x: fixtures/dart-json.json
+|fixtures/dart-json.json|1 ✅|4 ❌|1 ⚪|4s|
+## ❌ fixtures/dart-json.json
**6** tests were completed in **4s** with **1** passed, **4** failed and **1** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[test/main_test.dart](#r0s0)|1:white_check_mark:|3:x:||74ms|
-|[test/second_test.dart](#r0s1)||1:x:|1:warning:|51ms|
-### :x: test/main_test.dart
+|[test/main_test.dart](#r0s0)|1 ✅|3 ❌||74ms|
+|[test/second_test.dart](#r0s1)||1 ❌|1 ⚪|51ms|
+### ❌ test/main_test.dart
```
Test 1
- :white_check_mark: Passing test
+ ✅ Passing test
Test 1 Test 1.1
- :x: Failing test
+ ❌ Failing test
Expected: <2>
Actual: <1>
- :x: Exception in target unit
+ ❌ Exception in target unit
Exception: Some error
Test 2
- :x: Exception in test
+ ❌ Exception in test
Exception: Some error
```
-### :x: test/second_test.dart
+### ❌ test/second_test.dart
```
-:x: Timeout test
+❌ Timeout test
TimeoutException after 0:00:00.000001: Test timed out after 0 seconds.
-:warning: Skipped test
+⚪ Skipped test
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/dotnet-trx.md b/__tests__/__outputs__/dotnet-trx.md
index 9b3ef03..7a38b19 100644
--- a/__tests__/__outputs__/dotnet-trx.md
+++ b/__tests__/__outputs__/dotnet-trx.md
@@ -1,34 +1,34 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/dotnet-trx.trx|5:white_check_mark:|5:x:|1:warning:|1s|
-## :x: fixtures/dotnet-trx.trx
+|fixtures/dotnet-trx.trx|5 ✅|5 ❌|1 ⚪|1s|
+## ❌ fixtures/dotnet-trx.trx
**11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[DotnetTests.XUnitTests.CalculatorTests](#r0s0)|5:white_check_mark:|5:x:|1:warning:|118ms|
-### :x: DotnetTests.XUnitTests.CalculatorTests
+|[DotnetTests.XUnitTests.CalculatorTests](#r0s0)|5 ✅|5 ❌|1 ⚪|118ms|
+### ❌ DotnetTests.XUnitTests.CalculatorTests
```
-:white_check_mark: Custom Name
-:x: Exception_In_TargetTest
+✅ Custom Name
+❌ Exception_In_TargetTest
System.DivideByZeroException : Attempted to divide by zero.
-:x: Exception_In_Test
+❌ Exception_In_Test
System.Exception : Test
-:x: Failing_Test
+❌ Failing_Test
Assert.Equal() Failure
Expected: 3
Actual: 2
-:white_check_mark: Is_Even_Number(i: 2)
-:x: Is_Even_Number(i: 3)
+✅ Is_Even_Number(i: 2)
+❌ Is_Even_Number(i: 3)
Assert.True() Failure
Expected: True
Actual: False
-:white_check_mark: Passing_Test
-:white_check_mark: Should be even number(i: 2)
-:x: Should be even number(i: 3)
+✅ Passing_Test
+✅ Should be even number(i: 2)
+❌ Should be even number(i: 3)
Assert.True() Failure
Expected: True
Actual: False
-:warning: Skipped_Test
-:white_check_mark: Timeout_Test
+⚪ Skipped_Test
+✅ Timeout_Test
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/fluent-validation-test-results.md b/__tests__/__outputs__/fluent-validation-test-results.md
index 0df62fd..fe13390 100644
--- a/__tests__/__outputs__/fluent-validation-test-results.md
+++ b/__tests__/__outputs__/fluent-validation-test-results.md
@@ -3,1061 +3,1061 @@
|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/external/FluentValidation.Tests.trx|803:white_check_mark:||1:warning:|4s|
-## :white_check_mark: fixtures/external/FluentValidation.Tests.trx
+|fixtures/external/FluentValidation.Tests.trx|803 ✅||1 ⚪|4s|
+## ✅ fixtures/external/FluentValidation.Tests.trx
**804** tests were completed in **4s** with **803** passed, **0** failed and **1** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[FluentValidation.Tests.AbstractValidatorTester](#r0s0)|35:white_check_mark:|||12ms|
-|[FluentValidation.Tests.AccessorCacheTests](#r0s1)|4:white_check_mark:||1:warning:|4ms|
-|[FluentValidation.Tests.AssemblyScannerTester](#r0s2)|2:white_check_mark:|||2ms|
-|[FluentValidation.Tests.CascadingFailuresTester](#r0s3)|38:white_check_mark:|||23ms|
-|[FluentValidation.Tests.ChainedValidationTester](#r0s4)|13:white_check_mark:|||6ms|
-|[FluentValidation.Tests.ChainingValidatorsTester](#r0s5)|3:white_check_mark:|||1ms|
-|[FluentValidation.Tests.ChildRulesTests](#r0s6)|2:white_check_mark:|||7ms|
-|[FluentValidation.Tests.CollectionValidatorWithParentTests](#r0s7)|16:white_check_mark:|||13ms|
-|[FluentValidation.Tests.ComplexValidationTester](#r0s8)|17:white_check_mark:|||26ms|
-|[FluentValidation.Tests.ConditionTests](#r0s9)|18:white_check_mark:|||9ms|
-|[FluentValidation.Tests.CreditCardValidatorTests](#r0s10)|2:white_check_mark:|||2ms|
-|[FluentValidation.Tests.CustomFailureActionTester](#r0s11)|3:white_check_mark:|||1ms|
-|[FluentValidation.Tests.CustomMessageFormatTester](#r0s12)|6:white_check_mark:|||3ms|
-|[FluentValidation.Tests.CustomValidatorTester](#r0s13)|10:white_check_mark:|||6ms|
-|[FluentValidation.Tests.DefaultValidatorExtensionTester](#r0s14)|30:white_check_mark:|||38ms|
-|[FluentValidation.Tests.EmailValidatorTests](#r0s15)|36:white_check_mark:|||18ms|
-|[FluentValidation.Tests.EmptyTester](#r0s16)|9:white_check_mark:|||5ms|
-|[FluentValidation.Tests.EnumValidatorTests](#r0s17)|12:white_check_mark:|||24ms|
-|[FluentValidation.Tests.EqualValidatorTests](#r0s18)|10:white_check_mark:|||3ms|
-|[FluentValidation.Tests.ExactLengthValidatorTester](#r0s19)|6:white_check_mark:|||2ms|
-|[FluentValidation.Tests.ExclusiveBetweenValidatorTests](#r0s20)|19:white_check_mark:|||6ms|
-|[FluentValidation.Tests.ExtensionTester](#r0s21)|4:white_check_mark:|||1ms|
-|[FluentValidation.Tests.ForEachRuleTests](#r0s22)|34:white_check_mark:|||47ms|
-|[FluentValidation.Tests.GreaterThanOrEqualToValidatorTester](#r0s23)|14:white_check_mark:|||5ms|
-|[FluentValidation.Tests.GreaterThanValidatorTester](#r0s24)|13:white_check_mark:|||4ms|
-|[FluentValidation.Tests.InclusiveBetweenValidatorTests](#r0s25)|18:white_check_mark:|||4ms|
-|[FluentValidation.Tests.InheritanceValidatorTest](#r0s26)|11:white_check_mark:|||18ms|
-|[FluentValidation.Tests.InlineValidatorTester](#r0s27)|1:white_check_mark:|||2ms|
-|[FluentValidation.Tests.LanguageManagerTests](#r0s28)|21:white_check_mark:|||28ms|
-|[FluentValidation.Tests.LengthValidatorTests](#r0s29)|16:white_check_mark:|||17ms|
-|[FluentValidation.Tests.LessThanOrEqualToValidatorTester](#r0s30)|13:white_check_mark:|||4ms|
-|[FluentValidation.Tests.LessThanValidatorTester](#r0s31)|16:white_check_mark:|||6ms|
-|[FluentValidation.Tests.LocalisedMessagesTester](#r0s32)|6:white_check_mark:|||3ms|
-|[FluentValidation.Tests.LocalisedNameTester](#r0s33)|2:white_check_mark:|||1ms|
-|[FluentValidation.Tests.MemberAccessorTests](#r0s34)|9:white_check_mark:|||5ms|
-|[FluentValidation.Tests.MessageFormatterTests](#r0s35)|10:white_check_mark:|||2ms|
-|[FluentValidation.Tests.ModelLevelValidatorTests](#r0s36)|2:white_check_mark:|||1ms|
-|[FluentValidation.Tests.NameResolutionPluggabilityTester](#r0s37)|3:white_check_mark:|||2ms|
-|[FluentValidation.Tests.NotEmptyTester](#r0s38)|10:white_check_mark:|||7ms|
-|[FluentValidation.Tests.NotEqualValidatorTests](#r0s39)|11:white_check_mark:|||7ms|
-|[FluentValidation.Tests.NotNullTester](#r0s40)|5:white_check_mark:|||1ms|
-|[FluentValidation.Tests.NullTester](#r0s41)|5:white_check_mark:|||2ms|
-|[FluentValidation.Tests.OnFailureTests](#r0s42)|10:white_check_mark:|||8ms|
-|[FluentValidation.Tests.PredicateValidatorTester](#r0s43)|5:white_check_mark:|||2ms|
-|[FluentValidation.Tests.PropertyChainTests](#r0s44)|7:white_check_mark:|||1ms|
-|[FluentValidation.Tests.RegularExpressionValidatorTests](#r0s45)|15:white_check_mark:|||6ms|
-|[FluentValidation.Tests.RuleBuilderTests](#r0s46)|29:white_check_mark:|||96ms|
-|[FluentValidation.Tests.RuleDependencyTests](#r0s47)|14:white_check_mark:|||3s|
-|[FluentValidation.Tests.RulesetTests](#r0s48)|21:white_check_mark:|||14ms|
-|[FluentValidation.Tests.ScalePrecisionValidatorTests](#r0s49)|6:white_check_mark:|||4ms|
-|[FluentValidation.Tests.SharedConditionTests](#r0s50)|42:white_check_mark:|||42ms|
-|[FluentValidation.Tests.StandalonePropertyValidationTester](#r0s51)|1:white_check_mark:|||0ms|
-|[FluentValidation.Tests.StringEnumValidatorTests](#r0s52)|10:white_check_mark:|||5ms|
-|[FluentValidation.Tests.TrackingCollectionTests](#r0s53)|3:white_check_mark:|||2ms|
-|[FluentValidation.Tests.TransformTests](#r0s54)|4:white_check_mark:|||3ms|
-|[FluentValidation.Tests.UserSeverityTester](#r0s55)|7:white_check_mark:|||3ms|
-|[FluentValidation.Tests.UserStateTester](#r0s56)|4:white_check_mark:|||3ms|
-|[FluentValidation.Tests.ValidateAndThrowTester](#r0s57)|14:white_check_mark:|||25ms|
-|[FluentValidation.Tests.ValidationResultTests](#r0s58)|8:white_check_mark:|||8ms|
-|[FluentValidation.Tests.ValidatorDescriptorTester](#r0s59)|5:white_check_mark:|||1ms|
-|[FluentValidation.Tests.ValidatorSelectorTests](#r0s60)|10:white_check_mark:|||9ms|
-|[FluentValidation.Tests.ValidatorTesterTester](#r0s61)|73:white_check_mark:|||74ms|
-### :white_check_mark: FluentValidation.Tests.AbstractValidatorTester
-```
-:white_check_mark: Can_replace_default_errorcode_resolver
-:white_check_mark: CanValidateInstancesOfType_returns_false_when_comparing_against_some_other_type
-:white_check_mark: CanValidateInstancesOfType_returns_true_when_comparing_against_same_type
-:white_check_mark: CanValidateInstancesOfType_returns_true_when_comparing_against_subclass
-:white_check_mark: Default_error_code_should_be_class_name
-:white_check_mark: OverridePropertyName_should_override_property_name
-:white_check_mark: OverridePropertyName_with_lambda_should_override_property_name
-:white_check_mark: PreValidate_bypasses_nullcheck_on_instance
-:white_check_mark: RuleForeach_with_null_instances
-:white_check_mark: Should_be_valid_when_there_are_no_failures_for_single_property
-:white_check_mark: Should_not_main_state
-:white_check_mark: Should_throw_for_non_member_expression_when_validating_single_property
-:white_check_mark: Should_throw_when_rule_is_null
-:white_check_mark: Should_validate_public_Field
-:white_check_mark: Should_validate_single_Field
-:white_check_mark: Should_validate_single_property
-:white_check_mark: Should_validate_single_property_where_invalid_property_as_string
-:white_check_mark: Should_validate_single_property_where_property_as_string
-:white_check_mark: Uses_named_parameters_to_validate_ruleset
-:white_check_mark: Validates_single_property_by_path
-:white_check_mark: Validates_type_when_using_non_generic_validate_overload
-:white_check_mark: When_the_validators_fail_then_the_errors_Should_be_accessible_via_the_errors_property
-:white_check_mark: When_the_validators_fail_then_validatorrunner_should_return_false
-:white_check_mark: When_the_Validators_pass_then_the_validatorRunner_should_return_true
-:white_check_mark: WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_Validate(preValidationResult: )
-:white_check_mark: WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_Validate(preValidationResult: AnotherInt Test Message)
-:white_check_mark: WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_ValidateAsync(preValidationResult: )
-:white_check_mark: WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_ValidateAsync(preValidationResult: AnotherInt Test Message)
-:white_check_mark: WhenPreValidationReturnsTrue_ValidatorsGetHit_Validate
-:white_check_mark: WhenPreValidationReturnsTrue_ValidatorsGetHit_ValidateAsync
-:white_check_mark: WithErrorCode_should_override_error_code
-:white_check_mark: WithMessage_and_WithErrorCode_should_override_error_message_and_error_code
-:white_check_mark: WithMessage_should_override_error_message
-:white_check_mark: WithName_should_override_field_name
-:white_check_mark: WithName_should_override_field_name_with_value_from_other_property
-```
-### :white_check_mark: FluentValidation.Tests.AccessorCacheTests
-```
-:warning: Benchmark
-:white_check_mark: Equality_comparison_check
-:white_check_mark: Gets_accessor
-:white_check_mark: Gets_member_for_nested_property
-:white_check_mark: Identifies_if_memberexp_acts_on_model_instance
-```
-### :white_check_mark: FluentValidation.Tests.AssemblyScannerTester
-```
-:white_check_mark: Finds_validators_for_types
-:white_check_mark: ForEach_iterates_over_types
-```
-### :white_check_mark: FluentValidation.Tests.CascadingFailuresTester
-```
-:white_check_mark: Cascade_mode_can_be_set_after_validator_instantiated
-:white_check_mark: Cascade_mode_can_be_set_after_validator_instantiated_async
-:white_check_mark: Cascade_mode_can_be_set_after_validator_instantiated_async_legacy
-:white_check_mark: Cascade_mode_can_be_set_after_validator_instantiated_legacy
-:white_check_mark: Validation_continues_on_failure
-:white_check_mark: Validation_continues_on_failure_async
-:white_check_mark: Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level
-:white_check_mark: Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_async
-:white_check_mark: Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_async_legacy
-:white_check_mark: Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_legacy
-:white_check_mark: Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level
-:white_check_mark: Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_async
-:white_check_mark: Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_async_legacy
-:white_check_mark: Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_legacy
-:white_check_mark: Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop
-:white_check_mark: Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_async
-:white_check_mark: Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_async_legacy
-:white_check_mark: Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_legacy
-:white_check_mark: Validation_continues_when_set_to_Continue_at_validator_level
-:white_check_mark: Validation_continues_when_set_to_Continue_at_validator_level_async
-:white_check_mark: Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level
-:white_check_mark: Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_async
-:white_check_mark: Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_async_legacy
-:white_check_mark: Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_legacy
-:white_check_mark: Validation_stops_on_first_failure
-:white_check_mark: Validation_stops_on_first_failure_async
-:white_check_mark: Validation_stops_on_first_failure_async_legacy
-:white_check_mark: Validation_stops_on_first_failure_legacy
-:white_check_mark: Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level
-:white_check_mark: Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_and_async_validator_is_invoked_synchronously
-:white_check_mark: Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_and_async_validator_is_invoked_synchronously_legacy
-:white_check_mark: Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_async
-:white_check_mark: Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_async_legacy
-:white_check_mark: Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_legacy
-:white_check_mark: Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level
-:white_check_mark: Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_async
-:white_check_mark: Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_async_legacy
-:white_check_mark: Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_legacy
-```
-### :white_check_mark: FluentValidation.Tests.ChainedValidationTester
-```
-:white_check_mark: Can_validate_using_validator_for_base_type
-:white_check_mark: Chained_property_should_be_excluded
-:white_check_mark: Chained_validator_descriptor
-:white_check_mark: Chained_validator_should_not_be_invoked_on_null_property
-:white_check_mark: Condition_should_work_with_chained_property
-:white_check_mark: Explicitly_included_properties_should_be_propagated_to_nested_validators
-:white_check_mark: Explicitly_included_properties_should_be_propagated_to_nested_validators_using_strings
-:white_check_mark: Separate_validation_on_chained_property
-:white_check_mark: Separate_validation_on_chained_property_conditional
-:white_check_mark: Separate_validation_on_chained_property_valid
-:white_check_mark: Should_allow_normal_rules_and_chained_property_on_same_property
-:white_check_mark: Uses_explicit_ruleset
-:white_check_mark: Validates_chained_property
-```
-### :white_check_mark: FluentValidation.Tests.ChainingValidatorsTester
-```
-:white_check_mark: Options_should_only_apply_to_current_validator
-:white_check_mark: Should_create_multiple_validators
-:white_check_mark: Should_execute_multiple_validators
-```
-### :white_check_mark: FluentValidation.Tests.ChildRulesTests
-```
-:white_check_mark: Can_define_nested_rules_for_collection
-:white_check_mark: ChildRules_works_with_RuleSet
-```
-### :white_check_mark: FluentValidation.Tests.CollectionValidatorWithParentTests
-```
-:white_check_mark: Async_condition_should_work_with_child_collection
-:white_check_mark: Can_specify_condition_for_individual_collection_elements
-:white_check_mark: Can_validate_collection_using_validator_for_base_type
-:white_check_mark: Collection_should_be_excluded
-:white_check_mark: Collection_should_be_explicitly_included_with_expression
-:white_check_mark: Collection_should_be_explicitly_included_with_string
-:white_check_mark: Condition_should_work_with_child_collection
-:white_check_mark: Creates_validator_using_context_from_property_value
-:white_check_mark: Should_override_property_name
-:white_check_mark: Should_work_with_top_level_collection_validator
-:white_check_mark: Should_work_with_top_level_collection_validator_and_overriden_name
-:white_check_mark: Skips_null_items
-:white_check_mark: Validates_collection
-:white_check_mark: Validates_collection_asynchronously
-:white_check_mark: Validates_collection_several_levels_deep
-:white_check_mark: Validates_collection_several_levels_deep_async
-```
-### :white_check_mark: FluentValidation.Tests.ComplexValidationTester
-```
-:white_check_mark: Async_condition_should_work_with_complex_property
-:white_check_mark: Async_condition_should_work_with_complex_property_when_validator_invoked_synchronously
-:white_check_mark: Can_directly_validate_multiple_fields_of_same_type
-:white_check_mark: Can_validate_using_validator_for_base_type
-:white_check_mark: Complex_property_should_be_excluded
-:white_check_mark: Complex_validator_should_not_be_invoked_on_null_property
-:white_check_mark: Condition_should_work_with_complex_property
-:white_check_mark: Condition_should_work_with_complex_property_when_invoked_async
-:white_check_mark: Explicitly_included_properties_should_be_propagated_to_nested_validators
-:white_check_mark: Explicitly_included_properties_should_be_propagated_to_nested_validators_using_strings
-:white_check_mark: Multiple_rules_in_chain_with_childvalidator_shouldnt_reuse_accessor
-:white_check_mark: Multiple_rules_in_chain_with_childvalidator_shouldnt_reuse_accessor_async
-:white_check_mark: Should_allow_normal_rules_and_complex_property_on_same_property
-:white_check_mark: Should_override_propertyName
-:white_check_mark: Validates_child_validator_asynchronously
-:white_check_mark: Validates_child_validator_synchronously
-:white_check_mark: Validates_complex_property
-```
-### :white_check_mark: FluentValidation.Tests.ConditionTests
-```
-:white_check_mark: Async_condition_executed_synchronosuly_with_asynchronous_collection_rule
-:white_check_mark: Async_condition_executed_synchronosuly_with_asynchronous_rule
-:white_check_mark: Async_condition_executed_synchronosuly_with_synchronous_collection_role
-:white_check_mark: Async_condition_executed_synchronosuly_with_synchronous_role
-:white_check_mark: Async_condition_is_applied_to_all_validators_in_the_chain
-:white_check_mark: Async_condition_is_applied_to_all_validators_in_the_chain_when_executed_synchronously
-:white_check_mark: Async_condition_is_applied_to_single_validator_in_the_chain_when_ApplyConditionTo_set_to_CurrentValidator
-:white_check_mark: Condition_is_applied_to_all_validators_in_the_chain
-:white_check_mark: Condition_is_applied_to_single_validator_in_the_chain_when_ApplyConditionTo_set_to_CurrentValidator
-:white_check_mark: Sync_condition_is_applied_to_async_validators
-:white_check_mark: Validation_should_fail_when_async_condition_does_not_match
-:white_check_mark: Validation_should_fail_when_async_condition_matches
-:white_check_mark: Validation_should_fail_when_condition_does_not_match
-:white_check_mark: Validation_should_fail_when_condition_matches
-:white_check_mark: Validation_should_succeed_when_async_condition_does_not_match
-:white_check_mark: Validation_should_succeed_when_async_condition_matches
-:white_check_mark: Validation_should_succeed_when_condition_does_not_match
-:white_check_mark: Validation_should_succeed_when_condition_matches
-```
-### :white_check_mark: FluentValidation.Tests.CreditCardValidatorTests
-```
-:white_check_mark: IsValidTests
-:white_check_mark: When_validation_fails_the_default_error_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.CustomFailureActionTester
-```
-:white_check_mark: Does_not_invoke_action_if_validation_success
-:white_check_mark: Invokes_custom_action_on_failure
-:white_check_mark: Passes_object_being_validated_to_action
-```
-### :white_check_mark: FluentValidation.Tests.CustomMessageFormatTester
-```
-:white_check_mark: Replaces_propertyvalue_placeholder
-:white_check_mark: Replaces_propertyvalue_with_empty_string_when_null
-:white_check_mark: Should_format_custom_message
-:white_check_mark: Uses_custom_delegate_for_building_message
-:white_check_mark: Uses_custom_delegate_for_building_message_only_for_specific_validator
-:white_check_mark: Uses_property_value_in_message
-```
-### :white_check_mark: FluentValidation.Tests.CustomValidatorTester
-```
-:white_check_mark: New_Custom_Returns_single_failure
-:white_check_mark: New_Custom_Returns_single_failure_async
-:white_check_mark: New_custom_uses_empty_property_name_for_model_level_rule
-:white_check_mark: New_Custom_When_property_name_omitted_infers_property_name
-:white_check_mark: New_Custom_When_property_name_omitted_infers_property_name_nested
-:white_check_mark: New_Custom_within_ruleset
-:white_check_mark: New_CustomAsync_within_ruleset
-:white_check_mark: Perserves_property_chain_using_custom
-:white_check_mark: Runs_async_rule_synchronously_when_validator_invoked_synchronously
-:white_check_mark: Runs_sync_rule_asynchronously_when_validator_invoked_asynchronously
-```
-### :white_check_mark: FluentValidation.Tests.DefaultValidatorExtensionTester
-```
-:white_check_mark: Empty_should_create_EmptyValidator
-:white_check_mark: Equal_should_create_EqualValidator_with_explicit_value
-:white_check_mark: Equal_should_create_EqualValidator_with_lambda
-:white_check_mark: GreaterThan_should_create_GreaterThanValidator_with_explicit_value
-:white_check_mark: GreaterThan_should_create_GreaterThanValidator_with_lambda
-:white_check_mark: GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_explicit_value
-:white_check_mark: GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_lambda
-:white_check_mark: GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_lambda_with_other_Nullable
-:white_check_mark: Length_should_create_ExactLengthValidator
-:white_check_mark: Length_should_create_LengthValidator
-:white_check_mark: Length_should_create_MaximumLengthValidator
-:white_check_mark: Length_should_create_MinimumLengthValidator
-:white_check_mark: LessThan_should_create_LessThanValidator_with_explicit_value
-:white_check_mark: LessThan_should_create_LessThanValidator_with_lambda
-:white_check_mark: LessThanOrEqual_should_create_LessThanOrEqualValidator_with_explicit_value
-:white_check_mark: LessThanOrEqual_should_create_LessThanOrEqualValidator_with_lambda
-:white_check_mark: LessThanOrEqual_should_create_LessThanOrEqualValidator_with_lambda_with_other_Nullable
-:white_check_mark: Must_should_create_PredicateValidator_with_context
-:white_check_mark: Must_should_create_PredicateValidator_with_PropertyValidatorContext
-:white_check_mark: Must_should_create_PredicteValidator
-:white_check_mark: MustAsync_should_create_AsyncPredicateValidator_with_context
-:white_check_mark: MustAsync_should_create_AsyncPredicateValidator_with_PropertyValidatorContext
-:white_check_mark: MustAsync_should_create_AsyncPredicteValidator
-:white_check_mark: MustAsync_should_not_throw_InvalidCastException
-:white_check_mark: NotEmpty_should_create_NotEmptyValidator
-:white_check_mark: NotEqual_should_create_NotEqualValidator_with_explicit_value
-:white_check_mark: NotEqual_should_create_NotEqualValidator_with_lambda
-:white_check_mark: NotNull_should_create_NotNullValidator
-:white_check_mark: ScalePrecision_should_create_ScalePrecisionValidator
-:white_check_mark: ScalePrecision_should_create_ScalePrecisionValidator_with_ignore_trailing_zeros
-```
-### :white_check_mark: FluentValidation.Tests.EmailValidatorTests
-```
-:white_check_mark: Fails_email_validation_aspnetcore_compatible(email: " \r \t \n")
-:white_check_mark: Fails_email_validation_aspnetcore_compatible(email: "")
-:white_check_mark: Fails_email_validation_aspnetcore_compatible(email: "@someDomain.com")
-:white_check_mark: Fails_email_validation_aspnetcore_compatible(email: "@someDomain@abc.com")
-:white_check_mark: Fails_email_validation_aspnetcore_compatible(email: "0")
-:white_check_mark: Fails_email_validation_aspnetcore_compatible(email: "someName")
-:white_check_mark: Fails_email_validation_aspnetcore_compatible(email: "someName@")
-:white_check_mark: Fails_email_validation_aspnetcore_compatible(email: "someName@a@b.com")
-:white_check_mark: Invalid_email_addressex_regex(email: "")
-:white_check_mark: Invalid_email_addressex_regex(email: "first.last@test..co.uk")
-:white_check_mark: Invalid_email_addressex_regex(email: "testperso")
-:white_check_mark: Invalid_email_addressex_regex(email: "thisisaverylongstringcodeplex.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: " @someDomain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "!#$%&'*+-/=?^_`|~@someDomain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "\"firstName.lastName\"@someDomain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "1234@someDomain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "firstName.lastName@someDomain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "someName@1234.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "someName@some_domain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "someName@some~domain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "someName@someDomain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: "someName@someDomain.com")
-:white_check_mark: Valid_email_addresses_aspnetcore_compatible(email: null)
-:white_check_mark: Valid_email_addresses_regex(email: "__somename@example.com")
-:white_check_mark: Valid_email_addresses_regex(email: "!def!xyz%abc@example.com")
-:white_check_mark: Valid_email_addresses_regex(email: "\"Abc@def\"@example.com")
-:white_check_mark: Valid_email_addresses_regex(email: "\"Abc\\@def\"@example.com")
-:white_check_mark: Valid_email_addresses_regex(email: "\"Fred Bloggs\"@example.com")
-:white_check_mark: Valid_email_addresses_regex(email: "\"Joe\\Blow\"@example.com")
-:white_check_mark: Valid_email_addresses_regex(email: "$A12345@example.com")
-:white_check_mark: Valid_email_addresses_regex(email: "customer/department=shipping@example.com")
-:white_check_mark: Valid_email_addresses_regex(email: "first.last@test.co.uk")
-:white_check_mark: Valid_email_addresses_regex(email: "testperson@gmail.com")
-:white_check_mark: Valid_email_addresses_regex(email: "TestPerson@gmail.com")
-:white_check_mark: Valid_email_addresses_regex(email: "testperson+label@gmail.com")
-:white_check_mark: Valid_email_addresses_regex(email: null)
-```
-### :white_check_mark: FluentValidation.Tests.EmptyTester
-```
-:white_check_mark: Passes_for_ienumerable_that_doesnt_implement_ICollection
-:white_check_mark: Passes_when_collection_empty
-:white_check_mark: When_there_is_a_value_then_the_validator_should_fail
-:white_check_mark: When_validation_fails_error_should_be_set
-:white_check_mark: When_value_is_Default_for_type_validator_should_pass_datetime
-:white_check_mark: When_value_is_Default_for_type_validator_should_pass_int
-:white_check_mark: When_value_is_empty_string_validator_should_pass
-:white_check_mark: When_value_is_null_validator_should_pass
-:white_check_mark: When_value_is_whitespace_validation_should_pass
-```
-### :white_check_mark: FluentValidation.Tests.EnumValidatorTests
-```
-:white_check_mark: Flags_enum_invalid_when_using_outofrange_negative_value
-:white_check_mark: Flags_enum_invalid_when_using_outofrange_positive_value
-:white_check_mark: Flags_enum_valid_when_using_bitwise_value
-:white_check_mark: Flags_enum_validates_correctly_when_using_zero_value
-:white_check_mark: Flags_enum_with_overlapping_flags_valid_when_using_bitwise_value
-:white_check_mark: IsValidTests
-:white_check_mark: Nullable_enum_invalid_when_bad_value_specified
-:white_check_mark: Nullable_enum_valid_when_property_value_is_null
-:white_check_mark: Nullable_enum_valid_when_value_specified
-:white_check_mark: When_the_enum_is_initialized_with_invalid_value_then_the_validator_should_fail
-:white_check_mark: When_the_enum_is_not_initialized_with_valid_value_then_the_validator_should_fail
-:white_check_mark: When_validation_fails_the_default_error_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.EqualValidatorTests
-```
-:white_check_mark: Comparison_property_uses_custom_resolver
-:white_check_mark: Should_store_comparison_type
-:white_check_mark: Should_store_property_to_compare
-:white_check_mark: Should_succeed_on_case_insensitive_comparison
-:white_check_mark: Should_succeed_on_case_insensitive_comparison_using_expression
-:white_check_mark: Should_use_ordinal_comparison_by_default
-:white_check_mark: Validates_against_property
-:white_check_mark: When_the_objects_are_equal_validation_should_succeed
-:white_check_mark: When_the_objects_are_not_equal_validation_should_fail
-:white_check_mark: When_validation_fails_the_error_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.ExactLengthValidatorTester
-```
-:white_check_mark: Min_and_max_properties_should_be_set
-:white_check_mark: When_exact_length_rule_failes_error_should_have_exact_length_error_errorcode
-:white_check_mark: When_the_text_is_an_exact_length_the_validator_should_pass
-:white_check_mark: When_the_text_length_is_larger_the_validator_should_fail
-:white_check_mark: When_the_text_length_is_smaller_the_validator_should_fail
-:white_check_mark: When_the_validator_fails_the_error_message_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.ExclusiveBetweenValidatorTests
-```
-:white_check_mark: To_and_from_properties_should_be_set
-:white_check_mark: To_and_from_properties_should_be_set_for_dates
-:white_check_mark: To_and_from_properties_should_be_set_for_strings
-:white_check_mark: Validates_with_nullable_when_property_is_null
-:white_check_mark: Validates_with_nullable_when_property_not_null
-:white_check_mark: When_the_text_is_larger_than_the_range_then_the_validator_should_fail
-:white_check_mark: When_the_text_is_larger_than_the_range_then_the_validator_should_fail_for_strings
-:white_check_mark: When_the_to_is_smaller_than_the_from_then_the_validator_should_throw
-:white_check_mark: When_the_to_is_smaller_than_the_from_then_the_validator_should_throw_for_strings
-:white_check_mark: When_the_validator_fails_the_error_message_should_be_set
-:white_check_mark: When_the_validator_fails_the_error_message_should_be_set_for_strings
-:white_check_mark: When_the_value_is_between_the_range_specified_then_the_validator_should_pass
-:white_check_mark: When_the_value_is_between_the_range_specified_then_the_validator_should_pass_for_strings
-:white_check_mark: When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_fail
-:white_check_mark: When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_fail_for_strings
-:white_check_mark: When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_fail
-:white_check_mark: When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_fail_for_strings
-:white_check_mark: When_the_value_is_smaller_than_the_range_then_the_validator_should_fail
-:white_check_mark: When_the_value_is_smaller_than_the_range_then_the_validator_should_fail_for_strings
-```
-### :white_check_mark: FluentValidation.Tests.ExtensionTester
-```
-:white_check_mark: Should_extract_member_from_member_expression
-:white_check_mark: Should_return_null_for_non_member_expressions
-:white_check_mark: Should_split_pascal_cased_member_name
-:white_check_mark: SplitPascalCase_should_return_null_when_input_is_null
-```
-### :white_check_mark: FluentValidation.Tests.ForEachRuleTests
-```
-:white_check_mark: Async_condition_should_work_with_child_collection
-:white_check_mark: Can_access_colletion_index
-:white_check_mark: Can_access_colletion_index_async
-:white_check_mark: Can_access_parent_index
-:white_check_mark: Can_access_parent_index_async
-:white_check_mark: Can_specify_condition_for_individual_collection_elements
-:white_check_mark: Can_use_cascade_with_RuleForEach
-:white_check_mark: Can_validate_collection_using_validator_for_base_type
-:white_check_mark: Collection_should_be_excluded
-:white_check_mark: Collection_should_be_explicitly_included_with_expression
-:white_check_mark: Collection_should_be_explicitly_included_with_string
-:white_check_mark: Condition_should_work_with_child_collection
-:white_check_mark: Correctly_gets_collection_indices
-:white_check_mark: Correctly_gets_collection_indices_async
-:white_check_mark: Executes_rule_for_each_item_in_collection
-:white_check_mark: Executes_rule_for_each_item_in_collection_async
-:white_check_mark: Nested_collection_for_null_property_should_not_throw_null_reference
-:white_check_mark: Nested_conditions_Rule_For
-:white_check_mark: Nested_conditions_Rule_For_Each
-:white_check_mark: Overrides_indexer
-:white_check_mark: Overrides_indexer_async
-:white_check_mark: Regular_rules_can_drop_into_RuleForEach
-:white_check_mark: RuleForEach_async_RunsTasksSynchronously
-:white_check_mark: Should_not_scramble_property_name_when_using_collection_validators_several_levels_deep
-:white_check_mark: Should_not_scramble_property_name_when_using_collection_validators_several_levels_deep_with_ValidateAsync
-:white_check_mark: Should_override_property_name
-:white_check_mark: Skips_null_items
-:white_check_mark: Top_level_collection
-:white_check_mark: Uses_useful_error_message_when_used_on_non_property
-:white_check_mark: Validates_child_validator_asynchronously
-:white_check_mark: Validates_child_validator_synchronously
-:white_check_mark: Validates_collection
-:white_check_mark: When_runs_outside_RuleForEach_loop
-:white_check_mark: When_runs_outside_RuleForEach_loop_async
-```
-### :white_check_mark: FluentValidation.Tests.GreaterThanOrEqualToValidatorTester
-```
-:white_check_mark: Comparison_property_uses_custom_resolver
-:white_check_mark: Comparison_type
-:white_check_mark: Should_fail_when_less_than_input
-:white_check_mark: Should_localize_value
-:white_check_mark: Should_set_default_error_when_validation_fails
-:white_check_mark: Should_succeed_when_equal_to_input
-:white_check_mark: Should_succeed_when_greater_than_input
-:white_check_mark: Validates_nullable_with_nullable_property
-:white_check_mark: Validates_with_nullable_property
-:white_check_mark: Validates_with_nullable_when_property_is_null
-:white_check_mark: Validates_with_nullable_when_property_is_null_cross_property
-:white_check_mark: Validates_with_nullable_when_property_not_null
-:white_check_mark: Validates_with_nullable_when_property_not_null_cross_property
-:white_check_mark: Validates_with_property
-```
-### :white_check_mark: FluentValidation.Tests.GreaterThanValidatorTester
-```
-:white_check_mark: Comparison_property_uses_custom_resolver
-:white_check_mark: Comparison_Type
-:white_check_mark: Should_fail_when_equal_to_input
-:white_check_mark: Should_fail_when_less_than_input
-:white_check_mark: Should_set_default_error_when_validation_fails
-:white_check_mark: Should_succeed_when_greater_than_input
-:white_check_mark: Validates_nullable_with_nullable_property
-:white_check_mark: Validates_with_nullable_property
-:white_check_mark: Validates_with_nullable_when_property_is_null
-:white_check_mark: Validates_with_nullable_when_property_is_null_cross_property
-:white_check_mark: Validates_with_nullable_when_property_not_null
-:white_check_mark: Validates_with_nullable_when_property_not_null_cross_property
-:white_check_mark: Validates_with_property
-```
-### :white_check_mark: FluentValidation.Tests.InclusiveBetweenValidatorTests
-```
-:white_check_mark: To_and_from_properties_should_be_set
-:white_check_mark: To_and_from_properties_should_be_set_for_strings
-:white_check_mark: Validates_with_nullable_when_property_is_null
-:white_check_mark: Validates_with_nullable_when_property_not_null
-:white_check_mark: When_the_text_is_larger_than_the_range_then_the_validator_should_fail
-:white_check_mark: When_the_text_is_larger_than_the_range_then_the_validator_should_fail_for_strings
-:white_check_mark: When_the_to_is_smaller_than_the_from_then_the_validator_should_throw
-:white_check_mark: When_the_to_is_smaller_than_the_from_then_the_validator_should_throw_for_strings
-:white_check_mark: When_the_validator_fails_the_error_message_should_be_set
-:white_check_mark: When_the_validator_fails_the_error_message_should_be_set_for_strings
-:white_check_mark: When_the_value_is_between_the_range_specified_then_the_validator_should_pass
-:white_check_mark: When_the_value_is_between_the_range_specified_then_the_validator_should_pass_for_strings
-:white_check_mark: When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass
-:white_check_mark: When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass_for_strings
-:white_check_mark: When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass
-:white_check_mark: When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass_for_strings
-:white_check_mark: When_the_value_is_smaller_than_the_range_then_the_validator_should_fail
-:white_check_mark: When_the_value_is_smaller_than_the_range_then_the_validator_should_fail_for_strings
-```
-### :white_check_mark: FluentValidation.Tests.InheritanceValidatorTest
-```
-:white_check_mark: Can_use_custom_subclass_with_nongeneric_overload
-:white_check_mark: Validates_collection
-:white_check_mark: Validates_collection_async
-:white_check_mark: Validates_inheritance_async
-:white_check_mark: Validates_inheritance_hierarchy
-:white_check_mark: Validates_ruleset
-:white_check_mark: Validates_ruleset_async
-:white_check_mark: Validates_with_callback
-:white_check_mark: Validates_with_callback_accepting_derived
-:white_check_mark: Validates_with_callback_accepting_derived_async
-:white_check_mark: Validates_with_callback_async
-```
-### :white_check_mark: FluentValidation.Tests.InlineValidatorTester
-```
-:white_check_mark: Uses_inline_validator_to_build_rules
-```
-### :white_check_mark: FluentValidation.Tests.LanguageManagerTests
-```
-:white_check_mark: All_languages_should_be_loaded
-:white_check_mark: All_localizations_have_same_parameters_as_English
-:white_check_mark: Always_use_specific_language
-:white_check_mark: Always_use_specific_language_with_string_source
-:white_check_mark: Can_replace_message
-:white_check_mark: Can_replace_message_without_overriding_all_languages
-:white_check_mark: Disables_localization
-:white_check_mark: Falls_back_to_default_localization_key_when_error_code_key_not_found
-:white_check_mark: Falls_back_to_english_when_culture_not_registered
-:white_check_mark: Falls_back_to_english_when_translation_missing
-:white_check_mark: Falls_back_to_parent_culture
-:white_check_mark: Gets_translation_for_bosnian_latin_culture(cultureName: "bs-Latn-BA")
-:white_check_mark: Gets_translation_for_bosnian_latin_culture(cultureName: "bs-Latn")
-:white_check_mark: Gets_translation_for_bosnian_latin_culture(cultureName: "bs")
-:white_check_mark: Gets_translation_for_croatian_culture
-:white_check_mark: Gets_translation_for_culture
-:white_check_mark: Gets_translation_for_serbian_culture(cultureName: "sr-Latn-RS")
-:white_check_mark: Gets_translation_for_serbian_culture(cultureName: "sr-Latn")
-:white_check_mark: Gets_translation_for_serbian_culture(cultureName: "sr")
-:white_check_mark: Gets_translation_for_specific_culture
-:white_check_mark: Uses_error_code_as_localization_key
-```
-### :white_check_mark: FluentValidation.Tests.LengthValidatorTests
-```
-:white_check_mark: Min_and_max_properties_should_be_set
-:white_check_mark: When_input_is_null_then_the_validator_should_pass
-:white_check_mark: When_the_max_is_smaller_than_the_min_then_the_validator_should_throw
-:white_check_mark: When_the_maxlength_validator_fails_the_error_message_should_be_set
-:white_check_mark: When_the_minlength_validator_fails_the_error_message_should_be_set
-:white_check_mark: When_the_text_is_between_the_lambda_range_specified_then_the_validator_should_pass
-:white_check_mark: When_the_text_is_between_the_range_specified_then_the_validator_should_pass
-:white_check_mark: When_the_text_is_exactly_the_size_of_the_lambda_lower_bound_then_the_validator_should_pass
-:white_check_mark: When_the_text_is_exactly_the_size_of_the_lambda_upper_bound_then_the_validator_should_pass
-:white_check_mark: When_the_text_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass
-:white_check_mark: When_the_text_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass
-:white_check_mark: When_the_text_is_larger_than_the_lambda_range_then_the_validator_should_fail
-:white_check_mark: When_the_text_is_larger_than_the_range_then_the_validator_should_fail
-:white_check_mark: When_the_text_is_smaller_than_the_lambda_range_then_the_validator_should_fail
-:white_check_mark: When_the_text_is_smaller_than_the_range_then_the_validator_should_fail
-:white_check_mark: When_the_validator_fails_the_error_message_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.LessThanOrEqualToValidatorTester
-```
-:white_check_mark: Comparison_property_uses_custom_resolver
-:white_check_mark: Comparison_type
-:white_check_mark: Should_fail_when_greater_than_input
-:white_check_mark: Should_set_default_error_when_validation_fails
-:white_check_mark: Should_succeed_when_equal_to_input
-:white_check_mark: Should_succeed_when_less_than_input
-:white_check_mark: Validates_nullable_with_nullable_property
-:white_check_mark: Validates_with_nullable_property
-:white_check_mark: Validates_with_nullable_when_property_is_null
-:white_check_mark: Validates_with_nullable_when_property_is_null_cross_property
-:white_check_mark: Validates_with_nullable_when_property_not_null
-:white_check_mark: Validates_with_nullable_when_property_not_null_cross_property
-:white_check_mark: Validates_with_property
-```
-### :white_check_mark: FluentValidation.Tests.LessThanValidatorTester
-```
-:white_check_mark: Comparison_property_uses_custom_resolver
-:white_check_mark: Comparison_type
-:white_check_mark: Extracts_property_from_constant_using_expression
-:white_check_mark: Extracts_property_from_expression
-:white_check_mark: Should_fail_when_equal_to_input
-:white_check_mark: Should_fail_when_greater_than_input
-:white_check_mark: Should_set_default_validation_message_when_validation_fails
-:white_check_mark: Should_succeed_when_less_than_input
-:white_check_mark: Should_throw_when_value_to_compare_is_null
-:white_check_mark: Validates_against_property
-:white_check_mark: Validates_nullable_with_nullable_property
-:white_check_mark: Validates_with_nullable_property
-:white_check_mark: Validates_with_nullable_when_property_is_null
-:white_check_mark: Validates_with_nullable_when_property_not_null
-:white_check_mark: Validates_with_nullable_when_property_not_null_cross_property
-:white_check_mark: Validates_with_nullable_when_property_null_cross_property
-```
-### :white_check_mark: FluentValidation.Tests.LocalisedMessagesTester
-```
-:white_check_mark: Correctly_assigns_default_localized_error_message
-:white_check_mark: Does_not_throw_InvalidCastException_when_using_RuleForEach
-:white_check_mark: Formats_string_with_placeholders
-:white_check_mark: Formats_string_with_placeholders_when_you_cant_edit_the_string
-:white_check_mark: Uses_func_to_get_message
-:white_check_mark: Uses_string_format_with_property_value
-```
-### :white_check_mark: FluentValidation.Tests.LocalisedNameTester
-```
-:white_check_mark: Uses_localized_name
-:white_check_mark: Uses_localized_name_expression
-```
-### :white_check_mark: FluentValidation.Tests.MemberAccessorTests
-```
-:white_check_mark: ComplexPropertyGet
-:white_check_mark: ComplexPropertySet
-:white_check_mark: Equality
-:white_check_mark: ImplicitCast
-:white_check_mark: Name
-:white_check_mark: SimpleFieldGet
-:white_check_mark: SimpleFieldSet
-:white_check_mark: SimplePropertyGet
-:white_check_mark: SimplePropertySet
-```
-### :white_check_mark: FluentValidation.Tests.MessageFormatterTests
-```
-:white_check_mark: Adds_argument_and_custom_arguments
-:white_check_mark: Adds_formatted_argument_and_custom_arguments
-:white_check_mark: Adds_formatted_argument_and_formatted_custom_arguments
-:white_check_mark: Adds_PropertyName_to_message
-:white_check_mark: Adds_value_to_message
-:white_check_mark: Format_property_value
-:white_check_mark: Should_ignore_unknown_numbered_parameters
-:white_check_mark: Should_ignore_unknown_parameters
-:white_check_mark: Understands_date_formats
-:white_check_mark: Understands_numeric_formats
-```
-### :white_check_mark: FluentValidation.Tests.ModelLevelValidatorTests
-```
-:white_check_mark: Can_use_child_validator_at_model_level
-:white_check_mark: Validates_at_model_level
-```
-### :white_check_mark: FluentValidation.Tests.NameResolutionPluggabilityTester
-```
-:white_check_mark: Resolves_nested_properties
-:white_check_mark: ShouldHaveValidationError_Should_support_custom_propertynameresolver
-:white_check_mark: Uses_custom_property_name
-```
-### :white_check_mark: FluentValidation.Tests.NotEmptyTester
-```
-:white_check_mark: Fails_for_array
-:white_check_mark: Fails_for_ienumerable_that_doesnt_implement_ICollection
-:white_check_mark: Fails_when_collection_empty
-:white_check_mark: When_there_is_a_value_then_the_validator_should_pass
-:white_check_mark: When_validation_fails_error_should_be_set
-:white_check_mark: When_value_is_Default_for_type_validator_should_fail_datetime
-:white_check_mark: When_value_is_Default_for_type_validator_should_fail_int
-:white_check_mark: When_value_is_empty_string_validator_should_fail
-:white_check_mark: When_value_is_null_validator_should_fail
-:white_check_mark: When_value_is_whitespace_validation_should_fail
-```
-### :white_check_mark: FluentValidation.Tests.NotEqualValidatorTests
-```
-:white_check_mark: Comparison_property_uses_custom_resolver
-:white_check_mark: Should_handle_custom_value_types_correctly
-:white_check_mark: Should_not_be_valid_for_case_insensitve_comparison
-:white_check_mark: Should_not_be_valid_for_case_insensitve_comparison_with_expression
-:white_check_mark: Should_store_comparison_type
-:white_check_mark: Should_store_property_to_compare
-:white_check_mark: Should_use_ordinal_comparison_by_default
-:white_check_mark: Validates_across_properties
-:white_check_mark: When_the_objects_are_equal_then_the_validator_should_fail
-:white_check_mark: When_the_objects_are_not_equal_then_the_validator_should_pass
-:white_check_mark: When_the_validator_fails_the_error_message_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.NotNullTester
-```
-:white_check_mark: Fails_when_nullable_value_type_is_null
-:white_check_mark: Not_null_validator_should_not_crash_with_non_nullable_value_type
-:white_check_mark: NotNullValidator_should_fail_if_value_is_null
-:white_check_mark: NotNullValidator_should_pass_if_value_has_value
-:white_check_mark: When_the_validator_fails_the_error_message_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.NullTester
-```
-:white_check_mark: Not_null_validator_should_not_crash_with_non_nullable_value_type
-:white_check_mark: NullValidator_should_fail_if_value_has_value
-:white_check_mark: NullValidator_should_pass_if_value_is_null
-:white_check_mark: Passes_when_nullable_value_type_is_null
-:white_check_mark: When_the_validator_passes_the_error_message_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.OnFailureTests
-```
-:white_check_mark: OnFailure_called_for_each_failed_rule
-:white_check_mark: OnFailure_called_for_each_failed_rule_asyncAsync
-:white_check_mark: Should_be_able_to_access_error_message_in_OnFailure
-:white_check_mark: ShouldHaveChildValidator_should_be_true
-:white_check_mark: ShouldHaveChildValidator_works_with_Include
-:white_check_mark: WhenAsyncWithOnFailure_should_invoke_condition_on_async_inner_validator
-:white_check_mark: WhenAsyncWithOnFailure_should_invoke_condition_on_inner_validator
-:white_check_mark: WhenAsyncWithOnFailure_should_invoke_condition_on_inner_validator_invoked_synchronously
-:white_check_mark: WhenWithOnFailure_should_invoke_condition_on_async_inner_validator
-:white_check_mark: WhenWithOnFailure_should_invoke_condition_on_inner_validator
-```
-### :white_check_mark: FluentValidation.Tests.PredicateValidatorTester
-```
-:white_check_mark: Should_fail_when_predicate_returns_false
-:white_check_mark: Should_succeed_when_predicate_returns_true
-:white_check_mark: Should_throw_when_predicate_is_null
-:white_check_mark: When_validation_fails_metadata_should_be_set_on_failure
-:white_check_mark: When_validation_fails_the_default_error_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.PropertyChainTests
-```
-:white_check_mark: AddIndexer_throws_when_nothing_added
-:white_check_mark: Calling_ToString_should_construct_string_representation_of_chain
-:white_check_mark: Calling_ToString_should_construct_string_representation_of_chain_with_indexers
-:white_check_mark: Creates_from_expression
-:white_check_mark: Should_be_subchain
-:white_check_mark: Should_ignore_blanks
-:white_check_mark: Should_not_be_subchain
-```
-### :white_check_mark: FluentValidation.Tests.RegularExpressionValidatorTests
-```
-:white_check_mark: Can_access_expression_in_message
-:white_check_mark: Can_access_expression_in_message_lambda
-:white_check_mark: Can_access_expression_in_message_lambda_regex
-:white_check_mark: Uses_lazily_loaded_expression
-:white_check_mark: Uses_lazily_loaded_expression_with_options
-:white_check_mark: Uses_regex_object
-:white_check_mark: When_the_text_does_not_match_the_lambda_regex_regular_expression_then_the_validator_should_fail
-:white_check_mark: When_the_text_does_not_match_the_lambda_regular_expression_then_the_validator_should_fail
-:white_check_mark: When_the_text_does_not_match_the_regular_expression_then_the_validator_should_fail
-:white_check_mark: When_the_text_is_empty_then_the_validator_should_fail
-:white_check_mark: When_the_text_is_null_then_the_validator_should_pass
-:white_check_mark: When_the_text_matches_the_lambda_regex_regular_expression_then_the_validator_should_pass
-:white_check_mark: When_the_text_matches_the_lambda_regular_expression_then_the_validator_should_pass
-:white_check_mark: When_the_text_matches_the_regular_expression_then_the_validator_should_pass
-:white_check_mark: When_validation_fails_the_default_error_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.RuleBuilderTests
-```
-:white_check_mark: Adding_a_validator_should_return_builder
-:white_check_mark: Adding_a_validator_should_store_validator
-:white_check_mark: Calling_validate_should_delegate_to_underlying_validator
-:white_check_mark: Calling_ValidateAsync_should_delegate_to_underlying_async_validator
-:white_check_mark: Calling_ValidateAsync_should_delegate_to_underlying_sync_validator
-:white_check_mark: Conditional_child_validator_should_register_with_validator_type_not_property
-:white_check_mark: Nullable_object_with_async_condition_should_not_throw
-:white_check_mark: Nullable_object_with_condition_should_not_throw
-:white_check_mark: Property_should_return_null_when_it_is_not_a_property_being_validated
-:white_check_mark: Property_should_return_property_being_validated
-:white_check_mark: PropertyDescription_should_return_custom_property_name
-:white_check_mark: PropertyDescription_should_return_property_name_split
-:white_check_mark: Result_should_use_custom_property_name_when_no_property_name_can_be_determined
-:white_check_mark: Rule_for_a_non_memberexpression_should_not_generate_property_name
-:white_check_mark: Should_build_property_name
-:white_check_mark: Should_compile_expression
-:white_check_mark: Should_set_custom_error
-:white_check_mark: Should_set_custom_property_name
-:white_check_mark: Should_throw_if_message_is_null
-:white_check_mark: Should_throw_if_overriding_validator_is_null
-:white_check_mark: Should_throw_if_overriding_validator_provider_is_null
-:white_check_mark: Should_throw_if_property_name_is_null
-:white_check_mark: Should_throw_if_validator_is_null
-:white_check_mark: Should_throw_when_async_inverse_predicate_is_null
-:white_check_mark: Should_throw_when_async_predicate_is_null
-:white_check_mark: Should_throw_when_context_predicate_is_null
-:white_check_mark: Should_throw_when_inverse_context_predicate_is_null
-:white_check_mark: Should_throw_when_inverse_predicate_is_null
-:white_check_mark: Should_throw_when_predicate_is_null
-```
-### :white_check_mark: FluentValidation.Tests.RuleDependencyTests
-```
-:white_check_mark: Async_inside_dependent_rules
-:white_check_mark: Async_inside_dependent_rules_when_parent_rule_not_async
-:white_check_mark: Dependent_rules_inside_ruleset
-:white_check_mark: Dependent_rules_inside_when
-:white_check_mark: Does_not_invoke_dependent_rule_if_parent_rule_does_not_pass
-:white_check_mark: Invokes_dependent_rule_if_parent_rule_passes
-:white_check_mark: Nested_dependent_rules
-:white_check_mark: Nested_dependent_rules_inside_ruleset
-:white_check_mark: Nested_dependent_rules_inside_ruleset_inside_method
-:white_check_mark: Nested_dependent_rules_inside_ruleset_no_result_when_second_level_fails
-:white_check_mark: Nested_dependent_rules_inside_ruleset_no_result_when_top_level_fails
-:white_check_mark: TestAsyncWithDependentRules_AsyncEntry
-:white_check_mark: TestAsyncWithDependentRules_SyncEntry
-:white_check_mark: Treats_root_level_RuleFor_call_as_dependent_rule_if_user_forgets_to_use_DependentRulesBuilder
-```
-### :white_check_mark: FluentValidation.Tests.RulesetTests
-```
-:white_check_mark: Applies_multiple_rulesets_to_rule
-:white_check_mark: Combines_rulesets_and_explicit_properties
-:white_check_mark: Combines_rulesets_and_explicit_properties_async
-:white_check_mark: Executes_all_rules
-:white_check_mark: Executes_in_rule_in_default_and_none
-:white_check_mark: Executes_in_rule_in_ruleset_and_default
-:white_check_mark: Executes_multiple_rulesets
-:white_check_mark: Executes_rules_in_default_ruleset_and_specific_ruleset
-:white_check_mark: Executes_rules_in_specified_ruleset
-:white_check_mark: Executes_rules_not_specified_in_ruleset
-:white_check_mark: Includes_all_rulesets
-:white_check_mark: Includes_all_rulesets_async
-:white_check_mark: Includes_combination_of_rulesets
-:white_check_mark: Includes_combination_of_rulesets_async
-:white_check_mark: Ruleset_cascades_to_child_collection_validator
-:white_check_mark: Ruleset_cascades_to_child_validator
-:white_check_mark: Ruleset_selection_should_cascade_downwards_with_when_setting_child_validator_using_include_statement
-:white_check_mark: Ruleset_selection_should_cascade_downwards_with_when_setting_child_validator_using_include_statement_with_lambda
-:white_check_mark: Ruleset_selection_should_not_cascade_downwards_when_set_on_property
-:white_check_mark: Trims_spaces
-:white_check_mark: WithMessage_works_inside_rulesets
-```
-### :white_check_mark: FluentValidation.Tests.ScalePrecisionValidatorTests
-```
-:white_check_mark: Scale_precision_should_be_valid
-:white_check_mark: Scale_precision_should_be_valid_when_ignoring_trailing_zeroes
-:white_check_mark: Scale_precision_should_be_valid_when_they_are_equal
-:white_check_mark: Scale_precision_should_not_be_valid
-:white_check_mark: Scale_precision_should_not_be_valid_when_ignoring_trailing_zeroes
-:white_check_mark: Scale_precision_should_not_be_valid_when_they_are_equal
-```
-### :white_check_mark: FluentValidation.Tests.SharedConditionTests
-```
-:white_check_mark: Async_condition_can_be_used_inside_ruleset
-:white_check_mark: Condition_can_be_used_inside_ruleset
-:white_check_mark: Does_not_execute_custom_Rule_when_async_condition_false
-:white_check_mark: Does_not_execute_custom_Rule_when_condition_false
-:white_check_mark: Does_not_execute_customasync_Rule_when_async_condition_false
-:white_check_mark: Does_not_execute_customasync_Rule_when_condition_false
-:white_check_mark: Doesnt_throw_NullReferenceException_when_instance_not_null
-:white_check_mark: Doesnt_throw_NullReferenceException_when_instance_not_null_async
-:white_check_mark: Executes_custom_rule_when_async_condition_true
-:white_check_mark: Executes_custom_rule_when_condition_true
-:white_check_mark: Executes_customasync_rule_when_async_condition_true
-:white_check_mark: Executes_customasync_rule_when_condition_true
-:white_check_mark: Nested_async_conditions_with_Custom_rule
-:white_check_mark: Nested_async_conditions_with_CustomAsync_rule
-:white_check_mark: Nested_conditions_with_Custom_rule
-:white_check_mark: Nested_conditions_with_CustomAsync_rule
-:white_check_mark: Outer_async_Unless_clause_will_trump_an_inner_Unless_clause_when_inner_fails_but_the_outer_is_satisfied
-:white_check_mark: Outer_Unless_clause_will_trump_an_inner_Unless_clause_when_inner_fails_but_the_outer_is_satisfied
-:white_check_mark: Rules_invoke_when_inverse_shared_async_condition_matches
-:white_check_mark: Rules_invoke_when_inverse_shared_condition_matches
-:white_check_mark: Rules_not_invoked_when_inverse_shared_async_condition_does_not_match
-:white_check_mark: Rules_not_invoked_when_inverse_shared_condition_does_not_match
-:white_check_mark: RuleSet_can_be_used_inside_async_condition
-:white_check_mark: RuleSet_can_be_used_inside_condition
-:white_check_mark: Runs_otherwise_conditions_for_UnlessAsync
-:white_check_mark: Runs_otherwise_conditions_for_When
-:white_check_mark: Runs_otherwise_conditions_for_WhenAsync
-:white_check_mark: Runs_otherwise_conditons_for_Unless
-:white_check_mark: Shared_async_When_is_applied_to_groupd_rules_when_initial_predicate_is_true_and_all_individual_rules_are_satisfied
-:white_check_mark: Shared_async_When_is_applied_to_grouped_rules_when_initial_predicate_is_true
-:white_check_mark: Shared_async_When_is_not_applied_to_grouped_rules_when_initial_predicate_is_false
-:white_check_mark: Shared_async_When_respects_the_smaller_scope_of_a_inner_Unless_when_the_inner_Unless_predicate_fails
-:white_check_mark: Shared_async_When_respects_the_smaller_scope_of_an_inner_Unless_when_the_inner_Unless_predicate_is_satisfied
-:white_check_mark: Shared_When_is_applied_to_groupd_rules_when_initial_predicate_is_true_and_all_individual_rules_are_satisfied
-:white_check_mark: Shared_When_is_applied_to_grouped_rules_when_initial_predicate_is_true
-:white_check_mark: Shared_When_is_not_applied_to_grouped_rules_when_initial_predicate_is_false
-:white_check_mark: Shared_When_respects_the_smaller_scope_of_a_inner_Unless_when_the_inner_Unless_predicate_fails
-:white_check_mark: Shared_When_respects_the_smaller_scope_of_an_inner_Unless_when_the_inner_Unless_predicate_is_satisfied
-:white_check_mark: When_async_condition_executed_for_each_instance_of_RuleForEach_condition_should_not_be_cached
-:white_check_mark: When_condition_executed_for_each_instance_of_RuleForEach_condition_should_not_be_cached
-:white_check_mark: When_condition_only_executed_once
-:white_check_mark: WhenAsync_condition_only_executed_once
-```
-### :white_check_mark: FluentValidation.Tests.StandalonePropertyValidationTester
-```
-:white_check_mark: Should_validate_property_value_without_instance
-```
-### :white_check_mark: FluentValidation.Tests.StringEnumValidatorTests
-```
-:white_check_mark: IsValidTests_CaseInsensitive_CaseCorrect
-:white_check_mark: IsValidTests_CaseInsensitive_CaseIncorrect
-:white_check_mark: IsValidTests_CaseSensitive_CaseCorrect
-:white_check_mark: IsValidTests_CaseSensitive_CaseIncorrect
-:white_check_mark: When_enumType_is_not_an_enum_it_should_throw
-:white_check_mark: When_enumType_is_null_it_should_throw
-:white_check_mark: When_the_property_is_initialized_with_empty_string_then_the_validator_should_fail
-:white_check_mark: When_the_property_is_initialized_with_invalid_string_then_the_validator_should_fail
-:white_check_mark: When_the_property_is_initialized_with_null_then_the_validator_should_be_valid
-:white_check_mark: When_validation_fails_the_default_error_should_be_set
-```
-### :white_check_mark: FluentValidation.Tests.TrackingCollectionTests
-```
-:white_check_mark: Add_AddsItem
-:white_check_mark: Should_not_raise_event_once_handler_detached
-:white_check_mark: When_Item_Added_Raises_ItemAdded
-```
-### :white_check_mark: FluentValidation.Tests.TransformTests
-```
-:white_check_mark: Transforms_collection_element
-:white_check_mark: Transforms_collection_element_async
-:white_check_mark: Transforms_property_value
-:white_check_mark: Transforms_property_value_to_another_type
-```
-### :white_check_mark: FluentValidation.Tests.UserSeverityTester
-```
-:white_check_mark: Can_Provide_conditional_severity
-:white_check_mark: Can_Provide_severity_for_item_in_collection
-:white_check_mark: Correctly_provides_object_being_validated
-:white_check_mark: Defaults_user_severity_to_error
-:white_check_mark: Should_use_last_supplied_severity
-:white_check_mark: Stores_user_severity_against_validation_failure
-:white_check_mark: Throws_when_provider_is_null
-```
-### :white_check_mark: FluentValidation.Tests.UserStateTester
-```
-:white_check_mark: Can_Provide_state_for_item_in_collection
-:white_check_mark: Correctly_provides_object_being_validated
-:white_check_mark: Stores_user_state_against_validation_failure
-:white_check_mark: Throws_when_provider_is_null
-```
-### :white_check_mark: FluentValidation.Tests.ValidateAndThrowTester
-```
-:white_check_mark: Does_not_throw_when_valid
-:white_check_mark: Does_not_throw_when_valid_and_a_ruleset
-:white_check_mark: Does_not_throw_when_valid_and_a_ruleset_async
-:white_check_mark: Does_not_throw_when_valid_async
-:white_check_mark: Only_root_validator_throws
-:white_check_mark: Populates_errors
-:white_check_mark: Serializes_exception
-:white_check_mark: Throws_exception
-:white_check_mark: Throws_exception_async
-:white_check_mark: Throws_exception_with_a_ruleset
-:white_check_mark: Throws_exception_with_a_ruleset_async
-:white_check_mark: ToString_provides_error_details
-:white_check_mark: ValidationException_provides_correct_message_when_appendDefaultMessage_false
-:white_check_mark: ValidationException_provides_correct_message_when_appendDefaultMessage_true
-```
-### :white_check_mark: FluentValidation.Tests.ValidationResultTests
-```
-:white_check_mark: Can_serialize_failure
-:white_check_mark: Can_serialize_result
-:white_check_mark: Should_add_errors
-:white_check_mark: Should_be_valid_when_there_are_no_errors
-:white_check_mark: Should_not_be_valid_when_there_are_errors
-:white_check_mark: ToString_return_empty_string_when_there_is_no_error
-:white_check_mark: ToString_return_error_messages_with_given_separator
-:white_check_mark: ToString_return_error_messages_with_newline_as_separator
-```
-### :white_check_mark: FluentValidation.Tests.ValidatorDescriptorTester
-```
-:white_check_mark: Does_not_throw_when_rule_declared_without_property
-:white_check_mark: Gets_validators_for_property
-:white_check_mark: GetValidatorsForMember_and_GetRulesForMember_can_both_retrieve_for_model_level_rule
-:white_check_mark: Returns_empty_collection_for_property_with_no_validators
-:white_check_mark: Should_retrieve_name_given_to_it_pass_property_as_string
-```
-### :white_check_mark: FluentValidation.Tests.ValidatorSelectorTests
-```
-:white_check_mark: Can_use_property_with_include
-:white_check_mark: Does_not_validate_other_property
-:white_check_mark: Does_not_validate_other_property_using_expression
-:white_check_mark: Executes_correct_rule_when_using_property_with_include
-:white_check_mark: Executes_correct_rule_when_using_property_with_include_async
-:white_check_mark: Includes_nested_property
-:white_check_mark: Includes_nested_property_using_expression
-:white_check_mark: MemberNameValidatorSelector_returns_true_when_property_name_matches
-:white_check_mark: Validates_nullable_property_with_overriden_name_when_selected
-:white_check_mark: Validates_property_using_expression
-```
-### :white_check_mark: FluentValidation.Tests.ValidatorTesterTester
-```
-:white_check_mark: Allows_only_one_failure_to_match
-:white_check_mark: Can_use_indexer_in_string_message
-:white_check_mark: Can_use_indexer_in_string_message_inverse
-:white_check_mark: Expected_error_code_check
-:white_check_mark: Expected_message_argument_check
-:white_check_mark: Expected_message_check
-:white_check_mark: Expected_severity_check
-:white_check_mark: Expected_state_check
-:white_check_mark: Matches_any_failure
-:white_check_mark: Matches_model_level_rule
-:white_check_mark: Model_level_check_fails_if_no_model_level_failures
-:white_check_mark: ShouldHaveChildValidator_should_not_throw_when_property_Does_have_child_validator
-:white_check_mark: ShouldHaveChildValidator_should_not_throw_when_property_Does_have_child_validator_and_expecting_a_basetype
-:white_check_mark: ShouldHaveChildValidator_should_not_throw_when_property_has_collection_validators
-:white_check_mark: ShouldHaveChildValidator_should_throw_when_property_has_a_different_child_validator
-:white_check_mark: ShouldHaveChildValidator_should_work_with_DependentRules
-:white_check_mark: ShouldHaveChildvalidator_throws_when_collection_property_Does_not_have_child_validator
-:white_check_mark: ShouldHaveChildValidator_throws_when_property_does_not_have_child_validator
-:white_check_mark: ShouldHaveChildValidator_works_on_model_level_rules
-:white_check_mark: ShouldHaveValidationError_async
-:white_check_mark: ShouldHaveValidationError_async_throws
-:white_check_mark: ShouldHaveValidationError_model_async
-:white_check_mark: ShouldHaveValidationError_model_async_throws
-:white_check_mark: ShouldHaveValidationError_preconstructed_object_does_not_throw_for_unwritable_property
-:white_check_mark: ShouldHaveValidationError_should_not_throw_when_there_are_errors_with_preconstructed_object
-:white_check_mark: ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors
-:white_check_mark: ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "")
-:white_check_mark: ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: null)
-:white_check_mark: ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors_ruleforeach
-:white_check_mark: ShouldHaveValidationError_Should_support_nested_properties
-:white_check_mark: ShouldHaveValidationError_Should_throw_when_there_are_no_validation_errors
-:white_check_mark: ShouldHaveValidationError_should_throw_when_there_are_no_validation_errors_with_preconstructed_object
-:white_check_mark: ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: "")
-:white_check_mark: ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: "cardNumber")
-:white_check_mark: ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: null)
-:white_check_mark: ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 42, cardNumber: "cardNumber")
-:white_check_mark: ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors_ruleforeach
-:white_check_mark: ShouldHaveValidationError_with_an_unmatched_rule_and_a_single_error_should_throw_an_exception
-:white_check_mark: ShouldHaveValidationError_with_an_unmatched_rule_and_multiple_errors_should_throw_an_exception
-:white_check_mark: ShouldHaveValidationErrorFor_takes_account_of_rulesets
-:white_check_mark: ShouldHaveValidationErrorFor_takes_account_of_rulesets_fluent_approach
-:white_check_mark: ShouldNotHaveValidationError_async
-:white_check_mark: ShouldNotHaveValidationError_async_model_throws
-:white_check_mark: ShouldNotHaveValidationError_async_throws
-:white_check_mark: ShouldNotHaveValidationError_model_async
-:white_check_mark: ShouldNotHaveValidationError_should_correctly_handle_explicitly_providing_object_to_validate
-:white_check_mark: ShouldNotHaveValidationError_should_correctly_handle_explicitly_providing_object_to_validate_and_other_property_fails_validation
-:white_check_mark: ShouldNotHaveValidationError_should_have_validation_error_details_when_thrown_ruleforeach
-:white_check_mark: ShouldNotHaveValidationError_should_not_throw_when_there_are_no_errors
-:white_check_mark: ShouldNotHAveValidationError_should_not_throw_When_there_are_no_errors_with_preconstructed_object
-:white_check_mark: ShouldNotHaveValidationError_should_not_throw_when_there_are_not_validation_errors_ruleforeach
-:white_check_mark: ShouldNotHaveValidationError_Should_support_nested_properties
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_errors
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_errors_with_preconstructed_object
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: "")
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: "cardNumber")
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: null)
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "cardNumber")
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "")
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: null)
-:white_check_mark: ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors_ruleforeach
-:white_check_mark: Tests_nested_property
-:white_check_mark: Tests_nested_property_reverse
-:white_check_mark: Tests_nested_property_using_obsolete_method
-:white_check_mark: TestValidate_runs_async
-:white_check_mark: TestValidate_runs_async_throws
-:white_check_mark: Unexpected_error_code_check
-:white_check_mark: Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["bar"])
-:white_check_mark: Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["foo", "bar"])
-:white_check_mark: Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["foo"])
-:white_check_mark: Unexpected_message_check(withoutErrMsg: "bar", errMessages: [])
-:white_check_mark: Unexpected_severity_check
-:white_check_mark: Unexpected_state_check
+|[FluentValidation.Tests.AbstractValidatorTester](#r0s0)|35 ✅|||12ms|
+|[FluentValidation.Tests.AccessorCacheTests](#r0s1)|4 ✅||1 ⚪|4ms|
+|[FluentValidation.Tests.AssemblyScannerTester](#r0s2)|2 ✅|||2ms|
+|[FluentValidation.Tests.CascadingFailuresTester](#r0s3)|38 ✅|||23ms|
+|[FluentValidation.Tests.ChainedValidationTester](#r0s4)|13 ✅|||6ms|
+|[FluentValidation.Tests.ChainingValidatorsTester](#r0s5)|3 ✅|||1ms|
+|[FluentValidation.Tests.ChildRulesTests](#r0s6)|2 ✅|||7ms|
+|[FluentValidation.Tests.CollectionValidatorWithParentTests](#r0s7)|16 ✅|||13ms|
+|[FluentValidation.Tests.ComplexValidationTester](#r0s8)|17 ✅|||26ms|
+|[FluentValidation.Tests.ConditionTests](#r0s9)|18 ✅|||9ms|
+|[FluentValidation.Tests.CreditCardValidatorTests](#r0s10)|2 ✅|||2ms|
+|[FluentValidation.Tests.CustomFailureActionTester](#r0s11)|3 ✅|||1ms|
+|[FluentValidation.Tests.CustomMessageFormatTester](#r0s12)|6 ✅|||3ms|
+|[FluentValidation.Tests.CustomValidatorTester](#r0s13)|10 ✅|||6ms|
+|[FluentValidation.Tests.DefaultValidatorExtensionTester](#r0s14)|30 ✅|||38ms|
+|[FluentValidation.Tests.EmailValidatorTests](#r0s15)|36 ✅|||18ms|
+|[FluentValidation.Tests.EmptyTester](#r0s16)|9 ✅|||5ms|
+|[FluentValidation.Tests.EnumValidatorTests](#r0s17)|12 ✅|||24ms|
+|[FluentValidation.Tests.EqualValidatorTests](#r0s18)|10 ✅|||3ms|
+|[FluentValidation.Tests.ExactLengthValidatorTester](#r0s19)|6 ✅|||2ms|
+|[FluentValidation.Tests.ExclusiveBetweenValidatorTests](#r0s20)|19 ✅|||6ms|
+|[FluentValidation.Tests.ExtensionTester](#r0s21)|4 ✅|||1ms|
+|[FluentValidation.Tests.ForEachRuleTests](#r0s22)|34 ✅|||47ms|
+|[FluentValidation.Tests.GreaterThanOrEqualToValidatorTester](#r0s23)|14 ✅|||5ms|
+|[FluentValidation.Tests.GreaterThanValidatorTester](#r0s24)|13 ✅|||4ms|
+|[FluentValidation.Tests.InclusiveBetweenValidatorTests](#r0s25)|18 ✅|||4ms|
+|[FluentValidation.Tests.InheritanceValidatorTest](#r0s26)|11 ✅|||18ms|
+|[FluentValidation.Tests.InlineValidatorTester](#r0s27)|1 ✅|||2ms|
+|[FluentValidation.Tests.LanguageManagerTests](#r0s28)|21 ✅|||28ms|
+|[FluentValidation.Tests.LengthValidatorTests](#r0s29)|16 ✅|||17ms|
+|[FluentValidation.Tests.LessThanOrEqualToValidatorTester](#r0s30)|13 ✅|||4ms|
+|[FluentValidation.Tests.LessThanValidatorTester](#r0s31)|16 ✅|||6ms|
+|[FluentValidation.Tests.LocalisedMessagesTester](#r0s32)|6 ✅|||3ms|
+|[FluentValidation.Tests.LocalisedNameTester](#r0s33)|2 ✅|||1ms|
+|[FluentValidation.Tests.MemberAccessorTests](#r0s34)|9 ✅|||5ms|
+|[FluentValidation.Tests.MessageFormatterTests](#r0s35)|10 ✅|||2ms|
+|[FluentValidation.Tests.ModelLevelValidatorTests](#r0s36)|2 ✅|||1ms|
+|[FluentValidation.Tests.NameResolutionPluggabilityTester](#r0s37)|3 ✅|||2ms|
+|[FluentValidation.Tests.NotEmptyTester](#r0s38)|10 ✅|||7ms|
+|[FluentValidation.Tests.NotEqualValidatorTests](#r0s39)|11 ✅|||7ms|
+|[FluentValidation.Tests.NotNullTester](#r0s40)|5 ✅|||1ms|
+|[FluentValidation.Tests.NullTester](#r0s41)|5 ✅|||2ms|
+|[FluentValidation.Tests.OnFailureTests](#r0s42)|10 ✅|||8ms|
+|[FluentValidation.Tests.PredicateValidatorTester](#r0s43)|5 ✅|||2ms|
+|[FluentValidation.Tests.PropertyChainTests](#r0s44)|7 ✅|||1ms|
+|[FluentValidation.Tests.RegularExpressionValidatorTests](#r0s45)|15 ✅|||6ms|
+|[FluentValidation.Tests.RuleBuilderTests](#r0s46)|29 ✅|||96ms|
+|[FluentValidation.Tests.RuleDependencyTests](#r0s47)|14 ✅|||3s|
+|[FluentValidation.Tests.RulesetTests](#r0s48)|21 ✅|||14ms|
+|[FluentValidation.Tests.ScalePrecisionValidatorTests](#r0s49)|6 ✅|||4ms|
+|[FluentValidation.Tests.SharedConditionTests](#r0s50)|42 ✅|||42ms|
+|[FluentValidation.Tests.StandalonePropertyValidationTester](#r0s51)|1 ✅|||0ms|
+|[FluentValidation.Tests.StringEnumValidatorTests](#r0s52)|10 ✅|||5ms|
+|[FluentValidation.Tests.TrackingCollectionTests](#r0s53)|3 ✅|||2ms|
+|[FluentValidation.Tests.TransformTests](#r0s54)|4 ✅|||3ms|
+|[FluentValidation.Tests.UserSeverityTester](#r0s55)|7 ✅|||3ms|
+|[FluentValidation.Tests.UserStateTester](#r0s56)|4 ✅|||3ms|
+|[FluentValidation.Tests.ValidateAndThrowTester](#r0s57)|14 ✅|||25ms|
+|[FluentValidation.Tests.ValidationResultTests](#r0s58)|8 ✅|||8ms|
+|[FluentValidation.Tests.ValidatorDescriptorTester](#r0s59)|5 ✅|||1ms|
+|[FluentValidation.Tests.ValidatorSelectorTests](#r0s60)|10 ✅|||9ms|
+|[FluentValidation.Tests.ValidatorTesterTester](#r0s61)|73 ✅|||74ms|
+### ✅ FluentValidation.Tests.AbstractValidatorTester
+```
+✅ Can_replace_default_errorcode_resolver
+✅ CanValidateInstancesOfType_returns_false_when_comparing_against_some_other_type
+✅ CanValidateInstancesOfType_returns_true_when_comparing_against_same_type
+✅ CanValidateInstancesOfType_returns_true_when_comparing_against_subclass
+✅ Default_error_code_should_be_class_name
+✅ OverridePropertyName_should_override_property_name
+✅ OverridePropertyName_with_lambda_should_override_property_name
+✅ PreValidate_bypasses_nullcheck_on_instance
+✅ RuleForeach_with_null_instances
+✅ Should_be_valid_when_there_are_no_failures_for_single_property
+✅ Should_not_main_state
+✅ Should_throw_for_non_member_expression_when_validating_single_property
+✅ Should_throw_when_rule_is_null
+✅ Should_validate_public_Field
+✅ Should_validate_single_Field
+✅ Should_validate_single_property
+✅ Should_validate_single_property_where_invalid_property_as_string
+✅ Should_validate_single_property_where_property_as_string
+✅ Uses_named_parameters_to_validate_ruleset
+✅ Validates_single_property_by_path
+✅ Validates_type_when_using_non_generic_validate_overload
+✅ When_the_validators_fail_then_the_errors_Should_be_accessible_via_the_errors_property
+✅ When_the_validators_fail_then_validatorrunner_should_return_false
+✅ When_the_Validators_pass_then_the_validatorRunner_should_return_true
+✅ WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_Validate(preValidationResult: )
+✅ WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_Validate(preValidationResult: AnotherInt Test Message)
+✅ WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_ValidateAsync(preValidationResult: )
+✅ WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_ValidateAsync(preValidationResult: AnotherInt Test Message)
+✅ WhenPreValidationReturnsTrue_ValidatorsGetHit_Validate
+✅ WhenPreValidationReturnsTrue_ValidatorsGetHit_ValidateAsync
+✅ WithErrorCode_should_override_error_code
+✅ WithMessage_and_WithErrorCode_should_override_error_message_and_error_code
+✅ WithMessage_should_override_error_message
+✅ WithName_should_override_field_name
+✅ WithName_should_override_field_name_with_value_from_other_property
+```
+### ✅ FluentValidation.Tests.AccessorCacheTests
+```
+⚪ Benchmark
+✅ Equality_comparison_check
+✅ Gets_accessor
+✅ Gets_member_for_nested_property
+✅ Identifies_if_memberexp_acts_on_model_instance
+```
+### ✅ FluentValidation.Tests.AssemblyScannerTester
+```
+✅ Finds_validators_for_types
+✅ ForEach_iterates_over_types
+```
+### ✅ FluentValidation.Tests.CascadingFailuresTester
+```
+✅ Cascade_mode_can_be_set_after_validator_instantiated
+✅ Cascade_mode_can_be_set_after_validator_instantiated_async
+✅ Cascade_mode_can_be_set_after_validator_instantiated_async_legacy
+✅ Cascade_mode_can_be_set_after_validator_instantiated_legacy
+✅ Validation_continues_on_failure
+✅ Validation_continues_on_failure_async
+✅ Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level
+✅ Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_async
+✅ Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_async_legacy
+✅ Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_legacy
+✅ Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level
+✅ Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_async
+✅ Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_async_legacy
+✅ Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_legacy
+✅ Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop
+✅ Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_async
+✅ Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_async_legacy
+✅ Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_legacy
+✅ Validation_continues_when_set_to_Continue_at_validator_level
+✅ Validation_continues_when_set_to_Continue_at_validator_level_async
+✅ Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level
+✅ Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_async
+✅ Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_async_legacy
+✅ Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_legacy
+✅ Validation_stops_on_first_failure
+✅ Validation_stops_on_first_failure_async
+✅ Validation_stops_on_first_failure_async_legacy
+✅ Validation_stops_on_first_failure_legacy
+✅ Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level
+✅ Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_and_async_validator_is_invoked_synchronously
+✅ Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_and_async_validator_is_invoked_synchronously_legacy
+✅ Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_async
+✅ Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_async_legacy
+✅ Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_legacy
+✅ Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level
+✅ Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_async
+✅ Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_async_legacy
+✅ Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_legacy
+```
+### ✅ FluentValidation.Tests.ChainedValidationTester
+```
+✅ Can_validate_using_validator_for_base_type
+✅ Chained_property_should_be_excluded
+✅ Chained_validator_descriptor
+✅ Chained_validator_should_not_be_invoked_on_null_property
+✅ Condition_should_work_with_chained_property
+✅ Explicitly_included_properties_should_be_propagated_to_nested_validators
+✅ Explicitly_included_properties_should_be_propagated_to_nested_validators_using_strings
+✅ Separate_validation_on_chained_property
+✅ Separate_validation_on_chained_property_conditional
+✅ Separate_validation_on_chained_property_valid
+✅ Should_allow_normal_rules_and_chained_property_on_same_property
+✅ Uses_explicit_ruleset
+✅ Validates_chained_property
+```
+### ✅ FluentValidation.Tests.ChainingValidatorsTester
+```
+✅ Options_should_only_apply_to_current_validator
+✅ Should_create_multiple_validators
+✅ Should_execute_multiple_validators
+```
+### ✅ FluentValidation.Tests.ChildRulesTests
+```
+✅ Can_define_nested_rules_for_collection
+✅ ChildRules_works_with_RuleSet
+```
+### ✅ FluentValidation.Tests.CollectionValidatorWithParentTests
+```
+✅ Async_condition_should_work_with_child_collection
+✅ Can_specify_condition_for_individual_collection_elements
+✅ Can_validate_collection_using_validator_for_base_type
+✅ Collection_should_be_excluded
+✅ Collection_should_be_explicitly_included_with_expression
+✅ Collection_should_be_explicitly_included_with_string
+✅ Condition_should_work_with_child_collection
+✅ Creates_validator_using_context_from_property_value
+✅ Should_override_property_name
+✅ Should_work_with_top_level_collection_validator
+✅ Should_work_with_top_level_collection_validator_and_overriden_name
+✅ Skips_null_items
+✅ Validates_collection
+✅ Validates_collection_asynchronously
+✅ Validates_collection_several_levels_deep
+✅ Validates_collection_several_levels_deep_async
+```
+### ✅ FluentValidation.Tests.ComplexValidationTester
+```
+✅ Async_condition_should_work_with_complex_property
+✅ Async_condition_should_work_with_complex_property_when_validator_invoked_synchronously
+✅ Can_directly_validate_multiple_fields_of_same_type
+✅ Can_validate_using_validator_for_base_type
+✅ Complex_property_should_be_excluded
+✅ Complex_validator_should_not_be_invoked_on_null_property
+✅ Condition_should_work_with_complex_property
+✅ Condition_should_work_with_complex_property_when_invoked_async
+✅ Explicitly_included_properties_should_be_propagated_to_nested_validators
+✅ Explicitly_included_properties_should_be_propagated_to_nested_validators_using_strings
+✅ Multiple_rules_in_chain_with_childvalidator_shouldnt_reuse_accessor
+✅ Multiple_rules_in_chain_with_childvalidator_shouldnt_reuse_accessor_async
+✅ Should_allow_normal_rules_and_complex_property_on_same_property
+✅ Should_override_propertyName
+✅ Validates_child_validator_asynchronously
+✅ Validates_child_validator_synchronously
+✅ Validates_complex_property
+```
+### ✅ FluentValidation.Tests.ConditionTests
+```
+✅ Async_condition_executed_synchronosuly_with_asynchronous_collection_rule
+✅ Async_condition_executed_synchronosuly_with_asynchronous_rule
+✅ Async_condition_executed_synchronosuly_with_synchronous_collection_role
+✅ Async_condition_executed_synchronosuly_with_synchronous_role
+✅ Async_condition_is_applied_to_all_validators_in_the_chain
+✅ Async_condition_is_applied_to_all_validators_in_the_chain_when_executed_synchronously
+✅ Async_condition_is_applied_to_single_validator_in_the_chain_when_ApplyConditionTo_set_to_CurrentValidator
+✅ Condition_is_applied_to_all_validators_in_the_chain
+✅ Condition_is_applied_to_single_validator_in_the_chain_when_ApplyConditionTo_set_to_CurrentValidator
+✅ Sync_condition_is_applied_to_async_validators
+✅ Validation_should_fail_when_async_condition_does_not_match
+✅ Validation_should_fail_when_async_condition_matches
+✅ Validation_should_fail_when_condition_does_not_match
+✅ Validation_should_fail_when_condition_matches
+✅ Validation_should_succeed_when_async_condition_does_not_match
+✅ Validation_should_succeed_when_async_condition_matches
+✅ Validation_should_succeed_when_condition_does_not_match
+✅ Validation_should_succeed_when_condition_matches
+```
+### ✅ FluentValidation.Tests.CreditCardValidatorTests
+```
+✅ IsValidTests
+✅ When_validation_fails_the_default_error_should_be_set
+```
+### ✅ FluentValidation.Tests.CustomFailureActionTester
+```
+✅ Does_not_invoke_action_if_validation_success
+✅ Invokes_custom_action_on_failure
+✅ Passes_object_being_validated_to_action
+```
+### ✅ FluentValidation.Tests.CustomMessageFormatTester
+```
+✅ Replaces_propertyvalue_placeholder
+✅ Replaces_propertyvalue_with_empty_string_when_null
+✅ Should_format_custom_message
+✅ Uses_custom_delegate_for_building_message
+✅ Uses_custom_delegate_for_building_message_only_for_specific_validator
+✅ Uses_property_value_in_message
+```
+### ✅ FluentValidation.Tests.CustomValidatorTester
+```
+✅ New_Custom_Returns_single_failure
+✅ New_Custom_Returns_single_failure_async
+✅ New_custom_uses_empty_property_name_for_model_level_rule
+✅ New_Custom_When_property_name_omitted_infers_property_name
+✅ New_Custom_When_property_name_omitted_infers_property_name_nested
+✅ New_Custom_within_ruleset
+✅ New_CustomAsync_within_ruleset
+✅ Perserves_property_chain_using_custom
+✅ Runs_async_rule_synchronously_when_validator_invoked_synchronously
+✅ Runs_sync_rule_asynchronously_when_validator_invoked_asynchronously
+```
+### ✅ FluentValidation.Tests.DefaultValidatorExtensionTester
+```
+✅ Empty_should_create_EmptyValidator
+✅ Equal_should_create_EqualValidator_with_explicit_value
+✅ Equal_should_create_EqualValidator_with_lambda
+✅ GreaterThan_should_create_GreaterThanValidator_with_explicit_value
+✅ GreaterThan_should_create_GreaterThanValidator_with_lambda
+✅ GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_explicit_value
+✅ GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_lambda
+✅ GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_lambda_with_other_Nullable
+✅ Length_should_create_ExactLengthValidator
+✅ Length_should_create_LengthValidator
+✅ Length_should_create_MaximumLengthValidator
+✅ Length_should_create_MinimumLengthValidator
+✅ LessThan_should_create_LessThanValidator_with_explicit_value
+✅ LessThan_should_create_LessThanValidator_with_lambda
+✅ LessThanOrEqual_should_create_LessThanOrEqualValidator_with_explicit_value
+✅ LessThanOrEqual_should_create_LessThanOrEqualValidator_with_lambda
+✅ LessThanOrEqual_should_create_LessThanOrEqualValidator_with_lambda_with_other_Nullable
+✅ Must_should_create_PredicateValidator_with_context
+✅ Must_should_create_PredicateValidator_with_PropertyValidatorContext
+✅ Must_should_create_PredicteValidator
+✅ MustAsync_should_create_AsyncPredicateValidator_with_context
+✅ MustAsync_should_create_AsyncPredicateValidator_with_PropertyValidatorContext
+✅ MustAsync_should_create_AsyncPredicteValidator
+✅ MustAsync_should_not_throw_InvalidCastException
+✅ NotEmpty_should_create_NotEmptyValidator
+✅ NotEqual_should_create_NotEqualValidator_with_explicit_value
+✅ NotEqual_should_create_NotEqualValidator_with_lambda
+✅ NotNull_should_create_NotNullValidator
+✅ ScalePrecision_should_create_ScalePrecisionValidator
+✅ ScalePrecision_should_create_ScalePrecisionValidator_with_ignore_trailing_zeros
+```
+### ✅ FluentValidation.Tests.EmailValidatorTests
+```
+✅ Fails_email_validation_aspnetcore_compatible(email: " \r \t \n")
+✅ Fails_email_validation_aspnetcore_compatible(email: "")
+✅ Fails_email_validation_aspnetcore_compatible(email: "@someDomain.com")
+✅ Fails_email_validation_aspnetcore_compatible(email: "@someDomain@abc.com")
+✅ Fails_email_validation_aspnetcore_compatible(email: "0")
+✅ Fails_email_validation_aspnetcore_compatible(email: "someName")
+✅ Fails_email_validation_aspnetcore_compatible(email: "someName@")
+✅ Fails_email_validation_aspnetcore_compatible(email: "someName@a@b.com")
+✅ Invalid_email_addressex_regex(email: "")
+✅ Invalid_email_addressex_regex(email: "first.last@test..co.uk")
+✅ Invalid_email_addressex_regex(email: "testperso")
+✅ Invalid_email_addressex_regex(email: "thisisaverylongstringcodeplex.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: " @someDomain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "!#$%&'*+-/=?^_`|~@someDomain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "\"firstName.lastName\"@someDomain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "1234@someDomain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "firstName.lastName@someDomain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "someName@1234.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "someName@some_domain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "someName@some~domain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "someName@someDomain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: "someName@someDomain.com")
+✅ Valid_email_addresses_aspnetcore_compatible(email: null)
+✅ Valid_email_addresses_regex(email: "__somename@example.com")
+✅ Valid_email_addresses_regex(email: "!def!xyz%abc@example.com")
+✅ Valid_email_addresses_regex(email: "\"Abc@def\"@example.com")
+✅ Valid_email_addresses_regex(email: "\"Abc\\@def\"@example.com")
+✅ Valid_email_addresses_regex(email: "\"Fred Bloggs\"@example.com")
+✅ Valid_email_addresses_regex(email: "\"Joe\\Blow\"@example.com")
+✅ Valid_email_addresses_regex(email: "$A12345@example.com")
+✅ Valid_email_addresses_regex(email: "customer/department=shipping@example.com")
+✅ Valid_email_addresses_regex(email: "first.last@test.co.uk")
+✅ Valid_email_addresses_regex(email: "testperson@gmail.com")
+✅ Valid_email_addresses_regex(email: "TestPerson@gmail.com")
+✅ Valid_email_addresses_regex(email: "testperson+label@gmail.com")
+✅ Valid_email_addresses_regex(email: null)
+```
+### ✅ FluentValidation.Tests.EmptyTester
+```
+✅ Passes_for_ienumerable_that_doesnt_implement_ICollection
+✅ Passes_when_collection_empty
+✅ When_there_is_a_value_then_the_validator_should_fail
+✅ When_validation_fails_error_should_be_set
+✅ When_value_is_Default_for_type_validator_should_pass_datetime
+✅ When_value_is_Default_for_type_validator_should_pass_int
+✅ When_value_is_empty_string_validator_should_pass
+✅ When_value_is_null_validator_should_pass
+✅ When_value_is_whitespace_validation_should_pass
+```
+### ✅ FluentValidation.Tests.EnumValidatorTests
+```
+✅ Flags_enum_invalid_when_using_outofrange_negative_value
+✅ Flags_enum_invalid_when_using_outofrange_positive_value
+✅ Flags_enum_valid_when_using_bitwise_value
+✅ Flags_enum_validates_correctly_when_using_zero_value
+✅ Flags_enum_with_overlapping_flags_valid_when_using_bitwise_value
+✅ IsValidTests
+✅ Nullable_enum_invalid_when_bad_value_specified
+✅ Nullable_enum_valid_when_property_value_is_null
+✅ Nullable_enum_valid_when_value_specified
+✅ When_the_enum_is_initialized_with_invalid_value_then_the_validator_should_fail
+✅ When_the_enum_is_not_initialized_with_valid_value_then_the_validator_should_fail
+✅ When_validation_fails_the_default_error_should_be_set
+```
+### ✅ FluentValidation.Tests.EqualValidatorTests
+```
+✅ Comparison_property_uses_custom_resolver
+✅ Should_store_comparison_type
+✅ Should_store_property_to_compare
+✅ Should_succeed_on_case_insensitive_comparison
+✅ Should_succeed_on_case_insensitive_comparison_using_expression
+✅ Should_use_ordinal_comparison_by_default
+✅ Validates_against_property
+✅ When_the_objects_are_equal_validation_should_succeed
+✅ When_the_objects_are_not_equal_validation_should_fail
+✅ When_validation_fails_the_error_should_be_set
+```
+### ✅ FluentValidation.Tests.ExactLengthValidatorTester
+```
+✅ Min_and_max_properties_should_be_set
+✅ When_exact_length_rule_failes_error_should_have_exact_length_error_errorcode
+✅ When_the_text_is_an_exact_length_the_validator_should_pass
+✅ When_the_text_length_is_larger_the_validator_should_fail
+✅ When_the_text_length_is_smaller_the_validator_should_fail
+✅ When_the_validator_fails_the_error_message_should_be_set
+```
+### ✅ FluentValidation.Tests.ExclusiveBetweenValidatorTests
+```
+✅ To_and_from_properties_should_be_set
+✅ To_and_from_properties_should_be_set_for_dates
+✅ To_and_from_properties_should_be_set_for_strings
+✅ Validates_with_nullable_when_property_is_null
+✅ Validates_with_nullable_when_property_not_null
+✅ When_the_text_is_larger_than_the_range_then_the_validator_should_fail
+✅ When_the_text_is_larger_than_the_range_then_the_validator_should_fail_for_strings
+✅ When_the_to_is_smaller_than_the_from_then_the_validator_should_throw
+✅ When_the_to_is_smaller_than_the_from_then_the_validator_should_throw_for_strings
+✅ When_the_validator_fails_the_error_message_should_be_set
+✅ When_the_validator_fails_the_error_message_should_be_set_for_strings
+✅ When_the_value_is_between_the_range_specified_then_the_validator_should_pass
+✅ When_the_value_is_between_the_range_specified_then_the_validator_should_pass_for_strings
+✅ When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_fail
+✅ When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_fail_for_strings
+✅ When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_fail
+✅ When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_fail_for_strings
+✅ When_the_value_is_smaller_than_the_range_then_the_validator_should_fail
+✅ When_the_value_is_smaller_than_the_range_then_the_validator_should_fail_for_strings
+```
+### ✅ FluentValidation.Tests.ExtensionTester
+```
+✅ Should_extract_member_from_member_expression
+✅ Should_return_null_for_non_member_expressions
+✅ Should_split_pascal_cased_member_name
+✅ SplitPascalCase_should_return_null_when_input_is_null
+```
+### ✅ FluentValidation.Tests.ForEachRuleTests
+```
+✅ Async_condition_should_work_with_child_collection
+✅ Can_access_colletion_index
+✅ Can_access_colletion_index_async
+✅ Can_access_parent_index
+✅ Can_access_parent_index_async
+✅ Can_specify_condition_for_individual_collection_elements
+✅ Can_use_cascade_with_RuleForEach
+✅ Can_validate_collection_using_validator_for_base_type
+✅ Collection_should_be_excluded
+✅ Collection_should_be_explicitly_included_with_expression
+✅ Collection_should_be_explicitly_included_with_string
+✅ Condition_should_work_with_child_collection
+✅ Correctly_gets_collection_indices
+✅ Correctly_gets_collection_indices_async
+✅ Executes_rule_for_each_item_in_collection
+✅ Executes_rule_for_each_item_in_collection_async
+✅ Nested_collection_for_null_property_should_not_throw_null_reference
+✅ Nested_conditions_Rule_For
+✅ Nested_conditions_Rule_For_Each
+✅ Overrides_indexer
+✅ Overrides_indexer_async
+✅ Regular_rules_can_drop_into_RuleForEach
+✅ RuleForEach_async_RunsTasksSynchronously
+✅ Should_not_scramble_property_name_when_using_collection_validators_several_levels_deep
+✅ Should_not_scramble_property_name_when_using_collection_validators_several_levels_deep_with_ValidateAsync
+✅ Should_override_property_name
+✅ Skips_null_items
+✅ Top_level_collection
+✅ Uses_useful_error_message_when_used_on_non_property
+✅ Validates_child_validator_asynchronously
+✅ Validates_child_validator_synchronously
+✅ Validates_collection
+✅ When_runs_outside_RuleForEach_loop
+✅ When_runs_outside_RuleForEach_loop_async
+```
+### ✅ FluentValidation.Tests.GreaterThanOrEqualToValidatorTester
+```
+✅ Comparison_property_uses_custom_resolver
+✅ Comparison_type
+✅ Should_fail_when_less_than_input
+✅ Should_localize_value
+✅ Should_set_default_error_when_validation_fails
+✅ Should_succeed_when_equal_to_input
+✅ Should_succeed_when_greater_than_input
+✅ Validates_nullable_with_nullable_property
+✅ Validates_with_nullable_property
+✅ Validates_with_nullable_when_property_is_null
+✅ Validates_with_nullable_when_property_is_null_cross_property
+✅ Validates_with_nullable_when_property_not_null
+✅ Validates_with_nullable_when_property_not_null_cross_property
+✅ Validates_with_property
+```
+### ✅ FluentValidation.Tests.GreaterThanValidatorTester
+```
+✅ Comparison_property_uses_custom_resolver
+✅ Comparison_Type
+✅ Should_fail_when_equal_to_input
+✅ Should_fail_when_less_than_input
+✅ Should_set_default_error_when_validation_fails
+✅ Should_succeed_when_greater_than_input
+✅ Validates_nullable_with_nullable_property
+✅ Validates_with_nullable_property
+✅ Validates_with_nullable_when_property_is_null
+✅ Validates_with_nullable_when_property_is_null_cross_property
+✅ Validates_with_nullable_when_property_not_null
+✅ Validates_with_nullable_when_property_not_null_cross_property
+✅ Validates_with_property
+```
+### ✅ FluentValidation.Tests.InclusiveBetweenValidatorTests
+```
+✅ To_and_from_properties_should_be_set
+✅ To_and_from_properties_should_be_set_for_strings
+✅ Validates_with_nullable_when_property_is_null
+✅ Validates_with_nullable_when_property_not_null
+✅ When_the_text_is_larger_than_the_range_then_the_validator_should_fail
+✅ When_the_text_is_larger_than_the_range_then_the_validator_should_fail_for_strings
+✅ When_the_to_is_smaller_than_the_from_then_the_validator_should_throw
+✅ When_the_to_is_smaller_than_the_from_then_the_validator_should_throw_for_strings
+✅ When_the_validator_fails_the_error_message_should_be_set
+✅ When_the_validator_fails_the_error_message_should_be_set_for_strings
+✅ When_the_value_is_between_the_range_specified_then_the_validator_should_pass
+✅ When_the_value_is_between_the_range_specified_then_the_validator_should_pass_for_strings
+✅ When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass
+✅ When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass_for_strings
+✅ When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass
+✅ When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass_for_strings
+✅ When_the_value_is_smaller_than_the_range_then_the_validator_should_fail
+✅ When_the_value_is_smaller_than_the_range_then_the_validator_should_fail_for_strings
+```
+### ✅ FluentValidation.Tests.InheritanceValidatorTest
+```
+✅ Can_use_custom_subclass_with_nongeneric_overload
+✅ Validates_collection
+✅ Validates_collection_async
+✅ Validates_inheritance_async
+✅ Validates_inheritance_hierarchy
+✅ Validates_ruleset
+✅ Validates_ruleset_async
+✅ Validates_with_callback
+✅ Validates_with_callback_accepting_derived
+✅ Validates_with_callback_accepting_derived_async
+✅ Validates_with_callback_async
+```
+### ✅ FluentValidation.Tests.InlineValidatorTester
+```
+✅ Uses_inline_validator_to_build_rules
+```
+### ✅ FluentValidation.Tests.LanguageManagerTests
+```
+✅ All_languages_should_be_loaded
+✅ All_localizations_have_same_parameters_as_English
+✅ Always_use_specific_language
+✅ Always_use_specific_language_with_string_source
+✅ Can_replace_message
+✅ Can_replace_message_without_overriding_all_languages
+✅ Disables_localization
+✅ Falls_back_to_default_localization_key_when_error_code_key_not_found
+✅ Falls_back_to_english_when_culture_not_registered
+✅ Falls_back_to_english_when_translation_missing
+✅ Falls_back_to_parent_culture
+✅ Gets_translation_for_bosnian_latin_culture(cultureName: "bs-Latn-BA")
+✅ Gets_translation_for_bosnian_latin_culture(cultureName: "bs-Latn")
+✅ Gets_translation_for_bosnian_latin_culture(cultureName: "bs")
+✅ Gets_translation_for_croatian_culture
+✅ Gets_translation_for_culture
+✅ Gets_translation_for_serbian_culture(cultureName: "sr-Latn-RS")
+✅ Gets_translation_for_serbian_culture(cultureName: "sr-Latn")
+✅ Gets_translation_for_serbian_culture(cultureName: "sr")
+✅ Gets_translation_for_specific_culture
+✅ Uses_error_code_as_localization_key
+```
+### ✅ FluentValidation.Tests.LengthValidatorTests
+```
+✅ Min_and_max_properties_should_be_set
+✅ When_input_is_null_then_the_validator_should_pass
+✅ When_the_max_is_smaller_than_the_min_then_the_validator_should_throw
+✅ When_the_maxlength_validator_fails_the_error_message_should_be_set
+✅ When_the_minlength_validator_fails_the_error_message_should_be_set
+✅ When_the_text_is_between_the_lambda_range_specified_then_the_validator_should_pass
+✅ When_the_text_is_between_the_range_specified_then_the_validator_should_pass
+✅ When_the_text_is_exactly_the_size_of_the_lambda_lower_bound_then_the_validator_should_pass
+✅ When_the_text_is_exactly_the_size_of_the_lambda_upper_bound_then_the_validator_should_pass
+✅ When_the_text_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass
+✅ When_the_text_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass
+✅ When_the_text_is_larger_than_the_lambda_range_then_the_validator_should_fail
+✅ When_the_text_is_larger_than_the_range_then_the_validator_should_fail
+✅ When_the_text_is_smaller_than_the_lambda_range_then_the_validator_should_fail
+✅ When_the_text_is_smaller_than_the_range_then_the_validator_should_fail
+✅ When_the_validator_fails_the_error_message_should_be_set
+```
+### ✅ FluentValidation.Tests.LessThanOrEqualToValidatorTester
+```
+✅ Comparison_property_uses_custom_resolver
+✅ Comparison_type
+✅ Should_fail_when_greater_than_input
+✅ Should_set_default_error_when_validation_fails
+✅ Should_succeed_when_equal_to_input
+✅ Should_succeed_when_less_than_input
+✅ Validates_nullable_with_nullable_property
+✅ Validates_with_nullable_property
+✅ Validates_with_nullable_when_property_is_null
+✅ Validates_with_nullable_when_property_is_null_cross_property
+✅ Validates_with_nullable_when_property_not_null
+✅ Validates_with_nullable_when_property_not_null_cross_property
+✅ Validates_with_property
+```
+### ✅ FluentValidation.Tests.LessThanValidatorTester
+```
+✅ Comparison_property_uses_custom_resolver
+✅ Comparison_type
+✅ Extracts_property_from_constant_using_expression
+✅ Extracts_property_from_expression
+✅ Should_fail_when_equal_to_input
+✅ Should_fail_when_greater_than_input
+✅ Should_set_default_validation_message_when_validation_fails
+✅ Should_succeed_when_less_than_input
+✅ Should_throw_when_value_to_compare_is_null
+✅ Validates_against_property
+✅ Validates_nullable_with_nullable_property
+✅ Validates_with_nullable_property
+✅ Validates_with_nullable_when_property_is_null
+✅ Validates_with_nullable_when_property_not_null
+✅ Validates_with_nullable_when_property_not_null_cross_property
+✅ Validates_with_nullable_when_property_null_cross_property
+```
+### ✅ FluentValidation.Tests.LocalisedMessagesTester
+```
+✅ Correctly_assigns_default_localized_error_message
+✅ Does_not_throw_InvalidCastException_when_using_RuleForEach
+✅ Formats_string_with_placeholders
+✅ Formats_string_with_placeholders_when_you_cant_edit_the_string
+✅ Uses_func_to_get_message
+✅ Uses_string_format_with_property_value
+```
+### ✅ FluentValidation.Tests.LocalisedNameTester
+```
+✅ Uses_localized_name
+✅ Uses_localized_name_expression
+```
+### ✅ FluentValidation.Tests.MemberAccessorTests
+```
+✅ ComplexPropertyGet
+✅ ComplexPropertySet
+✅ Equality
+✅ ImplicitCast
+✅ Name
+✅ SimpleFieldGet
+✅ SimpleFieldSet
+✅ SimplePropertyGet
+✅ SimplePropertySet
+```
+### ✅ FluentValidation.Tests.MessageFormatterTests
+```
+✅ Adds_argument_and_custom_arguments
+✅ Adds_formatted_argument_and_custom_arguments
+✅ Adds_formatted_argument_and_formatted_custom_arguments
+✅ Adds_PropertyName_to_message
+✅ Adds_value_to_message
+✅ Format_property_value
+✅ Should_ignore_unknown_numbered_parameters
+✅ Should_ignore_unknown_parameters
+✅ Understands_date_formats
+✅ Understands_numeric_formats
+```
+### ✅ FluentValidation.Tests.ModelLevelValidatorTests
+```
+✅ Can_use_child_validator_at_model_level
+✅ Validates_at_model_level
+```
+### ✅ FluentValidation.Tests.NameResolutionPluggabilityTester
+```
+✅ Resolves_nested_properties
+✅ ShouldHaveValidationError_Should_support_custom_propertynameresolver
+✅ Uses_custom_property_name
+```
+### ✅ FluentValidation.Tests.NotEmptyTester
+```
+✅ Fails_for_array
+✅ Fails_for_ienumerable_that_doesnt_implement_ICollection
+✅ Fails_when_collection_empty
+✅ When_there_is_a_value_then_the_validator_should_pass
+✅ When_validation_fails_error_should_be_set
+✅ When_value_is_Default_for_type_validator_should_fail_datetime
+✅ When_value_is_Default_for_type_validator_should_fail_int
+✅ When_value_is_empty_string_validator_should_fail
+✅ When_value_is_null_validator_should_fail
+✅ When_value_is_whitespace_validation_should_fail
+```
+### ✅ FluentValidation.Tests.NotEqualValidatorTests
+```
+✅ Comparison_property_uses_custom_resolver
+✅ Should_handle_custom_value_types_correctly
+✅ Should_not_be_valid_for_case_insensitve_comparison
+✅ Should_not_be_valid_for_case_insensitve_comparison_with_expression
+✅ Should_store_comparison_type
+✅ Should_store_property_to_compare
+✅ Should_use_ordinal_comparison_by_default
+✅ Validates_across_properties
+✅ When_the_objects_are_equal_then_the_validator_should_fail
+✅ When_the_objects_are_not_equal_then_the_validator_should_pass
+✅ When_the_validator_fails_the_error_message_should_be_set
+```
+### ✅ FluentValidation.Tests.NotNullTester
+```
+✅ Fails_when_nullable_value_type_is_null
+✅ Not_null_validator_should_not_crash_with_non_nullable_value_type
+✅ NotNullValidator_should_fail_if_value_is_null
+✅ NotNullValidator_should_pass_if_value_has_value
+✅ When_the_validator_fails_the_error_message_should_be_set
+```
+### ✅ FluentValidation.Tests.NullTester
+```
+✅ Not_null_validator_should_not_crash_with_non_nullable_value_type
+✅ NullValidator_should_fail_if_value_has_value
+✅ NullValidator_should_pass_if_value_is_null
+✅ Passes_when_nullable_value_type_is_null
+✅ When_the_validator_passes_the_error_message_should_be_set
+```
+### ✅ FluentValidation.Tests.OnFailureTests
+```
+✅ OnFailure_called_for_each_failed_rule
+✅ OnFailure_called_for_each_failed_rule_asyncAsync
+✅ Should_be_able_to_access_error_message_in_OnFailure
+✅ ShouldHaveChildValidator_should_be_true
+✅ ShouldHaveChildValidator_works_with_Include
+✅ WhenAsyncWithOnFailure_should_invoke_condition_on_async_inner_validator
+✅ WhenAsyncWithOnFailure_should_invoke_condition_on_inner_validator
+✅ WhenAsyncWithOnFailure_should_invoke_condition_on_inner_validator_invoked_synchronously
+✅ WhenWithOnFailure_should_invoke_condition_on_async_inner_validator
+✅ WhenWithOnFailure_should_invoke_condition_on_inner_validator
+```
+### ✅ FluentValidation.Tests.PredicateValidatorTester
+```
+✅ Should_fail_when_predicate_returns_false
+✅ Should_succeed_when_predicate_returns_true
+✅ Should_throw_when_predicate_is_null
+✅ When_validation_fails_metadata_should_be_set_on_failure
+✅ When_validation_fails_the_default_error_should_be_set
+```
+### ✅ FluentValidation.Tests.PropertyChainTests
+```
+✅ AddIndexer_throws_when_nothing_added
+✅ Calling_ToString_should_construct_string_representation_of_chain
+✅ Calling_ToString_should_construct_string_representation_of_chain_with_indexers
+✅ Creates_from_expression
+✅ Should_be_subchain
+✅ Should_ignore_blanks
+✅ Should_not_be_subchain
+```
+### ✅ FluentValidation.Tests.RegularExpressionValidatorTests
+```
+✅ Can_access_expression_in_message
+✅ Can_access_expression_in_message_lambda
+✅ Can_access_expression_in_message_lambda_regex
+✅ Uses_lazily_loaded_expression
+✅ Uses_lazily_loaded_expression_with_options
+✅ Uses_regex_object
+✅ When_the_text_does_not_match_the_lambda_regex_regular_expression_then_the_validator_should_fail
+✅ When_the_text_does_not_match_the_lambda_regular_expression_then_the_validator_should_fail
+✅ When_the_text_does_not_match_the_regular_expression_then_the_validator_should_fail
+✅ When_the_text_is_empty_then_the_validator_should_fail
+✅ When_the_text_is_null_then_the_validator_should_pass
+✅ When_the_text_matches_the_lambda_regex_regular_expression_then_the_validator_should_pass
+✅ When_the_text_matches_the_lambda_regular_expression_then_the_validator_should_pass
+✅ When_the_text_matches_the_regular_expression_then_the_validator_should_pass
+✅ When_validation_fails_the_default_error_should_be_set
+```
+### ✅ FluentValidation.Tests.RuleBuilderTests
+```
+✅ Adding_a_validator_should_return_builder
+✅ Adding_a_validator_should_store_validator
+✅ Calling_validate_should_delegate_to_underlying_validator
+✅ Calling_ValidateAsync_should_delegate_to_underlying_async_validator
+✅ Calling_ValidateAsync_should_delegate_to_underlying_sync_validator
+✅ Conditional_child_validator_should_register_with_validator_type_not_property
+✅ Nullable_object_with_async_condition_should_not_throw
+✅ Nullable_object_with_condition_should_not_throw
+✅ Property_should_return_null_when_it_is_not_a_property_being_validated
+✅ Property_should_return_property_being_validated
+✅ PropertyDescription_should_return_custom_property_name
+✅ PropertyDescription_should_return_property_name_split
+✅ Result_should_use_custom_property_name_when_no_property_name_can_be_determined
+✅ Rule_for_a_non_memberexpression_should_not_generate_property_name
+✅ Should_build_property_name
+✅ Should_compile_expression
+✅ Should_set_custom_error
+✅ Should_set_custom_property_name
+✅ Should_throw_if_message_is_null
+✅ Should_throw_if_overriding_validator_is_null
+✅ Should_throw_if_overriding_validator_provider_is_null
+✅ Should_throw_if_property_name_is_null
+✅ Should_throw_if_validator_is_null
+✅ Should_throw_when_async_inverse_predicate_is_null
+✅ Should_throw_when_async_predicate_is_null
+✅ Should_throw_when_context_predicate_is_null
+✅ Should_throw_when_inverse_context_predicate_is_null
+✅ Should_throw_when_inverse_predicate_is_null
+✅ Should_throw_when_predicate_is_null
+```
+### ✅ FluentValidation.Tests.RuleDependencyTests
+```
+✅ Async_inside_dependent_rules
+✅ Async_inside_dependent_rules_when_parent_rule_not_async
+✅ Dependent_rules_inside_ruleset
+✅ Dependent_rules_inside_when
+✅ Does_not_invoke_dependent_rule_if_parent_rule_does_not_pass
+✅ Invokes_dependent_rule_if_parent_rule_passes
+✅ Nested_dependent_rules
+✅ Nested_dependent_rules_inside_ruleset
+✅ Nested_dependent_rules_inside_ruleset_inside_method
+✅ Nested_dependent_rules_inside_ruleset_no_result_when_second_level_fails
+✅ Nested_dependent_rules_inside_ruleset_no_result_when_top_level_fails
+✅ TestAsyncWithDependentRules_AsyncEntry
+✅ TestAsyncWithDependentRules_SyncEntry
+✅ Treats_root_level_RuleFor_call_as_dependent_rule_if_user_forgets_to_use_DependentRulesBuilder
+```
+### ✅ FluentValidation.Tests.RulesetTests
+```
+✅ Applies_multiple_rulesets_to_rule
+✅ Combines_rulesets_and_explicit_properties
+✅ Combines_rulesets_and_explicit_properties_async
+✅ Executes_all_rules
+✅ Executes_in_rule_in_default_and_none
+✅ Executes_in_rule_in_ruleset_and_default
+✅ Executes_multiple_rulesets
+✅ Executes_rules_in_default_ruleset_and_specific_ruleset
+✅ Executes_rules_in_specified_ruleset
+✅ Executes_rules_not_specified_in_ruleset
+✅ Includes_all_rulesets
+✅ Includes_all_rulesets_async
+✅ Includes_combination_of_rulesets
+✅ Includes_combination_of_rulesets_async
+✅ Ruleset_cascades_to_child_collection_validator
+✅ Ruleset_cascades_to_child_validator
+✅ Ruleset_selection_should_cascade_downwards_with_when_setting_child_validator_using_include_statement
+✅ Ruleset_selection_should_cascade_downwards_with_when_setting_child_validator_using_include_statement_with_lambda
+✅ Ruleset_selection_should_not_cascade_downwards_when_set_on_property
+✅ Trims_spaces
+✅ WithMessage_works_inside_rulesets
+```
+### ✅ FluentValidation.Tests.ScalePrecisionValidatorTests
+```
+✅ Scale_precision_should_be_valid
+✅ Scale_precision_should_be_valid_when_ignoring_trailing_zeroes
+✅ Scale_precision_should_be_valid_when_they_are_equal
+✅ Scale_precision_should_not_be_valid
+✅ Scale_precision_should_not_be_valid_when_ignoring_trailing_zeroes
+✅ Scale_precision_should_not_be_valid_when_they_are_equal
+```
+### ✅ FluentValidation.Tests.SharedConditionTests
+```
+✅ Async_condition_can_be_used_inside_ruleset
+✅ Condition_can_be_used_inside_ruleset
+✅ Does_not_execute_custom_Rule_when_async_condition_false
+✅ Does_not_execute_custom_Rule_when_condition_false
+✅ Does_not_execute_customasync_Rule_when_async_condition_false
+✅ Does_not_execute_customasync_Rule_when_condition_false
+✅ Doesnt_throw_NullReferenceException_when_instance_not_null
+✅ Doesnt_throw_NullReferenceException_when_instance_not_null_async
+✅ Executes_custom_rule_when_async_condition_true
+✅ Executes_custom_rule_when_condition_true
+✅ Executes_customasync_rule_when_async_condition_true
+✅ Executes_customasync_rule_when_condition_true
+✅ Nested_async_conditions_with_Custom_rule
+✅ Nested_async_conditions_with_CustomAsync_rule
+✅ Nested_conditions_with_Custom_rule
+✅ Nested_conditions_with_CustomAsync_rule
+✅ Outer_async_Unless_clause_will_trump_an_inner_Unless_clause_when_inner_fails_but_the_outer_is_satisfied
+✅ Outer_Unless_clause_will_trump_an_inner_Unless_clause_when_inner_fails_but_the_outer_is_satisfied
+✅ Rules_invoke_when_inverse_shared_async_condition_matches
+✅ Rules_invoke_when_inverse_shared_condition_matches
+✅ Rules_not_invoked_when_inverse_shared_async_condition_does_not_match
+✅ Rules_not_invoked_when_inverse_shared_condition_does_not_match
+✅ RuleSet_can_be_used_inside_async_condition
+✅ RuleSet_can_be_used_inside_condition
+✅ Runs_otherwise_conditions_for_UnlessAsync
+✅ Runs_otherwise_conditions_for_When
+✅ Runs_otherwise_conditions_for_WhenAsync
+✅ Runs_otherwise_conditons_for_Unless
+✅ Shared_async_When_is_applied_to_groupd_rules_when_initial_predicate_is_true_and_all_individual_rules_are_satisfied
+✅ Shared_async_When_is_applied_to_grouped_rules_when_initial_predicate_is_true
+✅ Shared_async_When_is_not_applied_to_grouped_rules_when_initial_predicate_is_false
+✅ Shared_async_When_respects_the_smaller_scope_of_a_inner_Unless_when_the_inner_Unless_predicate_fails
+✅ Shared_async_When_respects_the_smaller_scope_of_an_inner_Unless_when_the_inner_Unless_predicate_is_satisfied
+✅ Shared_When_is_applied_to_groupd_rules_when_initial_predicate_is_true_and_all_individual_rules_are_satisfied
+✅ Shared_When_is_applied_to_grouped_rules_when_initial_predicate_is_true
+✅ Shared_When_is_not_applied_to_grouped_rules_when_initial_predicate_is_false
+✅ Shared_When_respects_the_smaller_scope_of_a_inner_Unless_when_the_inner_Unless_predicate_fails
+✅ Shared_When_respects_the_smaller_scope_of_an_inner_Unless_when_the_inner_Unless_predicate_is_satisfied
+✅ When_async_condition_executed_for_each_instance_of_RuleForEach_condition_should_not_be_cached
+✅ When_condition_executed_for_each_instance_of_RuleForEach_condition_should_not_be_cached
+✅ When_condition_only_executed_once
+✅ WhenAsync_condition_only_executed_once
+```
+### ✅ FluentValidation.Tests.StandalonePropertyValidationTester
+```
+✅ Should_validate_property_value_without_instance
+```
+### ✅ FluentValidation.Tests.StringEnumValidatorTests
+```
+✅ IsValidTests_CaseInsensitive_CaseCorrect
+✅ IsValidTests_CaseInsensitive_CaseIncorrect
+✅ IsValidTests_CaseSensitive_CaseCorrect
+✅ IsValidTests_CaseSensitive_CaseIncorrect
+✅ When_enumType_is_not_an_enum_it_should_throw
+✅ When_enumType_is_null_it_should_throw
+✅ When_the_property_is_initialized_with_empty_string_then_the_validator_should_fail
+✅ When_the_property_is_initialized_with_invalid_string_then_the_validator_should_fail
+✅ When_the_property_is_initialized_with_null_then_the_validator_should_be_valid
+✅ When_validation_fails_the_default_error_should_be_set
+```
+### ✅ FluentValidation.Tests.TrackingCollectionTests
+```
+✅ Add_AddsItem
+✅ Should_not_raise_event_once_handler_detached
+✅ When_Item_Added_Raises_ItemAdded
+```
+### ✅ FluentValidation.Tests.TransformTests
+```
+✅ Transforms_collection_element
+✅ Transforms_collection_element_async
+✅ Transforms_property_value
+✅ Transforms_property_value_to_another_type
+```
+### ✅ FluentValidation.Tests.UserSeverityTester
+```
+✅ Can_Provide_conditional_severity
+✅ Can_Provide_severity_for_item_in_collection
+✅ Correctly_provides_object_being_validated
+✅ Defaults_user_severity_to_error
+✅ Should_use_last_supplied_severity
+✅ Stores_user_severity_against_validation_failure
+✅ Throws_when_provider_is_null
+```
+### ✅ FluentValidation.Tests.UserStateTester
+```
+✅ Can_Provide_state_for_item_in_collection
+✅ Correctly_provides_object_being_validated
+✅ Stores_user_state_against_validation_failure
+✅ Throws_when_provider_is_null
+```
+### ✅ FluentValidation.Tests.ValidateAndThrowTester
+```
+✅ Does_not_throw_when_valid
+✅ Does_not_throw_when_valid_and_a_ruleset
+✅ Does_not_throw_when_valid_and_a_ruleset_async
+✅ Does_not_throw_when_valid_async
+✅ Only_root_validator_throws
+✅ Populates_errors
+✅ Serializes_exception
+✅ Throws_exception
+✅ Throws_exception_async
+✅ Throws_exception_with_a_ruleset
+✅ Throws_exception_with_a_ruleset_async
+✅ ToString_provides_error_details
+✅ ValidationException_provides_correct_message_when_appendDefaultMessage_false
+✅ ValidationException_provides_correct_message_when_appendDefaultMessage_true
+```
+### ✅ FluentValidation.Tests.ValidationResultTests
+```
+✅ Can_serialize_failure
+✅ Can_serialize_result
+✅ Should_add_errors
+✅ Should_be_valid_when_there_are_no_errors
+✅ Should_not_be_valid_when_there_are_errors
+✅ ToString_return_empty_string_when_there_is_no_error
+✅ ToString_return_error_messages_with_given_separator
+✅ ToString_return_error_messages_with_newline_as_separator
+```
+### ✅ FluentValidation.Tests.ValidatorDescriptorTester
+```
+✅ Does_not_throw_when_rule_declared_without_property
+✅ Gets_validators_for_property
+✅ GetValidatorsForMember_and_GetRulesForMember_can_both_retrieve_for_model_level_rule
+✅ Returns_empty_collection_for_property_with_no_validators
+✅ Should_retrieve_name_given_to_it_pass_property_as_string
+```
+### ✅ FluentValidation.Tests.ValidatorSelectorTests
+```
+✅ Can_use_property_with_include
+✅ Does_not_validate_other_property
+✅ Does_not_validate_other_property_using_expression
+✅ Executes_correct_rule_when_using_property_with_include
+✅ Executes_correct_rule_when_using_property_with_include_async
+✅ Includes_nested_property
+✅ Includes_nested_property_using_expression
+✅ MemberNameValidatorSelector_returns_true_when_property_name_matches
+✅ Validates_nullable_property_with_overriden_name_when_selected
+✅ Validates_property_using_expression
+```
+### ✅ FluentValidation.Tests.ValidatorTesterTester
+```
+✅ Allows_only_one_failure_to_match
+✅ Can_use_indexer_in_string_message
+✅ Can_use_indexer_in_string_message_inverse
+✅ Expected_error_code_check
+✅ Expected_message_argument_check
+✅ Expected_message_check
+✅ Expected_severity_check
+✅ Expected_state_check
+✅ Matches_any_failure
+✅ Matches_model_level_rule
+✅ Model_level_check_fails_if_no_model_level_failures
+✅ ShouldHaveChildValidator_should_not_throw_when_property_Does_have_child_validator
+✅ ShouldHaveChildValidator_should_not_throw_when_property_Does_have_child_validator_and_expecting_a_basetype
+✅ ShouldHaveChildValidator_should_not_throw_when_property_has_collection_validators
+✅ ShouldHaveChildValidator_should_throw_when_property_has_a_different_child_validator
+✅ ShouldHaveChildValidator_should_work_with_DependentRules
+✅ ShouldHaveChildvalidator_throws_when_collection_property_Does_not_have_child_validator
+✅ ShouldHaveChildValidator_throws_when_property_does_not_have_child_validator
+✅ ShouldHaveChildValidator_works_on_model_level_rules
+✅ ShouldHaveValidationError_async
+✅ ShouldHaveValidationError_async_throws
+✅ ShouldHaveValidationError_model_async
+✅ ShouldHaveValidationError_model_async_throws
+✅ ShouldHaveValidationError_preconstructed_object_does_not_throw_for_unwritable_property
+✅ ShouldHaveValidationError_should_not_throw_when_there_are_errors_with_preconstructed_object
+✅ ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors
+✅ ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "")
+✅ ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: null)
+✅ ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors_ruleforeach
+✅ ShouldHaveValidationError_Should_support_nested_properties
+✅ ShouldHaveValidationError_Should_throw_when_there_are_no_validation_errors
+✅ ShouldHaveValidationError_should_throw_when_there_are_no_validation_errors_with_preconstructed_object
+✅ ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: "")
+✅ ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: "cardNumber")
+✅ ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: null)
+✅ ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 42, cardNumber: "cardNumber")
+✅ ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors_ruleforeach
+✅ ShouldHaveValidationError_with_an_unmatched_rule_and_a_single_error_should_throw_an_exception
+✅ ShouldHaveValidationError_with_an_unmatched_rule_and_multiple_errors_should_throw_an_exception
+✅ ShouldHaveValidationErrorFor_takes_account_of_rulesets
+✅ ShouldHaveValidationErrorFor_takes_account_of_rulesets_fluent_approach
+✅ ShouldNotHaveValidationError_async
+✅ ShouldNotHaveValidationError_async_model_throws
+✅ ShouldNotHaveValidationError_async_throws
+✅ ShouldNotHaveValidationError_model_async
+✅ ShouldNotHaveValidationError_should_correctly_handle_explicitly_providing_object_to_validate
+✅ ShouldNotHaveValidationError_should_correctly_handle_explicitly_providing_object_to_validate_and_other_property_fails_validation
+✅ ShouldNotHaveValidationError_should_have_validation_error_details_when_thrown_ruleforeach
+✅ ShouldNotHaveValidationError_should_not_throw_when_there_are_no_errors
+✅ ShouldNotHAveValidationError_should_not_throw_When_there_are_no_errors_with_preconstructed_object
+✅ ShouldNotHaveValidationError_should_not_throw_when_there_are_not_validation_errors_ruleforeach
+✅ ShouldNotHaveValidationError_Should_support_nested_properties
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_errors
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_errors_with_preconstructed_object
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: "")
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: "cardNumber")
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: null)
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "cardNumber")
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "")
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: null)
+✅ ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors_ruleforeach
+✅ Tests_nested_property
+✅ Tests_nested_property_reverse
+✅ Tests_nested_property_using_obsolete_method
+✅ TestValidate_runs_async
+✅ TestValidate_runs_async_throws
+✅ Unexpected_error_code_check
+✅ Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["bar"])
+✅ Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["foo", "bar"])
+✅ Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["foo"])
+✅ Unexpected_message_check(withoutErrMsg: "bar", errMessages: [])
+✅ Unexpected_severity_check
+✅ Unexpected_state_check
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/jest-junit.md b/__tests__/__outputs__/jest-junit.md
index b38f4bf..7c577d3 100644
--- a/__tests__/__outputs__/jest-junit.md
+++ b/__tests__/__outputs__/jest-junit.md
@@ -1,29 +1,29 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/jest-junit.xml|1:white_check_mark:|4:x:|1:warning:|1s|
-## :x: fixtures/jest-junit.xml
+|fixtures/jest-junit.xml|1 ✅|4 ❌|1 ⚪|1s|
+## ❌ fixtures/jest-junit.xml
**6** tests were completed in **1s** with **1** passed, **4** failed and **1** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[__tests__\main.test.js](#r0s0)|1:white_check_mark:|3:x:||486ms|
-|[__tests__\second.test.js](#r0s1)||1:x:|1:warning:|82ms|
-### :x: __tests__\main.test.js
+|[__tests__\main.test.js](#r0s0)|1 ✅|3 ❌||486ms|
+|[__tests__\second.test.js](#r0s1)||1 ❌|1 ⚪|82ms|
+### ❌ __tests__\main.test.js
```
Test 1
- :white_check_mark: Passing test
+ ✅ Passing test
Test 1 › Test 1.1
- :x: Failing test
+ ❌ Failing test
Error: expect(received).toBeTruthy()
- :x: Exception in target unit
+ ❌ Exception in target unit
Error: Some error
Test 2
- :x: Exception in test
+ ❌ Exception in test
Error: Some error
```
-### :x: __tests__\second.test.js
+### ❌ __tests__\second.test.js
```
-:x: Timeout test
+❌ Timeout test
: Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Error:
-:warning: Skipped test
+⚪ Skipped test
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/jest-react-component-test-results.md b/__tests__/__outputs__/jest-react-component-test-results.md
index c984afd..e9dda68 100644
--- a/__tests__/__outputs__/jest-react-component-test-results.md
+++ b/__tests__/__outputs__/jest-react-component-test-results.md
@@ -3,14 +3,14 @@
|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/external/jest/jest-react-component-test-results.xml|1:white_check_mark:|||1000ms|
-## :white_check_mark: fixtures/external/jest/jest-react-component-test-results.xml
+|fixtures/external/jest/jest-react-component-test-results.xml|1 ✅|||1000ms|
+## ✅ fixtures/external/jest/jest-react-component-test-results.xml
**1** tests were completed in **1000ms** with **1** passed, **0** failed and **0** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[\](#r0s0)|1:white_check_mark:|||798ms|
-### :white_check_mark: \
+|[\](#r0s0)|1 ✅|||798ms|
+### ✅ \
```
-:white_check_mark: should render properly
+✅ should render properly
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/jest-test-results.md b/__tests__/__outputs__/jest-test-results.md
index 797b0ff..24b5309 100644
--- a/__tests__/__outputs__/jest-test-results.md
+++ b/__tests__/__outputs__/jest-test-results.md
@@ -1,435 +1,435 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/external/jest/jest-test-results.xml|4207:white_check_mark:|2:x:|30:warning:|166s|
-## :x: fixtures/external/jest/jest-test-results.xml
+|fixtures/external/jest/jest-test-results.xml|4207 ✅|2 ❌|30 ⚪|166s|
+## ❌ fixtures/external/jest/jest-test-results.xml
**4239** tests were completed in **166s** with **4207** passed, **2** failed and **30** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|e2e/__tests__/asyncAndCallback.test.ts|1:white_check_mark:|||746ms|
-|e2e/__tests__/asyncRegenerator.test.ts|1:white_check_mark:|||4s|
-|e2e/__tests__/autoClearMocks.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/autoResetMocks.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/autoRestoreMocks.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/babelPluginJestHoist.test.ts|1:white_check_mark:|||6s|
-|e2e/__tests__/badSourceMap.test.ts|1:white_check_mark:|||858ms|
-|e2e/__tests__/beforeAllFiltered.ts|1:white_check_mark:|||958ms|
-|e2e/__tests__/beforeEachQueue.ts|1:white_check_mark:||1:warning:|55ms|
-|e2e/__tests__/callDoneTwice.test.ts|1:white_check_mark:|||882ms|
-|e2e/__tests__/chaiAssertionLibrary.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/circularInequality.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/circusConcurrentEach.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/circusDeclarationErrors.test.ts|1:white_check_mark:|||869ms|
-|e2e/__tests__/clearCache.test.ts|2:white_check_mark:|||1s|
-|e2e/__tests__/cliHandlesExactFilenames.test.ts|2:white_check_mark:|||1s|
-|e2e/__tests__/compareDomNodes.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/config.test.ts|6:white_check_mark:|||4s|
-|e2e/__tests__/console.test.ts|7:white_check_mark:|||8s|
-|e2e/__tests__/consoleAfterTeardown.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts|1:white_check_mark:|||793ms|
-|e2e/__tests__/coverageHandlebars.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/coverageRemapping.test.ts|1:white_check_mark:|||13s|
-|e2e/__tests__/coverageReport.test.ts|12:white_check_mark:|||22s|
-|e2e/__tests__/coverageThreshold.test.ts|5:white_check_mark:|||5s|
-|e2e/__tests__/coverageTransformInstrumented.test.ts|1:white_check_mark:|||5s|
-|e2e/__tests__/coverageWithoutTransform.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/createProcessObject.test.ts|1:white_check_mark:|||908ms|
-|e2e/__tests__/customInlineSnapshotMatchers.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/customMatcherStackTrace.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/customReporters.test.ts|9:white_check_mark:|||7s|
-|e2e/__tests__/customResolver.test.ts|1:white_check_mark:|||826ms|
-|e2e/__tests__/customTestSequencers.test.ts|3:white_check_mark:|||3s|
-|e2e/__tests__/debug.test.ts|1:white_check_mark:|||899ms|
-|e2e/__tests__/declarationErrors.test.ts|3:white_check_mark:|||2s|
-|e2e/__tests__/dependencyClash.test.ts|1:white_check_mark:|||833ms|
-|e2e/__tests__/detectOpenHandles.ts|8:white_check_mark:|||8s|
-|e2e/__tests__/domDiffing.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/doneInHooks.test.ts|1:white_check_mark:|||855ms|
-|e2e/__tests__/dynamicRequireDependencies.ts|1:white_check_mark:|||847ms|
-|e2e/__tests__/each.test.ts|7:white_check_mark:|||5s|
-|e2e/__tests__/emptyDescribeWithHooks.test.ts|4:white_check_mark:|||3s|
-|e2e/__tests__/emptySuiteError.test.ts|1:white_check_mark:|||885ms|
-|e2e/__tests__/env.test.ts|6:white_check_mark:|||5s|
-|e2e/__tests__/environmentAfterTeardown.test.ts|1:white_check_mark:|||892ms|
-|e2e/__tests__/errorOnDeprecated.test.ts|1:white_check_mark:||24:warning:|56ms|
-|e2e/__tests__/esmConfigFile.test.ts|3:white_check_mark:|||526ms|
-|e2e/__tests__/executeTestsOnceInMpr.ts|1:white_check_mark:|||976ms|
-|e2e/__tests__/existentRoots.test.ts|4:white_check_mark:|||627ms|
-|e2e/__tests__/expectAsyncMatcher.test.ts|2:white_check_mark:|||3s|
-|e2e/__tests__/expectInVm.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/extraGlobals.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/failureDetailsProperty.test.ts|1:white_check_mark:|||907ms|
-|e2e/__tests__/failures.test.ts|7:white_check_mark:|||10s|
-|e2e/__tests__/fakePromises.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/fatalWorkerError.test.ts|1:white_check_mark:|||3s|
-|e2e/__tests__/filter.test.ts|7:white_check_mark:|||5s|
-|e2e/__tests__/findRelatedFiles.test.ts|5:white_check_mark:|||6s|
-|e2e/__tests__/focusedTests.test.ts|1:white_check_mark:|||888ms|
-|e2e/__tests__/forceExit.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/generatorMock.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/global-mutation.test.ts|1:white_check_mark:|||40ms|
-|e2e/__tests__/global.test.ts|1:white_check_mark:|||31ms|
-|e2e/__tests__/globals.test.ts|10:white_check_mark:|||8s|
-|e2e/__tests__/globalSetup.test.ts|10:white_check_mark:|||14s|
-|e2e/__tests__/globalTeardown.test.ts|7:white_check_mark:|||12s|
-|e2e/__tests__/hasteMapMockChanged.test.ts|1:white_check_mark:|||379ms|
-|e2e/__tests__/hasteMapSha1.test.ts|1:white_check_mark:|||298ms|
-|e2e/__tests__/hasteMapSize.test.ts|2:white_check_mark:|||397ms|
-|e2e/__tests__/importedGlobals.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/injectGlobals.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/jasmineAsync.test.ts|15:white_check_mark:|||28s|
-|e2e/__tests__/jasmineAsyncWithPendingDuringTest.ts|1:white_check_mark:||1:warning:|72ms|
-|e2e/__tests__/jest.config.js.test.ts|3:white_check_mark:|||2s|
-|e2e/__tests__/jest.config.ts.test.ts|5:white_check_mark:|||14s|
-|[e2e/__tests__/jestChangedFiles.test.ts](#r0s75)|9:white_check_mark:|1:x:||9s|
-|e2e/__tests__/jestEnvironmentJsdom.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/jestRequireActual.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/jestRequireMock.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/json.test.ts|2:white_check_mark:|||29ms|
-|e2e/__tests__/jsonReporter.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/lifecycles.ts|1:white_check_mark:|||861ms|
-|e2e/__tests__/listTests.test.ts|2:white_check_mark:|||945ms|
-|e2e/__tests__/locationInResults.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/logHeapUsage.test.ts|1:white_check_mark:|||884ms|
-|e2e/__tests__/mockNames.test.ts|8:white_check_mark:|||7s|
-|e2e/__tests__/modernFakeTimers.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/moduleNameMapper.test.ts|5:white_check_mark:|||5s|
-|e2e/__tests__/moduleParentNullInTest.ts|1:white_check_mark:|||886ms|
-|e2e/__tests__/multiProjectRunner.test.ts|14:white_check_mark:|||16s|
-|e2e/__tests__/nativeAsyncMock.test.ts|1:white_check_mark:|||55ms|
-|e2e/__tests__/nativeEsm.test.ts|2:white_check_mark:||1:warning:|905ms|
-|e2e/__tests__/nativeEsmTypescript.test.ts|1:white_check_mark:|||956ms|
-|e2e/__tests__/nestedEventLoop.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/nestedTestDefinitions.test.ts|4:white_check_mark:|||5s|
-|e2e/__tests__/nodePath.test.ts|1:white_check_mark:|||866ms|
-|e2e/__tests__/noTestFound.test.ts|2:white_check_mark:|||1s|
-|e2e/__tests__/noTestsFound.test.ts|5:white_check_mark:|||3s|
-|[e2e/__tests__/onlyChanged.test.ts](#r0s98)|8:white_check_mark:|1:x:||22s|
-|e2e/__tests__/onlyFailuresNonWatch.test.ts|1:white_check_mark:|||3s|
-|e2e/__tests__/overrideGlobals.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/pnp.test.ts|1:white_check_mark:|||3s|
-|e2e/__tests__/presets.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/processExit.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/promiseReject.test.ts|1:white_check_mark:|||967ms|
-|e2e/__tests__/regexCharInPath.test.ts|1:white_check_mark:|||962ms|
-|e2e/__tests__/requireAfterTeardown.test.ts|1:white_check_mark:|||921ms|
-|e2e/__tests__/requireMain.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/requireMainAfterCreateRequire.test.ts|1:white_check_mark:|||966ms|
-|e2e/__tests__/requireMainIsolateModules.test.ts|1:white_check_mark:|||976ms|
-|e2e/__tests__/requireMainResetModules.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/requireV8Module.test.ts|1:white_check_mark:|||30ms|
-|e2e/__tests__/resetModules.test.ts|1:white_check_mark:|||926ms|
-|e2e/__tests__/resolve.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/resolveGetPaths.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/resolveNodeModule.test.ts|1:white_check_mark:|||943ms|
-|e2e/__tests__/resolveNoFileExtensions.test.ts|2:white_check_mark:|||1s|
-|e2e/__tests__/resolveWithPaths.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/runProgrammatically.test.ts|2:white_check_mark:|||575ms|
-|e2e/__tests__/runTestsByPath.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/runtimeInternalModuleRegistry.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/selectProjects.test.ts|18:white_check_mark:|||5s|
-|e2e/__tests__/setImmediate.test.ts|1:white_check_mark:|||904ms|
-|e2e/__tests__/setupFilesAfterEnvConfig.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/showConfig.test.ts|1:white_check_mark:|||195ms|
-|e2e/__tests__/skipBeforeAfterAll.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/snapshot-unknown.test.ts|1:white_check_mark:|||838ms|
-|e2e/__tests__/snapshot.test.ts|9:white_check_mark:|||14s|
-|e2e/__tests__/snapshotMockFs.test.ts|1:white_check_mark:|||883ms|
-|e2e/__tests__/snapshotResolver.test.ts|1:white_check_mark:|||823ms|
-|e2e/__tests__/snapshotSerializers.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/stackTrace.test.ts|7:white_check_mark:|||5s|
-|e2e/__tests__/stackTraceNoCaptureStackTrace.test.ts|1:white_check_mark:|||899ms|
-|e2e/__tests__/stackTraceSourceMaps.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/stackTraceSourceMapsWithCoverage.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/supportsDashedArgs.ts|2:white_check_mark:|||968ms|
-|e2e/__tests__/symbol.test.ts|1:white_check_mark:|||49ms|
-|e2e/__tests__/testEnvironment.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/testEnvironmentAsync.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/testEnvironmentCircus.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/testEnvironmentCircusAsync.test.ts|1:white_check_mark:|||2s|
-|e2e/__tests__/testFailureExitCode.test.ts|2:white_check_mark:|||4s|
-|e2e/__tests__/testInRoot.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/testNamePattern.test.ts|1:white_check_mark:|||859ms|
-|e2e/__tests__/testNamePatternSkipped.test.ts|1:white_check_mark:|||991ms|
-|e2e/__tests__/testPathPatternReporterMessage.test.ts|1:white_check_mark:|||3s|
-|e2e/__tests__/testResultsProcessor.test.ts|1:white_check_mark:|||910ms|
-|e2e/__tests__/testRetries.test.ts|4:white_check_mark:|||3s|
-|e2e/__tests__/testTodo.test.ts|5:white_check_mark:|||4s|
-|e2e/__tests__/timeouts.test.ts|4:white_check_mark:|||4s|
-|e2e/__tests__/timeoutsLegacy.test.ts|1:white_check_mark:||3:warning:|71ms|
-|e2e/__tests__/timerResetMocks.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/timerUseRealTimers.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/toMatchInlineSnapshot.test.ts|12:white_check_mark:|||24s|
-|e2e/__tests__/toMatchInlineSnapshotWithRetries.test.ts|3:white_check_mark:|||5s|
-|e2e/__tests__/toMatchSnapshot.test.ts|9:white_check_mark:|||17s|
-|e2e/__tests__/toMatchSnapshotWithRetries.test.ts|2:white_check_mark:|||4s|
-|e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts|3:white_check_mark:|||4s|
-|e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts|4:white_check_mark:|||4s|
-|e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts|5:white_check_mark:|||4s|
-|e2e/__tests__/transform.test.ts|16:white_check_mark:|||27s|
-|e2e/__tests__/transformLinkedModules.test.ts|1:white_check_mark:|||783ms|
-|e2e/__tests__/typescriptCoverage.test.ts|1:white_check_mark:|||3s|
-|e2e/__tests__/unexpectedToken.test.ts|3:white_check_mark:|||3s|
-|e2e/__tests__/useStderr.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/v8Coverage.test.ts|2:white_check_mark:|||2s|
-|e2e/__tests__/verbose.test.ts|1:white_check_mark:|||683ms|
-|e2e/__tests__/version.test.ts|1:white_check_mark:|||138ms|
-|e2e/__tests__/watchModeNoAccess.test.ts|1:white_check_mark:|||4s|
-|e2e/__tests__/watchModeOnlyFailed.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/watchModePatterns.test.ts|2:white_check_mark:|||4s|
-|e2e/__tests__/watchModeUpdateSnapshot.test.ts|1:white_check_mark:|||1s|
-|e2e/__tests__/workerForceExit.test.ts|2:white_check_mark:|||5s|
-|e2e/__tests__/wrongEnv.test.ts|5:white_check_mark:|||4s|
-|e2e/custom-test-sequencer/a.test.js|1:white_check_mark:|||29ms|
-|e2e/custom-test-sequencer/b.test.js|1:white_check_mark:|||21ms|
-|e2e/custom-test-sequencer/c.test.js|1:white_check_mark:|||42ms|
-|e2e/custom-test-sequencer/d.test.js|1:white_check_mark:|||21ms|
-|e2e/custom-test-sequencer/e.test.js|1:white_check_mark:|||27ms|
-|e2e/test-in-root/spec.js|1:white_check_mark:|||19ms|
-|e2e/test-in-root/test.js|1:white_check_mark:|||37ms|
-|e2e/timer-reset-mocks/after-reset-all-mocks/timerAndMock.test.js|2:white_check_mark:|||30ms|
-|e2e/timer-reset-mocks/with-reset-mocks/timerWithMock.test.js|1:white_check_mark:|||34ms|
-|e2e/v8-coverage/empty-sourcemap/test.ts|1:white_check_mark:|||31ms|
-|examples/angular/app.component.spec.ts|3:white_check_mark:|||654ms|
-|examples/angular/shared/data.service.spec.ts|2:white_check_mark:|||431ms|
-|examples/angular/shared/sub.service.spec.ts|1:white_check_mark:|||109ms|
-|examples/async/__tests__/user.test.js|8:white_check_mark:|||96ms|
-|examples/automatic-mocks/__tests__/automock.test.js|2:white_check_mark:|||74ms|
-|examples/automatic-mocks/__tests__/createMockFromModule.test.js|2:white_check_mark:|||115ms|
-|examples/automatic-mocks/__tests__/disableAutomocking.test.js|1:white_check_mark:|||24ms|
-|examples/enzyme/__tests__/CheckboxWithLabel-test.js|1:white_check_mark:|||434ms|
-|examples/getting-started/sum.test.js|1:white_check_mark:|||78ms|
-|examples/jquery/__tests__/display_user.test.js|1:white_check_mark:|||196ms|
-|examples/jquery/__tests__/fetch_current_user.test.js|2:white_check_mark:|||196ms|
-|examples/manual-mocks/__tests__/file_summarizer.test.js|1:white_check_mark:|||87ms|
-|examples/manual-mocks/__tests__/lodashMocking.test.js|1:white_check_mark:|||109ms|
-|examples/manual-mocks/__tests__/user.test.js|1:white_check_mark:|||41ms|
-|examples/manual-mocks/__tests__/userMocked.test.js|1:white_check_mark:|||105ms|
-|examples/module-mock/__tests__/full_mock.js|1:white_check_mark:|||60ms|
-|examples/module-mock/__tests__/mock_per_test.js|2:white_check_mark:|||116ms|
-|examples/module-mock/__tests__/partial_mock.js|1:white_check_mark:|||215ms|
-|examples/mongodb/__test__/db.test.js|1:white_check_mark:|||236ms|
-|examples/react-native/__tests__/intro.test.js|4:white_check_mark:|||9s|
-|examples/react-testing-library/__tests__/CheckboxWithLabel-test.js|1:white_check_mark:|||469ms|
-|examples/react/__tests__/CheckboxWithLabel-test.js|1:white_check_mark:|||256ms|
-|examples/snapshot/__tests__/clock.react.test.js|1:white_check_mark:|||62ms|
-|examples/snapshot/__tests__/link.react.test.js|4:white_check_mark:|||181ms|
-|examples/timer/__tests__/infinite_timer_game.test.js|1:white_check_mark:|||94ms|
-|examples/timer/__tests__/timer_game.test.js|3:white_check_mark:|||74ms|
-|examples/typescript/__tests__/calc.test.ts|6:white_check_mark:|||276ms|
-|examples/typescript/__tests__/CheckboxWithLabel-test.tsx|1:white_check_mark:|||227ms|
-|examples/typescript/__tests__/sub-test.ts|1:white_check_mark:|||43ms|
-|examples/typescript/__tests__/sum-test.ts|2:white_check_mark:|||69ms|
-|examples/typescript/__tests__/sum.test.js|2:white_check_mark:|||100ms|
-|packages/babel-jest/src/__tests__/index.ts|6:white_check_mark:|||371ms|
-|packages/babel-plugin-jest-hoist/src/__tests__/hoistPlugin.test.ts|4:white_check_mark:|||347ms|
-|packages/diff-sequences/src/__tests__/index.property.test.ts|7:white_check_mark:|||357ms|
-|packages/diff-sequences/src/__tests__/index.test.ts|48:white_check_mark:|||195ms|
-|packages/expect/src/__tests__/assertionCounts.test.ts|6:white_check_mark:|||60ms|
-|packages/expect/src/__tests__/asymmetricMatchers.test.ts|38:white_check_mark:|||207ms|
-|packages/expect/src/__tests__/extend.test.ts|10:white_check_mark:|||99ms|
-|packages/expect/src/__tests__/isError.test.ts|4:white_check_mark:|||43ms|
-|packages/expect/src/__tests__/matchers-toContain.property.test.ts|2:white_check_mark:|||236ms|
-|packages/expect/src/__tests__/matchers-toContainEqual.property.test.ts|2:white_check_mark:|||287ms|
-|packages/expect/src/__tests__/matchers-toEqual.property.test.ts|2:white_check_mark:|||1s|
-|packages/expect/src/__tests__/matchers-toStrictEqual.property.test.ts|3:white_check_mark:|||394ms|
-|packages/expect/src/__tests__/matchers.test.js|592:white_check_mark:|||862ms|
-|packages/expect/src/__tests__/spyMatchers.test.ts|248:white_check_mark:|||395ms|
-|packages/expect/src/__tests__/stacktrace.test.ts|3:white_check_mark:|||69ms|
-|packages/expect/src/__tests__/symbolInObjects.test.ts|3:white_check_mark:|||33ms|
-|packages/expect/src/__tests__/toEqual-dom.test.ts|12:white_check_mark:|||99ms|
-|packages/expect/src/__tests__/toThrowMatchers.test.ts|98:white_check_mark:|||257ms|
-|packages/expect/src/__tests__/utils.test.ts|41:white_check_mark:|||147ms|
-|packages/jest-circus/src/__tests__/afterAll.test.ts|6:white_check_mark:|||6s|
-|packages/jest-circus/src/__tests__/baseTest.test.ts|2:white_check_mark:|||3s|
-|packages/jest-circus/src/__tests__/circusItTestError.test.ts|8:white_check_mark:|||300ms|
-|packages/jest-circus/src/__tests__/circusItTodoTestError.test.ts|3:white_check_mark:|||81ms|
-|packages/jest-circus/src/__tests__/hooks.test.ts|3:white_check_mark:|||4s|
-|packages/jest-circus/src/__tests__/hooksError.test.ts|32:white_check_mark:|||127ms|
-|packages/jest-cli/src/__tests__/cli/args.test.ts|17:white_check_mark:|||345ms|
-|packages/jest-cli/src/init/__tests__/init.test.js|24:white_check_mark:|||119ms|
-|packages/jest-cli/src/init/__tests__/modifyPackageJson.test.ts|4:white_check_mark:|||30ms|
-|packages/jest-config/src/__tests__/Defaults.test.ts|1:white_check_mark:|||672ms|
-|packages/jest-config/src/__tests__/getMaxWorkers.test.ts|7:white_check_mark:|||67ms|
-|packages/jest-config/src/__tests__/normalize.test.js|118:white_check_mark:|||798ms|
-|packages/jest-config/src/__tests__/readConfig.test.ts|1:white_check_mark:|||76ms|
-|packages/jest-config/src/__tests__/readConfigs.test.ts|3:white_check_mark:|||135ms|
-|packages/jest-config/src/__tests__/resolveConfigPath.test.ts|10:white_check_mark:|||183ms|
-|packages/jest-config/src/__tests__/setFromArgv.test.ts|4:white_check_mark:|||53ms|
-|packages/jest-config/src/__tests__/validatePattern.test.ts|4:white_check_mark:|||52ms|
-|packages/jest-console/src/__tests__/bufferedConsole.test.ts|20:white_check_mark:|||171ms|
-|packages/jest-console/src/__tests__/CustomConsole.test.ts|23:white_check_mark:|||115ms|
-|packages/jest-console/src/__tests__/getConsoleOutput.test.ts|12:white_check_mark:|||56ms|
-|packages/jest-core/src/__tests__/FailedTestsCache.test.js|1:white_check_mark:|||25ms|
-|packages/jest-core/src/__tests__/getNoTestsFoundMessage.test.js|5:white_check_mark:|||61ms|
-|packages/jest-core/src/__tests__/globals.test.ts|1:white_check_mark:|||22ms|
-|packages/jest-core/src/__tests__/runJest.test.js|2:white_check_mark:|||261ms|
-|packages/jest-core/src/__tests__/SearchSource.test.ts|27:white_check_mark:|||3s|
-|packages/jest-core/src/__tests__/SnapshotInteractiveMode.test.js|13:white_check_mark:|||89ms|
-|packages/jest-core/src/__tests__/TestScheduler.test.js|8:white_check_mark:|||520ms|
-|packages/jest-core/src/__tests__/testSchedulerHelper.test.js|12:white_check_mark:|||48ms|
-|packages/jest-core/src/__tests__/watch.test.js|80:white_check_mark:|||7s|
-|packages/jest-core/src/__tests__/watchFileChanges.test.ts|1:white_check_mark:|||2s|
-|packages/jest-core/src/__tests__/watchFilenamePatternMode.test.js|2:white_check_mark:|||165ms|
-|packages/jest-core/src/__tests__/watchTestNamePatternMode.test.js|1:white_check_mark:|||246ms|
-|packages/jest-core/src/lib/__tests__/isValidPath.test.ts|3:white_check_mark:|||166ms|
-|packages/jest-core/src/lib/__tests__/logDebugMessages.test.ts|3:white_check_mark:|||48ms|
-|packages/jest-create-cache-key-function/src/__tests__/index.test.ts|1:white_check_mark:|||75ms|
-|packages/jest-diff/src/__tests__/diff.test.ts|107:white_check_mark:|||625ms|
-|packages/jest-diff/src/__tests__/diffStringsRaw.test.ts|2:white_check_mark:|||55ms|
-|packages/jest-diff/src/__tests__/getAlignedDiffs.test.ts|24:white_check_mark:|||72ms|
-|packages/jest-diff/src/__tests__/joinAlignedDiffs.test.ts|6:white_check_mark:|||44ms|
-|packages/jest-docblock/src/__tests__/index.test.ts|36:white_check_mark:|||177ms|
-|packages/jest-each/src/__tests__/array.test.ts|159:white_check_mark:|||192ms|
-|packages/jest-each/src/__tests__/index.test.ts|10:white_check_mark:|||44ms|
-|packages/jest-each/src/__tests__/template.test.ts|242:white_check_mark:|||483ms|
-|packages/jest-environment-jsdom/src/__tests__/jsdom_environment.test.ts|2:white_check_mark:|||783ms|
-|packages/jest-environment-node/src/__tests__/node_environment.test.ts|6:white_check_mark:|||184ms|
-|packages/jest-fake-timers/src/__tests__/legacyFakeTimers.test.ts|50:white_check_mark:|||302ms|
-|packages/jest-fake-timers/src/__tests__/modernFakeTimers.test.ts|40:white_check_mark:|||317ms|
-|packages/jest-get-type/src/__tests__/getType.test.ts|14:white_check_mark:|||45ms|
-|packages/jest-get-type/src/__tests__/isPrimitive.test.ts|18:white_check_mark:|||36ms|
-|packages/jest-globals/src/__tests__/index.ts|1:white_check_mark:|||533ms|
-|packages/jest-haste-map/src/__tests__/get_mock_name.test.js|1:white_check_mark:|||22ms|
-|packages/jest-haste-map/src/__tests__/includes_dotfiles.test.ts|1:white_check_mark:|||337ms|
-|packages/jest-haste-map/src/__tests__/index.test.js|44:white_check_mark:|||1s|
-|packages/jest-haste-map/src/__tests__/worker.test.js|7:white_check_mark:|||100ms|
-|packages/jest-haste-map/src/crawlers/__tests__/node.test.js|10:white_check_mark:|||170ms|
-|packages/jest-haste-map/src/crawlers/__tests__/watchman.test.js|8:white_check_mark:|||153ms|
-|packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js|15:white_check_mark:|||56ms|
-|packages/jest-haste-map/src/lib/__tests__/fast_path.test.js|5:white_check_mark:|||29ms|
-|packages/jest-haste-map/src/lib/__tests__/getPlatformExtension.test.js|1:white_check_mark:|||35ms|
-|packages/jest-haste-map/src/lib/__tests__/isRegExpSupported.test.js|2:white_check_mark:|||31ms|
-|packages/jest-haste-map/src/lib/__tests__/normalizePathSep.test.js|2:white_check_mark:|||35ms|
-|packages/jest-jasmine2/src/__tests__/concurrent.test.ts|3:white_check_mark:|||24ms|
-|packages/jest-jasmine2/src/__tests__/expectationResultFactory.test.ts|7:white_check_mark:|||70ms|
-|packages/jest-jasmine2/src/__tests__/hooksError.test.ts|32:white_check_mark:|||51ms|
-|packages/jest-jasmine2/src/__tests__/iterators.test.ts|4:white_check_mark:|||43ms|
-|packages/jest-jasmine2/src/__tests__/itTestError.test.ts|6:white_check_mark:|||32ms|
-|packages/jest-jasmine2/src/__tests__/itToTestAlias.test.ts|1:white_check_mark:|||23ms|
-|packages/jest-jasmine2/src/__tests__/pTimeout.test.ts|3:white_check_mark:|||44ms|
-|packages/jest-jasmine2/src/__tests__/queueRunner.test.ts|6:white_check_mark:|||93ms|
-|packages/jest-jasmine2/src/__tests__/reporter.test.ts|1:white_check_mark:|||107ms|
-|packages/jest-jasmine2/src/__tests__/Suite.test.ts|1:white_check_mark:|||84ms|
-|packages/jest-jasmine2/src/__tests__/todoError.test.ts|3:white_check_mark:|||27ms|
-|packages/jest-leak-detector/src/__tests__/index.test.ts|6:white_check_mark:|||986ms|
-|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceable.test.ts|11:white_check_mark:|||49ms|
-|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceableDom.test.ts|2:white_check_mark:|||48ms|
-|packages/jest-matcher-utils/src/__tests__/index.test.ts|48:white_check_mark:|||391ms|
-|packages/jest-matcher-utils/src/__tests__/printDiffOrStringify.test.ts|21:white_check_mark:|||114ms|
-|packages/jest-matcher-utils/src/__tests__/Replaceable.test.ts|17:white_check_mark:|||111ms|
-|packages/jest-message-util/src/__tests__/messages.test.ts|11:white_check_mark:|||205ms|
-|packages/jest-mock/src/__tests__/index.test.ts|84:white_check_mark:|||509ms|
-|packages/jest-regex-util/src/__tests__/index.test.ts|8:white_check_mark:|||56ms|
-|packages/jest-repl/src/__tests__/jest_repl.test.js|1:white_check_mark:|||1s|
-|packages/jest-repl/src/__tests__/runtime_cli.test.js|4:white_check_mark:|||4s|
-|packages/jest-reporters/src/__tests__/CoverageReporter.test.js|12:white_check_mark:|||397ms|
-|packages/jest-reporters/src/__tests__/CoverageWorker.test.js|2:white_check_mark:|||199ms|
-|packages/jest-reporters/src/__tests__/DefaultReporter.test.js|2:white_check_mark:|||148ms|
-|packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js|3:white_check_mark:|||1s|
-|packages/jest-reporters/src/__tests__/getResultHeader.test.js|4:white_check_mark:|||30ms|
-|packages/jest-reporters/src/__tests__/getSnapshotStatus.test.js|3:white_check_mark:|||28ms|
-|packages/jest-reporters/src/__tests__/getSnapshotSummary.test.js|4:white_check_mark:|||49ms|
-|packages/jest-reporters/src/__tests__/getWatermarks.test.ts|2:white_check_mark:|||37ms|
-|packages/jest-reporters/src/__tests__/NotifyReporter.test.ts|18:white_check_mark:|||166ms|
-|packages/jest-reporters/src/__tests__/SummaryReporter.test.js|4:white_check_mark:|||366ms|
-|packages/jest-reporters/src/__tests__/utils.test.ts|10:white_check_mark:|||85ms|
-|packages/jest-reporters/src/__tests__/VerboseReporter.test.js|11:white_check_mark:|||425ms|
-|packages/jest-resolve-dependencies/src/__tests__/dependency_resolver.test.ts|11:white_check_mark:|||666ms|
-|packages/jest-resolve/src/__tests__/isBuiltinModule.test.ts|4:white_check_mark:|||36ms|
-|packages/jest-resolve/src/__tests__/resolve.test.ts|16:white_check_mark:|||1s|
-|packages/jest-runner/src/__tests__/testRunner.test.ts|2:white_check_mark:|||905ms|
-|packages/jest-runtime/src/__tests__/instrumentation.test.ts|1:white_check_mark:|||275ms|
-|packages/jest-runtime/src/__tests__/runtime_create_mock_from_module.test.js|3:white_check_mark:|||606ms|
-|packages/jest-runtime/src/__tests__/runtime_environment.test.js|2:white_check_mark:|||497ms|
-|packages/jest-runtime/src/__tests__/runtime_internal_module.test.js|4:white_check_mark:|||727ms|
-|packages/jest-runtime/src/__tests__/runtime_jest_fn.js|4:white_check_mark:|||479ms|
-|packages/jest-runtime/src/__tests__/runtime_jest_spy_on.test.js|2:white_check_mark:|||521ms|
-|packages/jest-runtime/src/__tests__/runtime_mock.test.js|4:white_check_mark:|||743ms|
-|packages/jest-runtime/src/__tests__/runtime_module_directories.test.js|4:white_check_mark:|||525ms|
-|packages/jest-runtime/src/__tests__/runtime_node_path.test.js|4:white_check_mark:|||1s|
-|packages/jest-runtime/src/__tests__/runtime_require_actual.test.js|2:white_check_mark:|||478ms|
-|packages/jest-runtime/src/__tests__/runtime_require_cache.test.js|2:white_check_mark:|||454ms|
-|packages/jest-runtime/src/__tests__/runtime_require_mock.test.js|13:white_check_mark:|||962ms|
-|packages/jest-runtime/src/__tests__/runtime_require_module_no_ext.test.js|1:white_check_mark:|||261ms|
-|packages/jest-runtime/src/__tests__/runtime_require_module_or_mock_transitive_deps.test.js|6:white_check_mark:|||2s|
-|packages/jest-runtime/src/__tests__/runtime_require_module_or_mock.test.js|17:white_check_mark:|||1s|
-|packages/jest-runtime/src/__tests__/runtime_require_module.test.js|27:white_check_mark:|||2s|
-|packages/jest-runtime/src/__tests__/runtime_require_resolve.test.ts|5:white_check_mark:|||707ms|
-|packages/jest-runtime/src/__tests__/runtime_wrap.js|2:white_check_mark:|||263ms|
-|packages/jest-runtime/src/__tests__/Runtime-sourceMaps.test.js|1:white_check_mark:|||584ms|
-|packages/jest-runtime/src/__tests__/Runtime-statics.test.js|2:white_check_mark:|||162ms|
-|packages/jest-serializer/src/__tests__/index.test.ts|17:white_check_mark:|||158ms|
-|packages/jest-snapshot/src/__tests__/dedentLines.test.ts|17:white_check_mark:|||94ms|
-|packages/jest-snapshot/src/__tests__/InlineSnapshots.test.ts|22:white_check_mark:|||1s|
-|packages/jest-snapshot/src/__tests__/matcher.test.ts|1:white_check_mark:|||131ms|
-|packages/jest-snapshot/src/__tests__/mockSerializer.test.ts|10:white_check_mark:|||45ms|
-|packages/jest-snapshot/src/__tests__/printSnapshot.test.ts|71:white_check_mark:|||1s|
-|packages/jest-snapshot/src/__tests__/SnapshotResolver.test.ts|10:white_check_mark:|||98ms|
-|packages/jest-snapshot/src/__tests__/throwMatcher.test.ts|3:white_check_mark:|||481ms|
-|packages/jest-snapshot/src/__tests__/utils.test.ts|26:white_check_mark:|||214ms|
-|packages/jest-source-map/src/__tests__/getCallsite.test.ts|3:white_check_mark:|||86ms|
-|packages/jest-test-result/src/__tests__/formatTestResults.test.ts|1:white_check_mark:|||53ms|
-|packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js|8:white_check_mark:|||251ms|
-|packages/jest-transform/src/__tests__/ScriptTransformer.test.ts|22:white_check_mark:|||2s|
-|packages/jest-transform/src/__tests__/shouldInstrument.test.ts|25:white_check_mark:|||155ms|
-|packages/jest-util/src/__tests__/createProcessObject.test.ts|4:white_check_mark:|||81ms|
-|packages/jest-util/src/__tests__/deepCyclicCopy.test.ts|12:white_check_mark:|||86ms|
-|packages/jest-util/src/__tests__/errorWithStack.test.ts|1:white_check_mark:|||41ms|
-|packages/jest-util/src/__tests__/formatTime.test.ts|11:white_check_mark:|||82ms|
-|packages/jest-util/src/__tests__/globsToMatcher.test.ts|4:white_check_mark:|||56ms|
-|packages/jest-util/src/__tests__/installCommonGlobals.test.ts|2:white_check_mark:|||68ms|
-|packages/jest-util/src/__tests__/isInteractive.test.ts|2:white_check_mark:|||35ms|
-|packages/jest-util/src/__tests__/isPromise.test.ts|10:white_check_mark:|||30ms|
-|packages/jest-validate/src/__tests__/validate.test.ts|23:white_check_mark:|||283ms|
-|packages/jest-validate/src/__tests__/validateCLIOptions.test.js|6:white_check_mark:|||83ms|
-|packages/jest-watcher/src/lib/__tests__/formatTestNameByPattern.test.ts|11:white_check_mark:|||129ms|
-|packages/jest-watcher/src/lib/__tests__/prompt.test.ts|3:white_check_mark:|||91ms|
-|packages/jest-watcher/src/lib/__tests__/scroll.test.ts|5:white_check_mark:|||57ms|
-|packages/jest-worker/src/__tests__/Farm.test.js|10:white_check_mark:|||158ms|
-|packages/jest-worker/src/__tests__/FifoQueue.test.js|3:white_check_mark:|||48ms|
-|packages/jest-worker/src/__tests__/index.test.js|8:white_check_mark:|||230ms|
-|packages/jest-worker/src/__tests__/PriorityQueue.test.js|5:white_check_mark:|||63ms|
-|packages/jest-worker/src/__tests__/process-integration.test.js|5:white_check_mark:|||62ms|
-|packages/jest-worker/src/__tests__/thread-integration.test.js|6:white_check_mark:|||114ms|
-|packages/jest-worker/src/__tests__/WorkerPool.test.js|3:white_check_mark:|||51ms|
-|packages/jest-worker/src/base/__tests__/BaseWorkerPool.test.js|11:white_check_mark:|||653ms|
-|packages/jest-worker/src/workers/__tests__/ChildProcessWorker.test.js|17:white_check_mark:|||184ms|
-|packages/jest-worker/src/workers/__tests__/NodeThreadsWorker.test.js|15:white_check_mark:|||258ms|
-|packages/jest-worker/src/workers/__tests__/processChild.test.js|10:white_check_mark:|||135ms|
-|packages/jest-worker/src/workers/__tests__/threadChild.test.js|10:white_check_mark:|||120ms|
-|packages/pretty-format/src/__tests__/AsymmetricMatcher.test.ts|38:white_check_mark:|||137ms|
-|packages/pretty-format/src/__tests__/ConvertAnsi.test.ts|6:white_check_mark:|||43ms|
-|packages/pretty-format/src/__tests__/DOMCollection.test.ts|10:white_check_mark:|||64ms|
-|packages/pretty-format/src/__tests__/DOMElement.test.ts|28:white_check_mark:|||148ms|
-|packages/pretty-format/src/__tests__/Immutable.test.ts|111:white_check_mark:|||443ms|
-|packages/pretty-format/src/__tests__/prettyFormat.test.ts|86:white_check_mark:|||219ms|
-|packages/pretty-format/src/__tests__/react.test.tsx|55:white_check_mark:|||325ms|
-|packages/pretty-format/src/__tests__/ReactElement.test.ts|3:white_check_mark:|||64ms|
-### :x: e2e/__tests__/jestChangedFiles.test.ts
+|e2e/__tests__/asyncAndCallback.test.ts|1 ✅|||746ms|
+|e2e/__tests__/asyncRegenerator.test.ts|1 ✅|||4s|
+|e2e/__tests__/autoClearMocks.test.ts|2 ✅|||2s|
+|e2e/__tests__/autoResetMocks.test.ts|2 ✅|||2s|
+|e2e/__tests__/autoRestoreMocks.test.ts|2 ✅|||2s|
+|e2e/__tests__/babelPluginJestHoist.test.ts|1 ✅|||6s|
+|e2e/__tests__/badSourceMap.test.ts|1 ✅|||858ms|
+|e2e/__tests__/beforeAllFiltered.ts|1 ✅|||958ms|
+|e2e/__tests__/beforeEachQueue.ts|1 ✅||1 ⚪|55ms|
+|e2e/__tests__/callDoneTwice.test.ts|1 ✅|||882ms|
+|e2e/__tests__/chaiAssertionLibrary.ts|1 ✅|||2s|
+|e2e/__tests__/circularInequality.test.ts|1 ✅|||1s|
+|e2e/__tests__/circusConcurrentEach.test.ts|2 ✅|||2s|
+|e2e/__tests__/circusDeclarationErrors.test.ts|1 ✅|||869ms|
+|e2e/__tests__/clearCache.test.ts|2 ✅|||1s|
+|e2e/__tests__/cliHandlesExactFilenames.test.ts|2 ✅|||1s|
+|e2e/__tests__/compareDomNodes.test.ts|1 ✅|||1s|
+|e2e/__tests__/config.test.ts|6 ✅|||4s|
+|e2e/__tests__/console.test.ts|7 ✅|||8s|
+|e2e/__tests__/consoleAfterTeardown.test.ts|1 ✅|||1s|
+|e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts|1 ✅|||793ms|
+|e2e/__tests__/coverageHandlebars.test.ts|1 ✅|||2s|
+|e2e/__tests__/coverageRemapping.test.ts|1 ✅|||13s|
+|e2e/__tests__/coverageReport.test.ts|12 ✅|||22s|
+|e2e/__tests__/coverageThreshold.test.ts|5 ✅|||5s|
+|e2e/__tests__/coverageTransformInstrumented.test.ts|1 ✅|||5s|
+|e2e/__tests__/coverageWithoutTransform.test.ts|1 ✅|||1s|
+|e2e/__tests__/createProcessObject.test.ts|1 ✅|||908ms|
+|e2e/__tests__/customInlineSnapshotMatchers.test.ts|1 ✅|||2s|
+|e2e/__tests__/customMatcherStackTrace.test.ts|2 ✅|||2s|
+|e2e/__tests__/customReporters.test.ts|9 ✅|||7s|
+|e2e/__tests__/customResolver.test.ts|1 ✅|||826ms|
+|e2e/__tests__/customTestSequencers.test.ts|3 ✅|||3s|
+|e2e/__tests__/debug.test.ts|1 ✅|||899ms|
+|e2e/__tests__/declarationErrors.test.ts|3 ✅|||2s|
+|e2e/__tests__/dependencyClash.test.ts|1 ✅|||833ms|
+|e2e/__tests__/detectOpenHandles.ts|8 ✅|||8s|
+|e2e/__tests__/domDiffing.test.ts|1 ✅|||1s|
+|e2e/__tests__/doneInHooks.test.ts|1 ✅|||855ms|
+|e2e/__tests__/dynamicRequireDependencies.ts|1 ✅|||847ms|
+|e2e/__tests__/each.test.ts|7 ✅|||5s|
+|e2e/__tests__/emptyDescribeWithHooks.test.ts|4 ✅|||3s|
+|e2e/__tests__/emptySuiteError.test.ts|1 ✅|||885ms|
+|e2e/__tests__/env.test.ts|6 ✅|||5s|
+|e2e/__tests__/environmentAfterTeardown.test.ts|1 ✅|||892ms|
+|e2e/__tests__/errorOnDeprecated.test.ts|1 ✅||24 ⚪|56ms|
+|e2e/__tests__/esmConfigFile.test.ts|3 ✅|||526ms|
+|e2e/__tests__/executeTestsOnceInMpr.ts|1 ✅|||976ms|
+|e2e/__tests__/existentRoots.test.ts|4 ✅|||627ms|
+|e2e/__tests__/expectAsyncMatcher.test.ts|2 ✅|||3s|
+|e2e/__tests__/expectInVm.test.ts|1 ✅|||2s|
+|e2e/__tests__/extraGlobals.test.ts|1 ✅|||1s|
+|e2e/__tests__/failureDetailsProperty.test.ts|1 ✅|||907ms|
+|e2e/__tests__/failures.test.ts|7 ✅|||10s|
+|e2e/__tests__/fakePromises.test.ts|2 ✅|||2s|
+|e2e/__tests__/fatalWorkerError.test.ts|1 ✅|||3s|
+|e2e/__tests__/filter.test.ts|7 ✅|||5s|
+|e2e/__tests__/findRelatedFiles.test.ts|5 ✅|||6s|
+|e2e/__tests__/focusedTests.test.ts|1 ✅|||888ms|
+|e2e/__tests__/forceExit.test.ts|1 ✅|||2s|
+|e2e/__tests__/generatorMock.test.ts|1 ✅|||1s|
+|e2e/__tests__/global-mutation.test.ts|1 ✅|||40ms|
+|e2e/__tests__/global.test.ts|1 ✅|||31ms|
+|e2e/__tests__/globals.test.ts|10 ✅|||8s|
+|e2e/__tests__/globalSetup.test.ts|10 ✅|||14s|
+|e2e/__tests__/globalTeardown.test.ts|7 ✅|||12s|
+|e2e/__tests__/hasteMapMockChanged.test.ts|1 ✅|||379ms|
+|e2e/__tests__/hasteMapSha1.test.ts|1 ✅|||298ms|
+|e2e/__tests__/hasteMapSize.test.ts|2 ✅|||397ms|
+|e2e/__tests__/importedGlobals.test.ts|1 ✅|||1s|
+|e2e/__tests__/injectGlobals.test.ts|2 ✅|||2s|
+|e2e/__tests__/jasmineAsync.test.ts|15 ✅|||28s|
+|e2e/__tests__/jasmineAsyncWithPendingDuringTest.ts|1 ✅||1 ⚪|72ms|
+|e2e/__tests__/jest.config.js.test.ts|3 ✅|||2s|
+|e2e/__tests__/jest.config.ts.test.ts|5 ✅|||14s|
+|[e2e/__tests__/jestChangedFiles.test.ts](#r0s75)|9 ✅|1 ❌||9s|
+|e2e/__tests__/jestEnvironmentJsdom.test.ts|1 ✅|||2s|
+|e2e/__tests__/jestRequireActual.test.ts|1 ✅|||2s|
+|e2e/__tests__/jestRequireMock.test.ts|1 ✅|||2s|
+|e2e/__tests__/json.test.ts|2 ✅|||29ms|
+|e2e/__tests__/jsonReporter.test.ts|2 ✅|||2s|
+|e2e/__tests__/lifecycles.ts|1 ✅|||861ms|
+|e2e/__tests__/listTests.test.ts|2 ✅|||945ms|
+|e2e/__tests__/locationInResults.test.ts|2 ✅|||2s|
+|e2e/__tests__/logHeapUsage.test.ts|1 ✅|||884ms|
+|e2e/__tests__/mockNames.test.ts|8 ✅|||7s|
+|e2e/__tests__/modernFakeTimers.test.ts|2 ✅|||2s|
+|e2e/__tests__/moduleNameMapper.test.ts|5 ✅|||5s|
+|e2e/__tests__/moduleParentNullInTest.ts|1 ✅|||886ms|
+|e2e/__tests__/multiProjectRunner.test.ts|14 ✅|||16s|
+|e2e/__tests__/nativeAsyncMock.test.ts|1 ✅|||55ms|
+|e2e/__tests__/nativeEsm.test.ts|2 ✅||1 ⚪|905ms|
+|e2e/__tests__/nativeEsmTypescript.test.ts|1 ✅|||956ms|
+|e2e/__tests__/nestedEventLoop.test.ts|1 ✅|||1s|
+|e2e/__tests__/nestedTestDefinitions.test.ts|4 ✅|||5s|
+|e2e/__tests__/nodePath.test.ts|1 ✅|||866ms|
+|e2e/__tests__/noTestFound.test.ts|2 ✅|||1s|
+|e2e/__tests__/noTestsFound.test.ts|5 ✅|||3s|
+|[e2e/__tests__/onlyChanged.test.ts](#r0s98)|8 ✅|1 ❌||22s|
+|e2e/__tests__/onlyFailuresNonWatch.test.ts|1 ✅|||3s|
+|e2e/__tests__/overrideGlobals.test.ts|2 ✅|||2s|
+|e2e/__tests__/pnp.test.ts|1 ✅|||3s|
+|e2e/__tests__/presets.test.ts|2 ✅|||2s|
+|e2e/__tests__/processExit.test.ts|1 ✅|||1s|
+|e2e/__tests__/promiseReject.test.ts|1 ✅|||967ms|
+|e2e/__tests__/regexCharInPath.test.ts|1 ✅|||962ms|
+|e2e/__tests__/requireAfterTeardown.test.ts|1 ✅|||921ms|
+|e2e/__tests__/requireMain.test.ts|1 ✅|||1s|
+|e2e/__tests__/requireMainAfterCreateRequire.test.ts|1 ✅|||966ms|
+|e2e/__tests__/requireMainIsolateModules.test.ts|1 ✅|||976ms|
+|e2e/__tests__/requireMainResetModules.test.ts|2 ✅|||2s|
+|e2e/__tests__/requireV8Module.test.ts|1 ✅|||30ms|
+|e2e/__tests__/resetModules.test.ts|1 ✅|||926ms|
+|e2e/__tests__/resolve.test.ts|1 ✅|||2s|
+|e2e/__tests__/resolveGetPaths.test.ts|1 ✅|||1s|
+|e2e/__tests__/resolveNodeModule.test.ts|1 ✅|||943ms|
+|e2e/__tests__/resolveNoFileExtensions.test.ts|2 ✅|||1s|
+|e2e/__tests__/resolveWithPaths.test.ts|1 ✅|||1s|
+|e2e/__tests__/runProgrammatically.test.ts|2 ✅|||575ms|
+|e2e/__tests__/runTestsByPath.test.ts|1 ✅|||2s|
+|e2e/__tests__/runtimeInternalModuleRegistry.test.ts|1 ✅|||1s|
+|e2e/__tests__/selectProjects.test.ts|18 ✅|||5s|
+|e2e/__tests__/setImmediate.test.ts|1 ✅|||904ms|
+|e2e/__tests__/setupFilesAfterEnvConfig.test.ts|2 ✅|||2s|
+|e2e/__tests__/showConfig.test.ts|1 ✅|||195ms|
+|e2e/__tests__/skipBeforeAfterAll.test.ts|1 ✅|||1s|
+|e2e/__tests__/snapshot-unknown.test.ts|1 ✅|||838ms|
+|e2e/__tests__/snapshot.test.ts|9 ✅|||14s|
+|e2e/__tests__/snapshotMockFs.test.ts|1 ✅|||883ms|
+|e2e/__tests__/snapshotResolver.test.ts|1 ✅|||823ms|
+|e2e/__tests__/snapshotSerializers.test.ts|2 ✅|||2s|
+|e2e/__tests__/stackTrace.test.ts|7 ✅|||5s|
+|e2e/__tests__/stackTraceNoCaptureStackTrace.test.ts|1 ✅|||899ms|
+|e2e/__tests__/stackTraceSourceMaps.test.ts|1 ✅|||2s|
+|e2e/__tests__/stackTraceSourceMapsWithCoverage.test.ts|1 ✅|||2s|
+|e2e/__tests__/supportsDashedArgs.ts|2 ✅|||968ms|
+|e2e/__tests__/symbol.test.ts|1 ✅|||49ms|
+|e2e/__tests__/testEnvironment.test.ts|1 ✅|||2s|
+|e2e/__tests__/testEnvironmentAsync.test.ts|1 ✅|||1s|
+|e2e/__tests__/testEnvironmentCircus.test.ts|1 ✅|||2s|
+|e2e/__tests__/testEnvironmentCircusAsync.test.ts|1 ✅|||2s|
+|e2e/__tests__/testFailureExitCode.test.ts|2 ✅|||4s|
+|e2e/__tests__/testInRoot.test.ts|1 ✅|||1s|
+|e2e/__tests__/testNamePattern.test.ts|1 ✅|||859ms|
+|e2e/__tests__/testNamePatternSkipped.test.ts|1 ✅|||991ms|
+|e2e/__tests__/testPathPatternReporterMessage.test.ts|1 ✅|||3s|
+|e2e/__tests__/testResultsProcessor.test.ts|1 ✅|||910ms|
+|e2e/__tests__/testRetries.test.ts|4 ✅|||3s|
+|e2e/__tests__/testTodo.test.ts|5 ✅|||4s|
+|e2e/__tests__/timeouts.test.ts|4 ✅|||4s|
+|e2e/__tests__/timeoutsLegacy.test.ts|1 ✅||3 ⚪|71ms|
+|e2e/__tests__/timerResetMocks.test.ts|2 ✅|||2s|
+|e2e/__tests__/timerUseRealTimers.test.ts|1 ✅|||1s|
+|e2e/__tests__/toMatchInlineSnapshot.test.ts|12 ✅|||24s|
+|e2e/__tests__/toMatchInlineSnapshotWithRetries.test.ts|3 ✅|||5s|
+|e2e/__tests__/toMatchSnapshot.test.ts|9 ✅|||17s|
+|e2e/__tests__/toMatchSnapshotWithRetries.test.ts|2 ✅|||4s|
+|e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts|3 ✅|||4s|
+|e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts|4 ✅|||4s|
+|e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts|5 ✅|||4s|
+|e2e/__tests__/transform.test.ts|16 ✅|||27s|
+|e2e/__tests__/transformLinkedModules.test.ts|1 ✅|||783ms|
+|e2e/__tests__/typescriptCoverage.test.ts|1 ✅|||3s|
+|e2e/__tests__/unexpectedToken.test.ts|3 ✅|||3s|
+|e2e/__tests__/useStderr.test.ts|1 ✅|||1s|
+|e2e/__tests__/v8Coverage.test.ts|2 ✅|||2s|
+|e2e/__tests__/verbose.test.ts|1 ✅|||683ms|
+|e2e/__tests__/version.test.ts|1 ✅|||138ms|
+|e2e/__tests__/watchModeNoAccess.test.ts|1 ✅|||4s|
+|e2e/__tests__/watchModeOnlyFailed.test.ts|1 ✅|||1s|
+|e2e/__tests__/watchModePatterns.test.ts|2 ✅|||4s|
+|e2e/__tests__/watchModeUpdateSnapshot.test.ts|1 ✅|||1s|
+|e2e/__tests__/workerForceExit.test.ts|2 ✅|||5s|
+|e2e/__tests__/wrongEnv.test.ts|5 ✅|||4s|
+|e2e/custom-test-sequencer/a.test.js|1 ✅|||29ms|
+|e2e/custom-test-sequencer/b.test.js|1 ✅|||21ms|
+|e2e/custom-test-sequencer/c.test.js|1 ✅|||42ms|
+|e2e/custom-test-sequencer/d.test.js|1 ✅|||21ms|
+|e2e/custom-test-sequencer/e.test.js|1 ✅|||27ms|
+|e2e/test-in-root/spec.js|1 ✅|||19ms|
+|e2e/test-in-root/test.js|1 ✅|||37ms|
+|e2e/timer-reset-mocks/after-reset-all-mocks/timerAndMock.test.js|2 ✅|||30ms|
+|e2e/timer-reset-mocks/with-reset-mocks/timerWithMock.test.js|1 ✅|||34ms|
+|e2e/v8-coverage/empty-sourcemap/test.ts|1 ✅|||31ms|
+|examples/angular/app.component.spec.ts|3 ✅|||654ms|
+|examples/angular/shared/data.service.spec.ts|2 ✅|||431ms|
+|examples/angular/shared/sub.service.spec.ts|1 ✅|||109ms|
+|examples/async/__tests__/user.test.js|8 ✅|||96ms|
+|examples/automatic-mocks/__tests__/automock.test.js|2 ✅|||74ms|
+|examples/automatic-mocks/__tests__/createMockFromModule.test.js|2 ✅|||115ms|
+|examples/automatic-mocks/__tests__/disableAutomocking.test.js|1 ✅|||24ms|
+|examples/enzyme/__tests__/CheckboxWithLabel-test.js|1 ✅|||434ms|
+|examples/getting-started/sum.test.js|1 ✅|||78ms|
+|examples/jquery/__tests__/display_user.test.js|1 ✅|||196ms|
+|examples/jquery/__tests__/fetch_current_user.test.js|2 ✅|||196ms|
+|examples/manual-mocks/__tests__/file_summarizer.test.js|1 ✅|||87ms|
+|examples/manual-mocks/__tests__/lodashMocking.test.js|1 ✅|||109ms|
+|examples/manual-mocks/__tests__/user.test.js|1 ✅|||41ms|
+|examples/manual-mocks/__tests__/userMocked.test.js|1 ✅|||105ms|
+|examples/module-mock/__tests__/full_mock.js|1 ✅|||60ms|
+|examples/module-mock/__tests__/mock_per_test.js|2 ✅|||116ms|
+|examples/module-mock/__tests__/partial_mock.js|1 ✅|||215ms|
+|examples/mongodb/__test__/db.test.js|1 ✅|||236ms|
+|examples/react-native/__tests__/intro.test.js|4 ✅|||9s|
+|examples/react-testing-library/__tests__/CheckboxWithLabel-test.js|1 ✅|||469ms|
+|examples/react/__tests__/CheckboxWithLabel-test.js|1 ✅|||256ms|
+|examples/snapshot/__tests__/clock.react.test.js|1 ✅|||62ms|
+|examples/snapshot/__tests__/link.react.test.js|4 ✅|||181ms|
+|examples/timer/__tests__/infinite_timer_game.test.js|1 ✅|||94ms|
+|examples/timer/__tests__/timer_game.test.js|3 ✅|||74ms|
+|examples/typescript/__tests__/calc.test.ts|6 ✅|||276ms|
+|examples/typescript/__tests__/CheckboxWithLabel-test.tsx|1 ✅|||227ms|
+|examples/typescript/__tests__/sub-test.ts|1 ✅|||43ms|
+|examples/typescript/__tests__/sum-test.ts|2 ✅|||69ms|
+|examples/typescript/__tests__/sum.test.js|2 ✅|||100ms|
+|packages/babel-jest/src/__tests__/index.ts|6 ✅|||371ms|
+|packages/babel-plugin-jest-hoist/src/__tests__/hoistPlugin.test.ts|4 ✅|||347ms|
+|packages/diff-sequences/src/__tests__/index.property.test.ts|7 ✅|||357ms|
+|packages/diff-sequences/src/__tests__/index.test.ts|48 ✅|||195ms|
+|packages/expect/src/__tests__/assertionCounts.test.ts|6 ✅|||60ms|
+|packages/expect/src/__tests__/asymmetricMatchers.test.ts|38 ✅|||207ms|
+|packages/expect/src/__tests__/extend.test.ts|10 ✅|||99ms|
+|packages/expect/src/__tests__/isError.test.ts|4 ✅|||43ms|
+|packages/expect/src/__tests__/matchers-toContain.property.test.ts|2 ✅|||236ms|
+|packages/expect/src/__tests__/matchers-toContainEqual.property.test.ts|2 ✅|||287ms|
+|packages/expect/src/__tests__/matchers-toEqual.property.test.ts|2 ✅|||1s|
+|packages/expect/src/__tests__/matchers-toStrictEqual.property.test.ts|3 ✅|||394ms|
+|packages/expect/src/__tests__/matchers.test.js|592 ✅|||862ms|
+|packages/expect/src/__tests__/spyMatchers.test.ts|248 ✅|||395ms|
+|packages/expect/src/__tests__/stacktrace.test.ts|3 ✅|||69ms|
+|packages/expect/src/__tests__/symbolInObjects.test.ts|3 ✅|||33ms|
+|packages/expect/src/__tests__/toEqual-dom.test.ts|12 ✅|||99ms|
+|packages/expect/src/__tests__/toThrowMatchers.test.ts|98 ✅|||257ms|
+|packages/expect/src/__tests__/utils.test.ts|41 ✅|||147ms|
+|packages/jest-circus/src/__tests__/afterAll.test.ts|6 ✅|||6s|
+|packages/jest-circus/src/__tests__/baseTest.test.ts|2 ✅|||3s|
+|packages/jest-circus/src/__tests__/circusItTestError.test.ts|8 ✅|||300ms|
+|packages/jest-circus/src/__tests__/circusItTodoTestError.test.ts|3 ✅|||81ms|
+|packages/jest-circus/src/__tests__/hooks.test.ts|3 ✅|||4s|
+|packages/jest-circus/src/__tests__/hooksError.test.ts|32 ✅|||127ms|
+|packages/jest-cli/src/__tests__/cli/args.test.ts|17 ✅|||345ms|
+|packages/jest-cli/src/init/__tests__/init.test.js|24 ✅|||119ms|
+|packages/jest-cli/src/init/__tests__/modifyPackageJson.test.ts|4 ✅|||30ms|
+|packages/jest-config/src/__tests__/Defaults.test.ts|1 ✅|||672ms|
+|packages/jest-config/src/__tests__/getMaxWorkers.test.ts|7 ✅|||67ms|
+|packages/jest-config/src/__tests__/normalize.test.js|118 ✅|||798ms|
+|packages/jest-config/src/__tests__/readConfig.test.ts|1 ✅|||76ms|
+|packages/jest-config/src/__tests__/readConfigs.test.ts|3 ✅|||135ms|
+|packages/jest-config/src/__tests__/resolveConfigPath.test.ts|10 ✅|||183ms|
+|packages/jest-config/src/__tests__/setFromArgv.test.ts|4 ✅|||53ms|
+|packages/jest-config/src/__tests__/validatePattern.test.ts|4 ✅|||52ms|
+|packages/jest-console/src/__tests__/bufferedConsole.test.ts|20 ✅|||171ms|
+|packages/jest-console/src/__tests__/CustomConsole.test.ts|23 ✅|||115ms|
+|packages/jest-console/src/__tests__/getConsoleOutput.test.ts|12 ✅|||56ms|
+|packages/jest-core/src/__tests__/FailedTestsCache.test.js|1 ✅|||25ms|
+|packages/jest-core/src/__tests__/getNoTestsFoundMessage.test.js|5 ✅|||61ms|
+|packages/jest-core/src/__tests__/globals.test.ts|1 ✅|||22ms|
+|packages/jest-core/src/__tests__/runJest.test.js|2 ✅|||261ms|
+|packages/jest-core/src/__tests__/SearchSource.test.ts|27 ✅|||3s|
+|packages/jest-core/src/__tests__/SnapshotInteractiveMode.test.js|13 ✅|||89ms|
+|packages/jest-core/src/__tests__/TestScheduler.test.js|8 ✅|||520ms|
+|packages/jest-core/src/__tests__/testSchedulerHelper.test.js|12 ✅|||48ms|
+|packages/jest-core/src/__tests__/watch.test.js|80 ✅|||7s|
+|packages/jest-core/src/__tests__/watchFileChanges.test.ts|1 ✅|||2s|
+|packages/jest-core/src/__tests__/watchFilenamePatternMode.test.js|2 ✅|||165ms|
+|packages/jest-core/src/__tests__/watchTestNamePatternMode.test.js|1 ✅|||246ms|
+|packages/jest-core/src/lib/__tests__/isValidPath.test.ts|3 ✅|||166ms|
+|packages/jest-core/src/lib/__tests__/logDebugMessages.test.ts|3 ✅|||48ms|
+|packages/jest-create-cache-key-function/src/__tests__/index.test.ts|1 ✅|||75ms|
+|packages/jest-diff/src/__tests__/diff.test.ts|107 ✅|||625ms|
+|packages/jest-diff/src/__tests__/diffStringsRaw.test.ts|2 ✅|||55ms|
+|packages/jest-diff/src/__tests__/getAlignedDiffs.test.ts|24 ✅|||72ms|
+|packages/jest-diff/src/__tests__/joinAlignedDiffs.test.ts|6 ✅|||44ms|
+|packages/jest-docblock/src/__tests__/index.test.ts|36 ✅|||177ms|
+|packages/jest-each/src/__tests__/array.test.ts|159 ✅|||192ms|
+|packages/jest-each/src/__tests__/index.test.ts|10 ✅|||44ms|
+|packages/jest-each/src/__tests__/template.test.ts|242 ✅|||483ms|
+|packages/jest-environment-jsdom/src/__tests__/jsdom_environment.test.ts|2 ✅|||783ms|
+|packages/jest-environment-node/src/__tests__/node_environment.test.ts|6 ✅|||184ms|
+|packages/jest-fake-timers/src/__tests__/legacyFakeTimers.test.ts|50 ✅|||302ms|
+|packages/jest-fake-timers/src/__tests__/modernFakeTimers.test.ts|40 ✅|||317ms|
+|packages/jest-get-type/src/__tests__/getType.test.ts|14 ✅|||45ms|
+|packages/jest-get-type/src/__tests__/isPrimitive.test.ts|18 ✅|||36ms|
+|packages/jest-globals/src/__tests__/index.ts|1 ✅|||533ms|
+|packages/jest-haste-map/src/__tests__/get_mock_name.test.js|1 ✅|||22ms|
+|packages/jest-haste-map/src/__tests__/includes_dotfiles.test.ts|1 ✅|||337ms|
+|packages/jest-haste-map/src/__tests__/index.test.js|44 ✅|||1s|
+|packages/jest-haste-map/src/__tests__/worker.test.js|7 ✅|||100ms|
+|packages/jest-haste-map/src/crawlers/__tests__/node.test.js|10 ✅|||170ms|
+|packages/jest-haste-map/src/crawlers/__tests__/watchman.test.js|8 ✅|||153ms|
+|packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js|15 ✅|||56ms|
+|packages/jest-haste-map/src/lib/__tests__/fast_path.test.js|5 ✅|||29ms|
+|packages/jest-haste-map/src/lib/__tests__/getPlatformExtension.test.js|1 ✅|||35ms|
+|packages/jest-haste-map/src/lib/__tests__/isRegExpSupported.test.js|2 ✅|||31ms|
+|packages/jest-haste-map/src/lib/__tests__/normalizePathSep.test.js|2 ✅|||35ms|
+|packages/jest-jasmine2/src/__tests__/concurrent.test.ts|3 ✅|||24ms|
+|packages/jest-jasmine2/src/__tests__/expectationResultFactory.test.ts|7 ✅|||70ms|
+|packages/jest-jasmine2/src/__tests__/hooksError.test.ts|32 ✅|||51ms|
+|packages/jest-jasmine2/src/__tests__/iterators.test.ts|4 ✅|||43ms|
+|packages/jest-jasmine2/src/__tests__/itTestError.test.ts|6 ✅|||32ms|
+|packages/jest-jasmine2/src/__tests__/itToTestAlias.test.ts|1 ✅|||23ms|
+|packages/jest-jasmine2/src/__tests__/pTimeout.test.ts|3 ✅|||44ms|
+|packages/jest-jasmine2/src/__tests__/queueRunner.test.ts|6 ✅|||93ms|
+|packages/jest-jasmine2/src/__tests__/reporter.test.ts|1 ✅|||107ms|
+|packages/jest-jasmine2/src/__tests__/Suite.test.ts|1 ✅|||84ms|
+|packages/jest-jasmine2/src/__tests__/todoError.test.ts|3 ✅|||27ms|
+|packages/jest-leak-detector/src/__tests__/index.test.ts|6 ✅|||986ms|
+|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceable.test.ts|11 ✅|||49ms|
+|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceableDom.test.ts|2 ✅|||48ms|
+|packages/jest-matcher-utils/src/__tests__/index.test.ts|48 ✅|||391ms|
+|packages/jest-matcher-utils/src/__tests__/printDiffOrStringify.test.ts|21 ✅|||114ms|
+|packages/jest-matcher-utils/src/__tests__/Replaceable.test.ts|17 ✅|||111ms|
+|packages/jest-message-util/src/__tests__/messages.test.ts|11 ✅|||205ms|
+|packages/jest-mock/src/__tests__/index.test.ts|84 ✅|||509ms|
+|packages/jest-regex-util/src/__tests__/index.test.ts|8 ✅|||56ms|
+|packages/jest-repl/src/__tests__/jest_repl.test.js|1 ✅|||1s|
+|packages/jest-repl/src/__tests__/runtime_cli.test.js|4 ✅|||4s|
+|packages/jest-reporters/src/__tests__/CoverageReporter.test.js|12 ✅|||397ms|
+|packages/jest-reporters/src/__tests__/CoverageWorker.test.js|2 ✅|||199ms|
+|packages/jest-reporters/src/__tests__/DefaultReporter.test.js|2 ✅|||148ms|
+|packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js|3 ✅|||1s|
+|packages/jest-reporters/src/__tests__/getResultHeader.test.js|4 ✅|||30ms|
+|packages/jest-reporters/src/__tests__/getSnapshotStatus.test.js|3 ✅|||28ms|
+|packages/jest-reporters/src/__tests__/getSnapshotSummary.test.js|4 ✅|||49ms|
+|packages/jest-reporters/src/__tests__/getWatermarks.test.ts|2 ✅|||37ms|
+|packages/jest-reporters/src/__tests__/NotifyReporter.test.ts|18 ✅|||166ms|
+|packages/jest-reporters/src/__tests__/SummaryReporter.test.js|4 ✅|||366ms|
+|packages/jest-reporters/src/__tests__/utils.test.ts|10 ✅|||85ms|
+|packages/jest-reporters/src/__tests__/VerboseReporter.test.js|11 ✅|||425ms|
+|packages/jest-resolve-dependencies/src/__tests__/dependency_resolver.test.ts|11 ✅|||666ms|
+|packages/jest-resolve/src/__tests__/isBuiltinModule.test.ts|4 ✅|||36ms|
+|packages/jest-resolve/src/__tests__/resolve.test.ts|16 ✅|||1s|
+|packages/jest-runner/src/__tests__/testRunner.test.ts|2 ✅|||905ms|
+|packages/jest-runtime/src/__tests__/instrumentation.test.ts|1 ✅|||275ms|
+|packages/jest-runtime/src/__tests__/runtime_create_mock_from_module.test.js|3 ✅|||606ms|
+|packages/jest-runtime/src/__tests__/runtime_environment.test.js|2 ✅|||497ms|
+|packages/jest-runtime/src/__tests__/runtime_internal_module.test.js|4 ✅|||727ms|
+|packages/jest-runtime/src/__tests__/runtime_jest_fn.js|4 ✅|||479ms|
+|packages/jest-runtime/src/__tests__/runtime_jest_spy_on.test.js|2 ✅|||521ms|
+|packages/jest-runtime/src/__tests__/runtime_mock.test.js|4 ✅|||743ms|
+|packages/jest-runtime/src/__tests__/runtime_module_directories.test.js|4 ✅|||525ms|
+|packages/jest-runtime/src/__tests__/runtime_node_path.test.js|4 ✅|||1s|
+|packages/jest-runtime/src/__tests__/runtime_require_actual.test.js|2 ✅|||478ms|
+|packages/jest-runtime/src/__tests__/runtime_require_cache.test.js|2 ✅|||454ms|
+|packages/jest-runtime/src/__tests__/runtime_require_mock.test.js|13 ✅|||962ms|
+|packages/jest-runtime/src/__tests__/runtime_require_module_no_ext.test.js|1 ✅|||261ms|
+|packages/jest-runtime/src/__tests__/runtime_require_module_or_mock_transitive_deps.test.js|6 ✅|||2s|
+|packages/jest-runtime/src/__tests__/runtime_require_module_or_mock.test.js|17 ✅|||1s|
+|packages/jest-runtime/src/__tests__/runtime_require_module.test.js|27 ✅|||2s|
+|packages/jest-runtime/src/__tests__/runtime_require_resolve.test.ts|5 ✅|||707ms|
+|packages/jest-runtime/src/__tests__/runtime_wrap.js|2 ✅|||263ms|
+|packages/jest-runtime/src/__tests__/Runtime-sourceMaps.test.js|1 ✅|||584ms|
+|packages/jest-runtime/src/__tests__/Runtime-statics.test.js|2 ✅|||162ms|
+|packages/jest-serializer/src/__tests__/index.test.ts|17 ✅|||158ms|
+|packages/jest-snapshot/src/__tests__/dedentLines.test.ts|17 ✅|||94ms|
+|packages/jest-snapshot/src/__tests__/InlineSnapshots.test.ts|22 ✅|||1s|
+|packages/jest-snapshot/src/__tests__/matcher.test.ts|1 ✅|||131ms|
+|packages/jest-snapshot/src/__tests__/mockSerializer.test.ts|10 ✅|||45ms|
+|packages/jest-snapshot/src/__tests__/printSnapshot.test.ts|71 ✅|||1s|
+|packages/jest-snapshot/src/__tests__/SnapshotResolver.test.ts|10 ✅|||98ms|
+|packages/jest-snapshot/src/__tests__/throwMatcher.test.ts|3 ✅|||481ms|
+|packages/jest-snapshot/src/__tests__/utils.test.ts|26 ✅|||214ms|
+|packages/jest-source-map/src/__tests__/getCallsite.test.ts|3 ✅|||86ms|
+|packages/jest-test-result/src/__tests__/formatTestResults.test.ts|1 ✅|||53ms|
+|packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js|8 ✅|||251ms|
+|packages/jest-transform/src/__tests__/ScriptTransformer.test.ts|22 ✅|||2s|
+|packages/jest-transform/src/__tests__/shouldInstrument.test.ts|25 ✅|||155ms|
+|packages/jest-util/src/__tests__/createProcessObject.test.ts|4 ✅|||81ms|
+|packages/jest-util/src/__tests__/deepCyclicCopy.test.ts|12 ✅|||86ms|
+|packages/jest-util/src/__tests__/errorWithStack.test.ts|1 ✅|||41ms|
+|packages/jest-util/src/__tests__/formatTime.test.ts|11 ✅|||82ms|
+|packages/jest-util/src/__tests__/globsToMatcher.test.ts|4 ✅|||56ms|
+|packages/jest-util/src/__tests__/installCommonGlobals.test.ts|2 ✅|||68ms|
+|packages/jest-util/src/__tests__/isInteractive.test.ts|2 ✅|||35ms|
+|packages/jest-util/src/__tests__/isPromise.test.ts|10 ✅|||30ms|
+|packages/jest-validate/src/__tests__/validate.test.ts|23 ✅|||283ms|
+|packages/jest-validate/src/__tests__/validateCLIOptions.test.js|6 ✅|||83ms|
+|packages/jest-watcher/src/lib/__tests__/formatTestNameByPattern.test.ts|11 ✅|||129ms|
+|packages/jest-watcher/src/lib/__tests__/prompt.test.ts|3 ✅|||91ms|
+|packages/jest-watcher/src/lib/__tests__/scroll.test.ts|5 ✅|||57ms|
+|packages/jest-worker/src/__tests__/Farm.test.js|10 ✅|||158ms|
+|packages/jest-worker/src/__tests__/FifoQueue.test.js|3 ✅|||48ms|
+|packages/jest-worker/src/__tests__/index.test.js|8 ✅|||230ms|
+|packages/jest-worker/src/__tests__/PriorityQueue.test.js|5 ✅|||63ms|
+|packages/jest-worker/src/__tests__/process-integration.test.js|5 ✅|||62ms|
+|packages/jest-worker/src/__tests__/thread-integration.test.js|6 ✅|||114ms|
+|packages/jest-worker/src/__tests__/WorkerPool.test.js|3 ✅|||51ms|
+|packages/jest-worker/src/base/__tests__/BaseWorkerPool.test.js|11 ✅|||653ms|
+|packages/jest-worker/src/workers/__tests__/ChildProcessWorker.test.js|17 ✅|||184ms|
+|packages/jest-worker/src/workers/__tests__/NodeThreadsWorker.test.js|15 ✅|||258ms|
+|packages/jest-worker/src/workers/__tests__/processChild.test.js|10 ✅|||135ms|
+|packages/jest-worker/src/workers/__tests__/threadChild.test.js|10 ✅|||120ms|
+|packages/pretty-format/src/__tests__/AsymmetricMatcher.test.ts|38 ✅|||137ms|
+|packages/pretty-format/src/__tests__/ConvertAnsi.test.ts|6 ✅|||43ms|
+|packages/pretty-format/src/__tests__/DOMCollection.test.ts|10 ✅|||64ms|
+|packages/pretty-format/src/__tests__/DOMElement.test.ts|28 ✅|||148ms|
+|packages/pretty-format/src/__tests__/Immutable.test.ts|111 ✅|||443ms|
+|packages/pretty-format/src/__tests__/prettyFormat.test.ts|86 ✅|||219ms|
+|packages/pretty-format/src/__tests__/react.test.tsx|55 ✅|||325ms|
+|packages/pretty-format/src/__tests__/ReactElement.test.ts|3 ✅|||64ms|
+### ❌ e2e/__tests__/jestChangedFiles.test.ts
```
-:white_check_mark: gets hg SCM roots and dedupes them
-:white_check_mark: gets git SCM roots and dedupes them
-:white_check_mark: gets mixed git and hg SCM roots and dedupes them
-:white_check_mark: gets changed files for git
-:white_check_mark: monitors only root paths for git
-:white_check_mark: does not find changes in files with no diff, for git
-:white_check_mark: handles a bad revision for "changedSince", for git
-:x: gets changed files for hg
+✅ gets hg SCM roots and dedupes them
+✅ gets git SCM roots and dedupes them
+✅ gets mixed git and hg SCM roots and dedupes them
+✅ gets changed files for git
+✅ monitors only root paths for git
+✅ does not find changes in files with no diff, for git
+✅ handles a bad revision for "changedSince", for git
+❌ gets changed files for hg
Error: abort: empty revision range
-:white_check_mark: monitors only root paths for hg
-:white_check_mark: handles a bad revision for "changedSince", for hg
+✅ monitors only root paths for hg
+✅ handles a bad revision for "changedSince", for hg
```
-### :x: e2e/__tests__/onlyChanged.test.ts
+### ❌ e2e/__tests__/onlyChanged.test.ts
```
-:white_check_mark: run for "onlyChanged" and "changedSince"
-:white_check_mark: run only changed files
-:white_check_mark: report test coverage for only changed files
-:white_check_mark: report test coverage of source on test file change under only changed files
-:white_check_mark: do not pickup non-tested files when reporting coverage on only changed files
-:white_check_mark: collect test coverage when using onlyChanged
-:white_check_mark: onlyChanged in config is overwritten by --all or testPathPattern
-:x: gets changed files for hg
+✅ run for "onlyChanged" and "changedSince"
+✅ run only changed files
+✅ report test coverage for only changed files
+✅ report test coverage of source on test file change under only changed files
+✅ do not pickup non-tested files when reporting coverage on only changed files
+✅ collect test coverage when using onlyChanged
+✅ onlyChanged in config is overwritten by --all or testPathPattern
+❌ gets changed files for hg
Error: expect(received).toMatch(expected)
-:white_check_mark: path on Windows is case-insensitive
+✅ path on Windows is case-insensitive
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/mocha-json.md b/__tests__/__outputs__/mocha-json.md
index 38cdc13..7474b54 100644
--- a/__tests__/__outputs__/mocha-json.md
+++ b/__tests__/__outputs__/mocha-json.md
@@ -1,32 +1,32 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/mocha-json.json|1:white_check_mark:|4:x:|1:warning:|12ms|
-## :x: fixtures/mocha-json.json
+|fixtures/mocha-json.json|1 ✅|4 ❌|1 ⚪|12ms|
+## ❌ fixtures/mocha-json.json
**6** tests were completed in **12ms** with **1** passed, **4** failed and **1** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[test/main.test.js](#r0s0)|1:white_check_mark:|3:x:||1ms|
-|[test/second.test.js](#r0s1)||1:x:|1:warning:|8ms|
-### :x: test/main.test.js
+|[test/main.test.js](#r0s0)|1 ✅|3 ❌||1ms|
+|[test/second.test.js](#r0s1)||1 ❌|1 ⚪|8ms|
+### ❌ test/main.test.js
```
Test 1
- :white_check_mark: Passing test
+ ✅ Passing test
Test 1 Test 1.1
- :x: Exception in target unit
+ ❌ Exception in target unit
Some error
- :x: Failing test
+ ❌ Failing test
Expected values to be strictly equal:
false !== true
Test 2
- :x: Exception in test
+ ❌ Exception in test
Some error
```
-### :x: test/second.test.js
+### ❌ test/second.test.js
```
-:warning: Skipped test
-:x: Timeout test
+⚪ Skipped test
+❌ Timeout test
Timeout of 1ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (C:\Users\Michal\Workspace\dorny\test-reporter\reports\mocha\test\second.test.js)
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/mocha-test-results.md b/__tests__/__outputs__/mocha-test-results.md
index 53ae047..4fe3802 100644
--- a/__tests__/__outputs__/mocha-test-results.md
+++ b/__tests__/__outputs__/mocha-test-results.md
@@ -3,1435 +3,1435 @@
|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/external/mocha/mocha-test-results.json|833:white_check_mark:||6:warning:|6s|
-## :white_check_mark: fixtures/external/mocha/mocha-test-results.json
+|fixtures/external/mocha/mocha-test-results.json|833 ✅||6 ⚪|6s|
+## ✅ fixtures/external/mocha/mocha-test-results.json
**839** tests were completed in **6s** with **833** passed, **0** failed and **6** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[test/node-unit/buffered-worker-pool.spec.js](#r0s0)|14:white_check_mark:|||8ms|
-|[test/node-unit/cli/config.spec.js](#r0s1)|10:white_check_mark:|||8ms|
-|[test/node-unit/cli/node-flags.spec.js](#r0s2)|105:white_check_mark:|||9ms|
-|[test/node-unit/cli/options.spec.js](#r0s3)|36:white_check_mark:|||250ms|
-|[test/node-unit/cli/run-helpers.spec.js](#r0s4)|9:white_check_mark:|||8ms|
-|[test/node-unit/cli/run.spec.js](#r0s5)|40:white_check_mark:|||4ms|
-|[test/node-unit/mocha.spec.js](#r0s6)|24:white_check_mark:|||33ms|
-|[test/node-unit/parallel-buffered-runner.spec.js](#r0s7)|19:white_check_mark:|||23ms|
-|[test/node-unit/reporters/parallel-buffered.spec.js](#r0s8)|6:white_check_mark:|||16ms|
-|[test/node-unit/serializer.spec.js](#r0s9)|40:white_check_mark:|||31ms|
-|[test/node-unit/stack-trace-filter.spec.js](#r0s10)|2:white_check_mark:||4:warning:|1ms|
-|[test/node-unit/utils.spec.js](#r0s11)|5:white_check_mark:|||1ms|
-|[test/node-unit/worker.spec.js](#r0s12)|15:white_check_mark:|||92ms|
-|[test/unit/context.spec.js](#r0s13)|8:white_check_mark:|||5ms|
-|[test/unit/duration.spec.js](#r0s14)|3:white_check_mark:|||166ms|
-|[test/unit/errors.spec.js](#r0s15)|13:white_check_mark:|||5ms|
-|[test/unit/globals.spec.js](#r0s16)|4:white_check_mark:|||0ms|
-|[test/unit/grep.spec.js](#r0s17)|8:white_check_mark:|||2ms|
-|[test/unit/hook-async.spec.js](#r0s18)|3:white_check_mark:|||1ms|
-|[test/unit/hook-sync-nested.spec.js](#r0s19)|4:white_check_mark:|||1ms|
-|[test/unit/hook-sync.spec.js](#r0s20)|3:white_check_mark:|||0ms|
-|[test/unit/hook-timeout.spec.js](#r0s21)|1:white_check_mark:|||0ms|
-|[test/unit/hook.spec.js](#r0s22)|4:white_check_mark:|||0ms|
-|[test/unit/mocha.spec.js](#r0s23)|115:white_check_mark:||1:warning:|128ms|
-|[test/unit/overspecified-async.spec.js](#r0s24)|1:white_check_mark:|||3ms|
-|[test/unit/parse-query.spec.js](#r0s25)|2:white_check_mark:|||1ms|
-|[test/unit/plugin-loader.spec.js](#r0s26)|41:white_check_mark:||1:warning:|16ms|
-|[test/unit/required-tokens.spec.js](#r0s27)|1:white_check_mark:|||0ms|
-|[test/unit/root.spec.js](#r0s28)|1:white_check_mark:|||0ms|
-|[test/unit/runnable.spec.js](#r0s29)|55:white_check_mark:|||122ms|
-|[test/unit/runner.spec.js](#r0s30)|77:white_check_mark:|||43ms|
-|[test/unit/suite.spec.js](#r0s31)|57:white_check_mark:|||14ms|
-|[test/unit/test.spec.js](#r0s32)|15:white_check_mark:|||0ms|
-|[test/unit/throw.spec.js](#r0s33)|9:white_check_mark:|||9ms|
-|[test/unit/timeout.spec.js](#r0s34)|8:white_check_mark:|||109ms|
-|[test/unit/utils.spec.js](#r0s35)|75:white_check_mark:|||24ms|
-### :white_check_mark: test/node-unit/buffered-worker-pool.spec.js
+|[test/node-unit/buffered-worker-pool.spec.js](#r0s0)|14 ✅|||8ms|
+|[test/node-unit/cli/config.spec.js](#r0s1)|10 ✅|||8ms|
+|[test/node-unit/cli/node-flags.spec.js](#r0s2)|105 ✅|||9ms|
+|[test/node-unit/cli/options.spec.js](#r0s3)|36 ✅|||250ms|
+|[test/node-unit/cli/run-helpers.spec.js](#r0s4)|9 ✅|||8ms|
+|[test/node-unit/cli/run.spec.js](#r0s5)|40 ✅|||4ms|
+|[test/node-unit/mocha.spec.js](#r0s6)|24 ✅|||33ms|
+|[test/node-unit/parallel-buffered-runner.spec.js](#r0s7)|19 ✅|||23ms|
+|[test/node-unit/reporters/parallel-buffered.spec.js](#r0s8)|6 ✅|||16ms|
+|[test/node-unit/serializer.spec.js](#r0s9)|40 ✅|||31ms|
+|[test/node-unit/stack-trace-filter.spec.js](#r0s10)|2 ✅||4 ⚪|1ms|
+|[test/node-unit/utils.spec.js](#r0s11)|5 ✅|||1ms|
+|[test/node-unit/worker.spec.js](#r0s12)|15 ✅|||92ms|
+|[test/unit/context.spec.js](#r0s13)|8 ✅|||5ms|
+|[test/unit/duration.spec.js](#r0s14)|3 ✅|||166ms|
+|[test/unit/errors.spec.js](#r0s15)|13 ✅|||5ms|
+|[test/unit/globals.spec.js](#r0s16)|4 ✅|||0ms|
+|[test/unit/grep.spec.js](#r0s17)|8 ✅|||2ms|
+|[test/unit/hook-async.spec.js](#r0s18)|3 ✅|||1ms|
+|[test/unit/hook-sync-nested.spec.js](#r0s19)|4 ✅|||1ms|
+|[test/unit/hook-sync.spec.js](#r0s20)|3 ✅|||0ms|
+|[test/unit/hook-timeout.spec.js](#r0s21)|1 ✅|||0ms|
+|[test/unit/hook.spec.js](#r0s22)|4 ✅|||0ms|
+|[test/unit/mocha.spec.js](#r0s23)|115 ✅||1 ⚪|128ms|
+|[test/unit/overspecified-async.spec.js](#r0s24)|1 ✅|||3ms|
+|[test/unit/parse-query.spec.js](#r0s25)|2 ✅|||1ms|
+|[test/unit/plugin-loader.spec.js](#r0s26)|41 ✅||1 ⚪|16ms|
+|[test/unit/required-tokens.spec.js](#r0s27)|1 ✅|||0ms|
+|[test/unit/root.spec.js](#r0s28)|1 ✅|||0ms|
+|[test/unit/runnable.spec.js](#r0s29)|55 ✅|||122ms|
+|[test/unit/runner.spec.js](#r0s30)|77 ✅|||43ms|
+|[test/unit/suite.spec.js](#r0s31)|57 ✅|||14ms|
+|[test/unit/test.spec.js](#r0s32)|15 ✅|||0ms|
+|[test/unit/throw.spec.js](#r0s33)|9 ✅|||9ms|
+|[test/unit/timeout.spec.js](#r0s34)|8 ✅|||109ms|
+|[test/unit/utils.spec.js](#r0s35)|75 ✅|||24ms|
+### ✅ test/node-unit/buffered-worker-pool.spec.js
```
class BufferedWorkerPool constructor
- :white_check_mark: should apply defaults
+ ✅ should apply defaults
class BufferedWorkerPool instance method run()
- :white_check_mark: should deserialize the result
- :white_check_mark: should serialize the options object
+ ✅ should deserialize the result
+ ✅ should serialize the options object
class BufferedWorkerPool instance method run() when passed a non-string filepath
- :white_check_mark: should reject
+ ✅ should reject
class BufferedWorkerPool instance method run() when passed no arguments
- :white_check_mark: should reject
+ ✅ should reject
class BufferedWorkerPool instance method stats()
- :white_check_mark: should return the object returned by `workerpool.Pool#stats`
+ ✅ should return the object returned by `workerpool.Pool#stats`
class BufferedWorkerPool instance method terminate() when called with `force`
- :white_check_mark: should delegate to the underlying pool w/ "force" behavior
+ ✅ should delegate to the underlying pool w/ "force" behavior
class BufferedWorkerPool instance method terminate() when called without `force`
- :white_check_mark: should delegate to the underlying pool w/o "force" behavior
+ ✅ should delegate to the underlying pool w/o "force" behavior
class BufferedWorkerPool static method create()
- :white_check_mark: should return a BufferedWorkerPool instance
+ ✅ should return a BufferedWorkerPool instance
class BufferedWorkerPool static method create() when passed no arguments
- :white_check_mark: should not throw
+ ✅ should not throw
class BufferedWorkerPool static method serializeOptions()
- :white_check_mark: should return a serialized string
+ ✅ should return a serialized string
class BufferedWorkerPool static method serializeOptions() when called multiple times with the same object
- :white_check_mark: should not perform serialization twice
- :white_check_mark: should return the same value
+ ✅ should not perform serialization twice
+ ✅ should return the same value
class BufferedWorkerPool static method serializeOptions() when passed no arguments
- :white_check_mark: should not throw
+ ✅ should not throw
```
-### :white_check_mark: test/node-unit/cli/config.spec.js
+### ✅ test/node-unit/cli/config.spec.js
```
cli/config findConfig()
- :white_check_mark: should look for one of the config files using findup-sync
- :white_check_mark: should support an explicit `cwd`
+ ✅ should look for one of the config files using findup-sync
+ ✅ should support an explicit `cwd`
cli/config loadConfig() when config file parsing fails
- :white_check_mark: should throw
+ ✅ should throw
cli/config loadConfig() when parsing succeeds when supplied a filepath with ".cjs" extension
- :white_check_mark: should use the JS parser
+ ✅ should use the JS parser
cli/config loadConfig() when parsing succeeds when supplied a filepath with ".js" extension
- :white_check_mark: should use the JS parser
+ ✅ should use the JS parser
cli/config loadConfig() when parsing succeeds when supplied a filepath with ".json" extension
- :white_check_mark: should use the JSON parser
+ ✅ should use the JSON parser
cli/config loadConfig() when parsing succeeds when supplied a filepath with ".jsonc" extension
- :white_check_mark: should use the JSON parser
+ ✅ should use the JSON parser
cli/config loadConfig() when parsing succeeds when supplied a filepath with ".yaml" extension
- :white_check_mark: should use the YAML parser
+ ✅ should use the YAML parser
cli/config loadConfig() when parsing succeeds when supplied a filepath with ".yml" extension
- :white_check_mark: should use the YAML parser
+ ✅ should use the YAML parser
cli/config loadConfig() when supplied a filepath with unsupported extension
- :white_check_mark: should use the JSON parser
+ ✅ should use the JSON parser
```
-### :white_check_mark: test/node-unit/cli/node-flags.spec.js
+### ✅ test/node-unit/cli/node-flags.spec.js
```
node-flags impliesNoTimeouts()
- :white_check_mark: should return true for inspect flags
+ ✅ should return true for inspect flags
node-flags isNodeFlag() for all allowed node env flags which conflict with mocha flags
- :white_check_mark: --require should return false
- :white_check_mark: -r should return false
+ ✅ --require should return false
+ ✅ -r should return false
node-flags isNodeFlag() for all allowed node environment flags
- :white_check_mark: --abort-on-uncaught-exception should return true
- :white_check_mark: --conditions should return true
- :white_check_mark: --debug-arraybuffer-allocations should return true
- :white_check_mark: --debug-port should return true
- :white_check_mark: --diagnostic-dir should return true
- :white_check_mark: --disable-proto should return true
- :white_check_mark: --disallow-code-generation-from-strings should return true
- :white_check_mark: --enable-source-maps should return true
- :white_check_mark: --es-module-specifier-resolution should return true
- :white_check_mark: --experimental-import-meta-resolve should return true
- :white_check_mark: --experimental-json-modules should return true
- :white_check_mark: --experimental-loader should return true
- :white_check_mark: --experimental-modules should return true
- :white_check_mark: --experimental-policy should return true
- :white_check_mark: --experimental-repl-await should return true
- :white_check_mark: --experimental-report should return true
- :white_check_mark: --experimental-specifier-resolution should return true
- :white_check_mark: --experimental-vm-modules should return true
- :white_check_mark: --experimental-wasi-unstable-preview1 should return true
- :white_check_mark: --experimental-wasm-modules should return true
- :white_check_mark: --experimental-worker should return true
- :white_check_mark: --force-context-aware should return true
- :white_check_mark: --frozen-intrinsics should return true
- :white_check_mark: --heapsnapshot-signal should return true
- :white_check_mark: --http-parser should return true
- :white_check_mark: --http-server-default-timeout should return true
- :white_check_mark: --huge-max-old-generation-size should return true
- :white_check_mark: --icu-data-dir should return true
- :white_check_mark: --input-type should return true
- :white_check_mark: --insecure-http-parser should return true
- :white_check_mark: --inspect should return true
- :white_check_mark: --inspect-brk should return true
- :white_check_mark: --inspect-port should return true
- :white_check_mark: --inspect-publish-uid should return true
- :white_check_mark: --interpreted-frames-native-stack should return true
- :white_check_mark: --jitless should return true
- :white_check_mark: --loader should return true
- :white_check_mark: --max-http-header-size should return true
- :white_check_mark: --max-old-space-size should return true
- :white_check_mark: --napi-modules should return true
- :white_check_mark: --no-deprecation should return true
- :white_check_mark: --no-force-async-hooks-checks should return true
- :white_check_mark: --no-node-snapshot should return true
- :white_check_mark: --no-warnings should return true
- :white_check_mark: --openssl-config should return true
- :white_check_mark: --pending-deprecation should return true
- :white_check_mark: --perf-basic-prof should return true
- :white_check_mark: --perf-basic-prof-only-functions should return true
- :white_check_mark: --perf-prof should return true
- :white_check_mark: --perf-prof-unwinding-info should return true
- :white_check_mark: --policy-integrity should return true
- :white_check_mark: --preserve-symlinks should return true
- :white_check_mark: --preserve-symlinks-main should return true
- :white_check_mark: --prof-process should return true
- :white_check_mark: --redirect-warnings should return true
- :white_check_mark: --report-compact should return true
- :white_check_mark: --report-dir should return true
- :white_check_mark: --report-directory should return true
- :white_check_mark: --report-filename should return true
- :white_check_mark: --report-on-fatalerror should return true
- :white_check_mark: --report-on-signal should return true
- :white_check_mark: --report-signal should return true
- :white_check_mark: --report-uncaught-exception should return true
- :white_check_mark: --stack-trace-limit should return true
- :white_check_mark: --throw-deprecation should return true
- :white_check_mark: --title should return true
- :white_check_mark: --tls-cipher-list should return true
- :white_check_mark: --tls-keylog should return true
- :white_check_mark: --tls-max-v1.2 should return true
- :white_check_mark: --tls-max-v1.3 should return true
- :white_check_mark: --tls-min-v1.0 should return true
- :white_check_mark: --tls-min-v1.1 should return true
- :white_check_mark: --tls-min-v1.2 should return true
- :white_check_mark: --tls-min-v1.3 should return true
- :white_check_mark: --trace-deprecation should return true
- :white_check_mark: --trace-event-categories should return true
- :white_check_mark: --trace-event-file-pattern should return true
- :white_check_mark: --trace-events-enabled should return true
- :white_check_mark: --trace-exit should return true
- :white_check_mark: --trace-sigint should return true
- :white_check_mark: --trace-sync-io should return true
- :white_check_mark: --trace-tls should return true
- :white_check_mark: --trace-uncaught should return true
- :white_check_mark: --trace-warnings should return true
- :white_check_mark: --track-heap-objects should return true
- :white_check_mark: --unhandled-rejections should return true
- :white_check_mark: --use-bundled-ca should return true
- :white_check_mark: --use-largepages should return true
- :white_check_mark: --use-openssl-ca should return true
- :white_check_mark: --v8-pool-size should return true
- :white_check_mark: --zero-fill-buffers should return true
+ ✅ --abort-on-uncaught-exception should return true
+ ✅ --conditions should return true
+ ✅ --debug-arraybuffer-allocations should return true
+ ✅ --debug-port should return true
+ ✅ --diagnostic-dir should return true
+ ✅ --disable-proto should return true
+ ✅ --disallow-code-generation-from-strings should return true
+ ✅ --enable-source-maps should return true
+ ✅ --es-module-specifier-resolution should return true
+ ✅ --experimental-import-meta-resolve should return true
+ ✅ --experimental-json-modules should return true
+ ✅ --experimental-loader should return true
+ ✅ --experimental-modules should return true
+ ✅ --experimental-policy should return true
+ ✅ --experimental-repl-await should return true
+ ✅ --experimental-report should return true
+ ✅ --experimental-specifier-resolution should return true
+ ✅ --experimental-vm-modules should return true
+ ✅ --experimental-wasi-unstable-preview1 should return true
+ ✅ --experimental-wasm-modules should return true
+ ✅ --experimental-worker should return true
+ ✅ --force-context-aware should return true
+ ✅ --frozen-intrinsics should return true
+ ✅ --heapsnapshot-signal should return true
+ ✅ --http-parser should return true
+ ✅ --http-server-default-timeout should return true
+ ✅ --huge-max-old-generation-size should return true
+ ✅ --icu-data-dir should return true
+ ✅ --input-type should return true
+ ✅ --insecure-http-parser should return true
+ ✅ --inspect should return true
+ ✅ --inspect-brk should return true
+ ✅ --inspect-port should return true
+ ✅ --inspect-publish-uid should return true
+ ✅ --interpreted-frames-native-stack should return true
+ ✅ --jitless should return true
+ ✅ --loader should return true
+ ✅ --max-http-header-size should return true
+ ✅ --max-old-space-size should return true
+ ✅ --napi-modules should return true
+ ✅ --no-deprecation should return true
+ ✅ --no-force-async-hooks-checks should return true
+ ✅ --no-node-snapshot should return true
+ ✅ --no-warnings should return true
+ ✅ --openssl-config should return true
+ ✅ --pending-deprecation should return true
+ ✅ --perf-basic-prof should return true
+ ✅ --perf-basic-prof-only-functions should return true
+ ✅ --perf-prof should return true
+ ✅ --perf-prof-unwinding-info should return true
+ ✅ --policy-integrity should return true
+ ✅ --preserve-symlinks should return true
+ ✅ --preserve-symlinks-main should return true
+ ✅ --prof-process should return true
+ ✅ --redirect-warnings should return true
+ ✅ --report-compact should return true
+ ✅ --report-dir should return true
+ ✅ --report-directory should return true
+ ✅ --report-filename should return true
+ ✅ --report-on-fatalerror should return true
+ ✅ --report-on-signal should return true
+ ✅ --report-signal should return true
+ ✅ --report-uncaught-exception should return true
+ ✅ --stack-trace-limit should return true
+ ✅ --throw-deprecation should return true
+ ✅ --title should return true
+ ✅ --tls-cipher-list should return true
+ ✅ --tls-keylog should return true
+ ✅ --tls-max-v1.2 should return true
+ ✅ --tls-max-v1.3 should return true
+ ✅ --tls-min-v1.0 should return true
+ ✅ --tls-min-v1.1 should return true
+ ✅ --tls-min-v1.2 should return true
+ ✅ --tls-min-v1.3 should return true
+ ✅ --trace-deprecation should return true
+ ✅ --trace-event-categories should return true
+ ✅ --trace-event-file-pattern should return true
+ ✅ --trace-events-enabled should return true
+ ✅ --trace-exit should return true
+ ✅ --trace-sigint should return true
+ ✅ --trace-sync-io should return true
+ ✅ --trace-tls should return true
+ ✅ --trace-uncaught should return true
+ ✅ --trace-warnings should return true
+ ✅ --track-heap-objects should return true
+ ✅ --unhandled-rejections should return true
+ ✅ --use-bundled-ca should return true
+ ✅ --use-largepages should return true
+ ✅ --use-openssl-ca should return true
+ ✅ --v8-pool-size should return true
+ ✅ --zero-fill-buffers should return true
node-flags isNodeFlag() special cases
- :white_check_mark: should return true for "es-staging"
- :white_check_mark: should return true for "gc-global"
- :white_check_mark: should return true for "harmony" itself
- :white_check_mark: should return true for "use-strict"
- :white_check_mark: should return true for flags starting with "--v8-"
- :white_check_mark: should return true for flags starting with "harmony-" or "harmony_"
- :white_check_mark: should return true for flags starting with "preserve-symlinks"
- :white_check_mark: should return true for flags starting with "trace-" or "trace_"
+ ✅ should return true for "es-staging"
+ ✅ should return true for "gc-global"
+ ✅ should return true for "harmony" itself
+ ✅ should return true for "use-strict"
+ ✅ should return true for flags starting with "--v8-"
+ ✅ should return true for flags starting with "harmony-" or "harmony_"
+ ✅ should return true for flags starting with "preserve-symlinks"
+ ✅ should return true for flags starting with "trace-" or "trace_"
node-flags isNodeFlag() when expecting leading dashes
- :white_check_mark: should require leading dashes
+ ✅ should require leading dashes
node-flags unparseNodeFlags()
- :white_check_mark: should handle multiple v8 flags
- :white_check_mark: should handle single v8 flags
+ ✅ should handle multiple v8 flags
+ ✅ should handle single v8 flags
```
-### :white_check_mark: test/node-unit/cli/options.spec.js
+### ✅ test/node-unit/cli/options.spec.js
```
options loadOptions() "extension" handling when user does not supply "extension" option
- :white_check_mark: should retain the default
+ ✅ should retain the default
options loadOptions() "extension" handling when user supplies "extension" option
- :white_check_mark: should not concatenate the default value
+ ✅ should not concatenate the default value
options loadOptions() "ignore" handling
- :white_check_mark: should not split option values by comma
+ ✅ should not split option values by comma
options loadOptions() "spec" handling when user supplies "spec" in config and positional arguments
- :white_check_mark: should place both - unsplitted - into the positional arguments array
+ ✅ should place both - unsplitted - into the positional arguments array
options loadOptions() config priority
- :white_check_mark: should prioritize args over rc file
- :white_check_mark: should prioritize package.json over defaults
- :white_check_mark: should prioritize rc file over package.json
+ ✅ should prioritize args over rc file
+ ✅ should prioritize package.json over defaults
+ ✅ should prioritize rc file over package.json
options loadOptions() when called with a one-and-done arg "h"
- :white_check_mark: should return basic parsed arguments and flag
+ ✅ should return basic parsed arguments and flag
options loadOptions() when called with a one-and-done arg "help"
- :white_check_mark: should return basic parsed arguments and flag
+ ✅ should return basic parsed arguments and flag
options loadOptions() when called with a one-and-done arg "list-interfaces"
- :white_check_mark: should return basic parsed arguments and flag
+ ✅ should return basic parsed arguments and flag
options loadOptions() when called with a one-and-done arg "list-reporters"
- :white_check_mark: should return basic parsed arguments and flag
+ ✅ should return basic parsed arguments and flag
options loadOptions() when called with a one-and-done arg "V"
- :white_check_mark: should return basic parsed arguments and flag
+ ✅ should return basic parsed arguments and flag
options loadOptions() when called with a one-and-done arg "version"
- :white_check_mark: should return basic parsed arguments and flag
+ ✅ should return basic parsed arguments and flag
options loadOptions() when no parameter provided
- :white_check_mark: should return an object containing positional args, defaults, and anti-reloading flags
+ ✅ should return an object containing positional args, defaults, and anti-reloading flags
options loadOptions() when parameter provided package.json when called with package = false (`--no-package`)
- :white_check_mark: should not look for package.json
- :white_check_mark: should return parsed args and default config
- :white_check_mark: should set package = false
+ ✅ should not look for package.json
+ ✅ should return parsed args and default config
+ ✅ should set package = false
options loadOptions() when parameter provided package.json when path to package.json (`--package `) is invalid
- :white_check_mark: should throw
+ ✅ should throw
options loadOptions() when parameter provided package.json when path to package.json (`--package `) is valid
- :white_check_mark: should not try to find a package.json
- :white_check_mark: should return merged options incl. package.json opts
- :white_check_mark: should set package = false
+ ✅ should not try to find a package.json
+ ✅ should return merged options incl. package.json opts
+ ✅ should set package = false
options loadOptions() when parameter provided package.json when path to package.json unspecified
- :white_check_mark: should return merged options incl. found package.json
- :white_check_mark: should set package = false
+ ✅ should return merged options incl. found package.json
+ ✅ should set package = false
options loadOptions() when parameter provided rc file when called with config = false (`--no-config`)
- :white_check_mark: should not attempt to find a config file
- :white_check_mark: should not attempt to load a config file
- :white_check_mark: should return parsed args, default config and package.json
- :white_check_mark: should set config = false
+ ✅ should not attempt to find a config file
+ ✅ should not attempt to load a config file
+ ✅ should return parsed args, default config and package.json
+ ✅ should set config = false
options loadOptions() when parameter provided rc file when called with unspecified config when an rc file would be found
- :white_check_mark: should attempt to load file at found path
- :white_check_mark: should look for a config
- :white_check_mark: should set config = false
+ ✅ should attempt to load file at found path
+ ✅ should look for a config
+ ✅ should set config = false
options loadOptions() when parameter provided rc file when called with unspecified config when an rc file would not be found
- :white_check_mark: should look for a config
- :white_check_mark: should not attempt to load a config file
- :white_check_mark: should set config = false
+ ✅ should look for a config
+ ✅ should not attempt to load a config file
+ ✅ should set config = false
options loadOptions() when parameter provided rc file when path to config (`--config `) is invalid
- :white_check_mark: should attempt to load file at path
- :white_check_mark: should not look for a config
- :white_check_mark: should throw to warn the user
+ ✅ should attempt to load file at path
+ ✅ should not look for a config
+ ✅ should throw to warn the user
```
-### :white_check_mark: test/node-unit/cli/run-helpers.spec.js
+### ✅ test/node-unit/cli/run-helpers.spec.js
```
helpers list() when given a comma-delimited string
- :white_check_mark: should return a flat array
+ ✅ should return a flat array
helpers list() when provided a flat array
- :white_check_mark: should return a flat array
+ ✅ should return a flat array
helpers list() when provided a nested array
- :white_check_mark: should return a flat array
+ ✅ should return a flat array
helpers validateLegacyPlugin() when a plugin throws an exception upon load
- :white_check_mark: should fail and report the original error
+ ✅ should fail and report the original error
helpers validateLegacyPlugin() when used with "reporter" key
- :white_check_mark: should disallow an array of names
- :white_check_mark: should fail to recognize an unknown reporter
+ ✅ should disallow an array of names
+ ✅ should fail to recognize an unknown reporter
helpers validateLegacyPlugin() when used with an "interfaces" key
- :white_check_mark: should disallow an array of names
- :white_check_mark: should fail to recognize an unknown interface
+ ✅ should disallow an array of names
+ ✅ should fail to recognize an unknown interface
helpers validateLegacyPlugin() when used with an unknown plugin type
- :white_check_mark: should fail
+ ✅ should fail
```
-### :white_check_mark: test/node-unit/cli/run.spec.js
+### ✅ test/node-unit/cli/run.spec.js
```
command run builder array type
- :white_check_mark: should include option extension
- :white_check_mark: should include option file
- :white_check_mark: should include option global
- :white_check_mark: should include option ignore
- :white_check_mark: should include option reporter-option
- :white_check_mark: should include option require
- :white_check_mark: should include option spec
- :white_check_mark: should include option watch-files
- :white_check_mark: should include option watch-ignore
+ ✅ should include option extension
+ ✅ should include option file
+ ✅ should include option global
+ ✅ should include option ignore
+ ✅ should include option reporter-option
+ ✅ should include option require
+ ✅ should include option spec
+ ✅ should include option watch-files
+ ✅ should include option watch-ignore
command run builder boolean type
- :white_check_mark: should include option allow-uncaught
- :white_check_mark: should include option async-only
- :white_check_mark: should include option bail
- :white_check_mark: should include option check-leaks
- :white_check_mark: should include option color
- :white_check_mark: should include option delay
- :white_check_mark: should include option diff
- :white_check_mark: should include option exit
- :white_check_mark: should include option forbid-only
- :white_check_mark: should include option forbid-pending
- :white_check_mark: should include option full-trace
- :white_check_mark: should include option growl
- :white_check_mark: should include option inline-diffs
- :white_check_mark: should include option invert
- :white_check_mark: should include option list-interfaces
- :white_check_mark: should include option list-reporters
- :white_check_mark: should include option no-colors
- :white_check_mark: should include option parallel
- :white_check_mark: should include option recursive
- :white_check_mark: should include option sort
- :white_check_mark: should include option watch
+ ✅ should include option allow-uncaught
+ ✅ should include option async-only
+ ✅ should include option bail
+ ✅ should include option check-leaks
+ ✅ should include option color
+ ✅ should include option delay
+ ✅ should include option diff
+ ✅ should include option exit
+ ✅ should include option forbid-only
+ ✅ should include option forbid-pending
+ ✅ should include option full-trace
+ ✅ should include option growl
+ ✅ should include option inline-diffs
+ ✅ should include option invert
+ ✅ should include option list-interfaces
+ ✅ should include option list-reporters
+ ✅ should include option no-colors
+ ✅ should include option parallel
+ ✅ should include option recursive
+ ✅ should include option sort
+ ✅ should include option watch
command run builder number type
- :white_check_mark: should include option jobs
- :white_check_mark: should include option retries
+ ✅ should include option jobs
+ ✅ should include option retries
command run builder string type
- :white_check_mark: should include option config
- :white_check_mark: should include option fgrep
- :white_check_mark: should include option grep
- :white_check_mark: should include option package
- :white_check_mark: should include option reporter
- :white_check_mark: should include option slow
- :white_check_mark: should include option timeout
- :white_check_mark: should include option ui
+ ✅ should include option config
+ ✅ should include option fgrep
+ ✅ should include option grep
+ ✅ should include option package
+ ✅ should include option reporter
+ ✅ should include option slow
+ ✅ should include option timeout
+ ✅ should include option ui
```
-### :white_check_mark: test/node-unit/mocha.spec.js
+### ✅ test/node-unit/mocha.spec.js
```
Mocha instance method addFile()
- :white_check_mark: should add the given file to the files array
- :white_check_mark: should be chainable
+ ✅ should add the given file to the files array
+ ✅ should be chainable
Mocha instance method lazyLoadFiles()
- :white_check_mark: should return the `Mocha` instance
+ ✅ should return the `Mocha` instance
Mocha instance method lazyLoadFiles() when passed `true`
- :white_check_mark: should enable lazy loading
+ ✅ should enable lazy loading
Mocha instance method lazyLoadFiles() when passed a non-`true` value
- :white_check_mark: should enable eager loading
+ ✅ should enable eager loading
Mocha instance method loadFiles()
- :white_check_mark: should execute the optional callback if given
- :white_check_mark: should load all files from the files array
+ ✅ should execute the optional callback if given
+ ✅ should load all files from the files array
Mocha instance method parallelMode() when `Mocha` is running in Node.js
- :white_check_mark: should return the Mocha instance
+ ✅ should return the Mocha instance
Mocha instance method parallelMode() when `Mocha` is running in Node.js when `Mocha` instance in serial mode when passed `true` value when `Mocha` instance is in `INIT` state
- :white_check_mark: should enable parallel mode
+ ✅ should enable parallel mode
Mocha instance method parallelMode() when `Mocha` is running in Node.js when `Mocha` instance in serial mode when passed `true` value when `Mocha` instance is not in `INIT` state
- :white_check_mark: should throw
+ ✅ should throw
Mocha instance method parallelMode() when `Mocha` is running in Node.js when `Mocha` instance in serial mode when passed non-`true` value when `Mocha` instance is in `INIT` state
- :white_check_mark: should enable serial mode
+ ✅ should enable serial mode
Mocha instance method parallelMode() when `Mocha` is running in Node.js when parallel mode is already disabled
- :white_check_mark: should not swap the Runner, nor change lazy loading setting
+ ✅ should not swap the Runner, nor change lazy loading setting
Mocha instance method parallelMode() when `Mocha` is running in Node.js when parallel mode is already enabled
- :white_check_mark: should not swap the Runner, nor change lazy loading setting
+ ✅ should not swap the Runner, nor change lazy loading setting
Mocha instance method reporter() when a reporter exists relative to the "mocha" module path
- :white_check_mark: should load from module path
+ ✅ should load from module path
Mocha instance method reporter() when a reporter exists relative to the "mocha" module path when the reporter throws upon load
- :white_check_mark: should throw "invalid reporter" exception
- :white_check_mark: should warn about the error before throwing
+ ✅ should throw "invalid reporter" exception
+ ✅ should warn about the error before throwing
Mocha instance method reporter() when a reporter exists relative to the cwd
- :white_check_mark: should load from current working directory
+ ✅ should load from current working directory
Mocha instance method reporter() when a reporter exists relative to the cwd when the reporter throws upon load
- :white_check_mark: should throw "invalid reporter" exception
- :white_check_mark: should warn about the error before throwing
+ ✅ should throw "invalid reporter" exception
+ ✅ should warn about the error before throwing
Mocha instance method unloadFiles()
- :white_check_mark: should be chainable
- :white_check_mark: should delegate Mocha.unloadFile() for each item in its list of files
- :white_check_mark: should not be allowed when the current instance is already disposed
- :white_check_mark: should reset referencesCleaned and allow for next run
+ ✅ should be chainable
+ ✅ should delegate Mocha.unloadFile() for each item in its list of files
+ ✅ should not be allowed when the current instance is already disposed
+ ✅ should reset referencesCleaned and allow for next run
Mocha static method unloadFile()
- :white_check_mark: should unload a specific file from cache
+ ✅ should unload a specific file from cache
```
-### :white_check_mark: test/node-unit/parallel-buffered-runner.spec.js
+### ✅ test/node-unit/parallel-buffered-runner.spec.js
```
parallel-buffered-runner ParallelBufferedRunner constructor
- :white_check_mark: should start in "IDLE" state
+ ✅ should start in "IDLE" state
parallel-buffered-runner ParallelBufferedRunner event EVENT_RUN_END
- :white_check_mark: should change the state to COMPLETE
+ ✅ should change the state to COMPLETE
parallel-buffered-runner ParallelBufferedRunner instance method isParallelMode()
- :white_check_mark: should return true
+ ✅ should return true
parallel-buffered-runner ParallelBufferedRunner instance method linkPartialObjects()
- :white_check_mark: should return the runner
+ ✅ should return the runner
parallel-buffered-runner ParallelBufferedRunner instance method run()
- :white_check_mark: should be chainable
- :white_check_mark: should emit `EVENT_RUN_BEGIN`
+ ✅ should be chainable
+ ✅ should emit `EVENT_RUN_BEGIN`
parallel-buffered-runner ParallelBufferedRunner instance method run() when a suite has a bail flag when an event contains an error and has positive failures when subsequent files already started running
- :white_check_mark: should cleanly terminate the thread pool
+ ✅ should cleanly terminate the thread pool
parallel-buffered-runner ParallelBufferedRunner instance method run() when a suite has a bail flag when an event contains an error and has positive failures when subsequent files have not yet been run
- :white_check_mark: should cleanly terminate the thread pool
- :white_check_mark: should cleanly terminate the thread pool
+ ✅ should cleanly terminate the thread pool
+ ✅ should cleanly terminate the thread pool
parallel-buffered-runner ParallelBufferedRunner instance method run() when a suite has a bail flag when no event contains an error
- :white_check_mark: should not force-terminate
+ ✅ should not force-terminate
parallel-buffered-runner ParallelBufferedRunner instance method run() when a worker fails
- :white_check_mark: should delegate to Runner#uncaught
- :white_check_mark: should recover
+ ✅ should delegate to Runner#uncaught
+ ✅ should recover
parallel-buffered-runner ParallelBufferedRunner instance method run() when instructed to link objects
- :white_check_mark: should create object references
+ ✅ should create object references
parallel-buffered-runner ParallelBufferedRunner instance method run() when instructed to link objects when event data object is missing an ID
- :white_check_mark: should result in an uncaught exception
+ ✅ should result in an uncaught exception
parallel-buffered-runner ParallelBufferedRunner instance method run() when suite should bail when an event contains an error and has positive failures when subsequent files already started running
- :white_check_mark: should cleanly terminate the thread pool
+ ✅ should cleanly terminate the thread pool
parallel-buffered-runner ParallelBufferedRunner instance method run() when suite should bail when an event contains an error and has positive failures when subsequent files have not yet been run
- :white_check_mark: should cleanly terminate the thread pool
+ ✅ should cleanly terminate the thread pool
parallel-buffered-runner ParallelBufferedRunner instance method run() when suite should bail when no event contains an error
- :white_check_mark: should not force-terminate
+ ✅ should not force-terminate
parallel-buffered-runner ParallelBufferedRunner instance method workerReporter()
- :white_check_mark: should return its context
+ ✅ should return its context
parallel-buffered-runner ParallelBufferedRunner instance property _state
- :white_check_mark: should disallow an invalid state transition
+ ✅ should disallow an invalid state transition
```
-### :white_check_mark: test/node-unit/reporters/parallel-buffered.spec.js
+### ✅ test/node-unit/reporters/parallel-buffered.spec.js
```
ParallelBuffered constructor
- :white_check_mark: should listen for Runner events
- :white_check_mark: should listen for Runner events expecting to occur once
+ ✅ should listen for Runner events
+ ✅ should listen for Runner events expecting to occur once
ParallelBuffered event on any other event listened for
- :white_check_mark: should populate its `events` array with SerializableEvents
+ ✅ should populate its `events` array with SerializableEvents
ParallelBuffered event on EVENT_RUN_END
- :white_check_mark: should remove all listeners
+ ✅ should remove all listeners
ParallelBuffered instance method done
- :white_check_mark: should execute its callback with a SerializableWorkerResult
- :white_check_mark: should reset its `events` prop
+ ✅ should execute its callback with a SerializableWorkerResult
+ ✅ should reset its `events` prop
```
-### :white_check_mark: test/node-unit/serializer.spec.js
+### ✅ test/node-unit/serializer.spec.js
```
serializer function deserialize when passed a non-object value
- :white_check_mark: should return the value
+ ✅ should return the value
serializer function deserialize when passed a SerializedWorkerResult object
- :white_check_mark: should return the result of `SerializableWorkerResult.deserialize` called on the value
+ ✅ should return the result of `SerializableWorkerResult.deserialize` called on the value
serializer function deserialize when passed an object value which is not a SerializedWorkerResult
- :white_check_mark: should return the value
+ ✅ should return the value
serializer function deserialize when passed nothing
- :white_check_mark: should return `undefined`
+ ✅ should return `undefined`
serializer function serialize when not passed anything
- :white_check_mark: should return `undefined`
+ ✅ should return `undefined`
serializer function serialize when passed a non-object value
- :white_check_mark: should return the value
+ ✅ should return the value
serializer function serialize when passed an object value having a `serialize` method
- :white_check_mark: should return the result of the `serialize` method
+ ✅ should return the result of the `serialize` method
serializer function serialize when passed an object value w/o a `serialize` method
- :white_check_mark: should return the value
+ ✅ should return the value
serializer SerializableEvent constructor when called with a non-object `rawObject`
- :white_check_mark: should throw "invalid arg type" error
+ ✅ should throw "invalid arg type" error
serializer SerializableEvent constructor when called without `eventName`
- :white_check_mark: should throw "invalid arg value" error
+ ✅ should throw "invalid arg value" error
serializer SerializableEvent instance method serialize
- :white_check_mark: should freeze the instance
- :white_check_mark: should mutate the instance in-place
+ ✅ should freeze the instance
+ ✅ should mutate the instance in-place
serializer SerializableEvent instance method serialize when passed an error
- :white_check_mark: should not retain not-own props
- :white_check_mark: should retain own props
- :white_check_mark: should serialize the error
+ ✅ should not retain not-own props
+ ✅ should retain own props
+ ✅ should serialize the error
serializer SerializableEvent instance method serialize when passed an object containing a nested prop with an Error value
- :white_check_mark: should serialize the Error
+ ✅ should serialize the Error
serializer SerializableEvent instance method serialize when passed an object containing a non-`serialize` method
- :white_check_mark: should remove the method
+ ✅ should remove the method
serializer SerializableEvent instance method serialize when passed an object containing a top-level prop with an Error value
- :white_check_mark: should serialize the Error
+ ✅ should serialize the Error
serializer SerializableEvent instance method serialize when passed an object containing an array
- :white_check_mark: should serialize the array
+ ✅ should serialize the array
serializer SerializableEvent instance method serialize when passed an object containing an object with a `serialize` method
- :white_check_mark: should call the `serialize` method
+ ✅ should call the `serialize` method
serializer SerializableEvent instance method serialize when passed an object with a `serialize` method
- :white_check_mark: should call the `serialize` method
+ ✅ should call the `serialize` method
serializer SerializableEvent static method create
- :white_check_mark: should instantiate a SerializableEvent
+ ✅ should instantiate a SerializableEvent
serializer SerializableEvent static method deserialize
- :white_check_mark: should return a new object w/ null prototype
+ ✅ should return a new object w/ null prototype
serializer SerializableEvent static method deserialize when passed a falsy parameter
- :white_check_mark: should throw "invalid arg type" error
+ ✅ should throw "invalid arg type" error
serializer SerializableEvent static method deserialize when passed value contains `data` prop
- :white_check_mark: should ignore __proto__
+ ✅ should ignore __proto__
serializer SerializableEvent static method deserialize when passed value contains `data` prop when `data` prop contains a nested serialized Error prop
- :white_check_mark: should create an Error instance from the nested serialized Error prop
+ ✅ should create an Error instance from the nested serialized Error prop
serializer SerializableEvent static method deserialize when passed value contains an `error` prop
- :white_check_mark: should create an Error instance from the prop
+ ✅ should create an Error instance from the prop
serializer SerializableEvent static method deserialize when passed value data contains a prop beginning with "$$"
- :white_check_mark: should create a new prop having a function value
- :white_check_mark: should create a new prop returning the original value
- :white_check_mark: should remove the prop with the "$$" prefix
+ ✅ should create a new prop having a function value
+ ✅ should create a new prop returning the original value
+ ✅ should remove the prop with the "$$" prefix
serializer SerializableEvent static method deserialize when the value data contains a prop with an array value
- :white_check_mark: should deserialize each prop
+ ✅ should deserialize each prop
serializer SerializableWorkerResult constructor
- :white_check_mark: should add a readonly `__type` prop
+ ✅ should add a readonly `__type` prop
serializer SerializableWorkerResult instance method serialize
- :white_check_mark: should call `SerializableEvent#serialize` of each of its events
- :white_check_mark: should return a read-only value
+ ✅ should call `SerializableEvent#serialize` of each of its events
+ ✅ should return a read-only value
serializer SerializableWorkerResult static method create
- :white_check_mark: should return a new SerializableWorkerResult instance
+ ✅ should return a new SerializableWorkerResult instance
serializer SerializableWorkerResult static method deserialize
- :white_check_mark: should call SerializableEvent#deserialize on each item in its `events` prop
- :white_check_mark: should return the deserialized value
+ ✅ should call SerializableEvent#deserialize on each item in its `events` prop
+ ✅ should return the deserialized value
serializer SerializableWorkerResult static method isSerializedWorkerResult when passed an instance
- :white_check_mark: should return `true`
+ ✅ should return `true`
serializer SerializableWorkerResult static method isSerializedWorkerResult when passed an object with an appropriate `__type` prop
- :white_check_mark: should return `true`
+ ✅ should return `true`
serializer SerializableWorkerResult static method isSerializedWorkerResult when passed an object without an appropriate `__type` prop
- :white_check_mark: should return `false`
+ ✅ should return `false`
```
-### :white_check_mark: test/node-unit/stack-trace-filter.spec.js
+### ✅ test/node-unit/stack-trace-filter.spec.js
```
stackTraceFilter() on browser
- :white_check_mark: does not strip out other bower_components
+ ✅ does not strip out other bower_components
stackTraceFilter() on node on POSIX OS
- :warning: does not ignore other bower_components and components
- :warning: should get a stack-trace as a string and prettify it
- :warning: should not replace absolute path which has cwd as infix
- :warning: should replace absolute with relative paths
+ ⚪ does not ignore other bower_components and components
+ ⚪ should get a stack-trace as a string and prettify it
+ ⚪ should not replace absolute path which has cwd as infix
+ ⚪ should replace absolute with relative paths
stackTraceFilter() on node on Windows
- :white_check_mark: should work on Windows
+ ✅ should work on Windows
```
-### :white_check_mark: test/node-unit/utils.spec.js
+### ✅ test/node-unit/utils.spec.js
```
utils function canonicalType()
- :white_check_mark: should return "asyncfunction" if the parameter is an async function
- :white_check_mark: should return "buffer" if the parameter is a Buffer
+ ✅ should return "asyncfunction" if the parameter is an async function
+ ✅ should return "buffer" if the parameter is a Buffer
utils function cwd()
- :white_check_mark: should return the current working directory
+ ✅ should return the current working directory
utils function type()
- :white_check_mark: should return "error" if the parameter is an Error
- :white_check_mark: should return "function" if the parameter is an async function
+ ✅ should return "error" if the parameter is an Error
+ ✅ should return "function" if the parameter is an async function
```
-### :white_check_mark: test/node-unit/worker.spec.js
+### ✅ test/node-unit/worker.spec.js
```
worker when run as main process
- :white_check_mark: should throw
+ ✅ should throw
worker when run as worker process
- :white_check_mark: should register itself with workerpool
+ ✅ should register itself with workerpool
worker when run as worker process function run() when called with empty "filepath" argument
- :white_check_mark: should reject
+ ✅ should reject
worker when run as worker process function run() when called without arguments
- :white_check_mark: should reject
+ ✅ should reject
worker when run as worker process function run() when passed a non-string `options` value
- :white_check_mark: should reject
+ ✅ should reject
worker when run as worker process function run() when passed an invalid string `options` value
- :white_check_mark: should reject
+ ✅ should reject
worker when run as worker process function run() when the file at "filepath" argument is unloadable
- :white_check_mark: should reject
+ ✅ should reject
worker when run as worker process function run() when the file at "filepath" is loadable
- :white_check_mark: should call Mocha#run
- :white_check_mark: should handle "--require"
- :white_check_mark: should handle "--ui"
- :white_check_mark: should remove all uncaughtException listeners
- :white_check_mark: should remove all unhandledRejection listeners
+ ✅ should call Mocha#run
+ ✅ should handle "--require"
+ ✅ should handle "--ui"
+ ✅ should remove all uncaughtException listeners
+ ✅ should remove all unhandledRejection listeners
worker when run as worker process function run() when the file at "filepath" is loadable when run twice
- :white_check_mark: should initialize only once
+ ✅ should initialize only once
worker when run as worker process function run() when the file at "filepath" is loadable when serialization fails
- :white_check_mark: should reject
+ ✅ should reject
worker when run as worker process function run() when the file at "filepath" is loadable when serialization succeeds
- :white_check_mark: should resolve with a SerializedWorkerResult
+ ✅ should resolve with a SerializedWorkerResult
```
-### :white_check_mark: test/unit/context.spec.js
+### ✅ test/unit/context.spec.js
```
Context nested
- :white_check_mark: should work
+ ✅ should work
Context Siblings sequestered sibling
- :white_check_mark: should work
+ ✅ should work
Context Siblings sibling verifiction
- :white_check_mark: should allow test siblings to modify shared context
- :white_check_mark: should have reset this.calls before describe
- :white_check_mark: should not have value set within a sibling describe
+ ✅ should allow test siblings to modify shared context
+ ✅ should have reset this.calls before describe
+ ✅ should not have value set within a sibling describe
methods retries
- :white_check_mark: should return the number of retries
+ ✅ should return the number of retries
methods slow()
- :white_check_mark: should return the slow
+ ✅ should return the slow
methods timeout()
- :white_check_mark: should return the timeout
+ ✅ should return the timeout
```
-### :white_check_mark: test/unit/duration.spec.js
+### ✅ test/unit/duration.spec.js
```
durations when fast
- :white_check_mark: should not highlight
+ ✅ should not highlight
durations when reasonable
- :white_check_mark: should highlight in yellow
+ ✅ should highlight in yellow
durations when slow
- :white_check_mark: should highlight in red
+ ✅ should highlight in red
```
-### :white_check_mark: test/unit/errors.spec.js
+### ✅ test/unit/errors.spec.js
```
Errors createForbiddenExclusivityError() when Mocha instance is not running in a worker process
- :white_check_mark: should output a message regarding --forbid-only
+ ✅ should output a message regarding --forbid-only
Errors createForbiddenExclusivityError() when Mocha instance is running in a worker process
- :white_check_mark: should output a message regarding incompatibility
+ ✅ should output a message regarding incompatibility
Errors createInvalidInterfaceError()
- :white_check_mark: should include expected code in thrown interface errors
+ ✅ should include expected code in thrown interface errors
Errors createInvalidReporterError()
- :white_check_mark: should include expected code in thrown reporter errors
+ ✅ should include expected code in thrown reporter errors
Errors deprecate()
- :white_check_mark: should cache the message
- :white_check_mark: should coerce its parameter to a string
- :white_check_mark: should ignore falsy messages
+ ✅ should cache the message
+ ✅ should coerce its parameter to a string
+ ✅ should ignore falsy messages
Errors isMochaError() when provided a non-error
- :white_check_mark: should return false
+ ✅ should return false
Errors isMochaError() when provided an Error object having a known Mocha error code
- :white_check_mark: should return true
+ ✅ should return true
Errors isMochaError() when provided an Error object with a non-Mocha error code
- :white_check_mark: should return false
+ ✅ should return false
Errors warn()
- :white_check_mark: should call process.emitWarning
- :white_check_mark: should ignore falsy messages
- :white_check_mark: should not cache messages
+ ✅ should call process.emitWarning
+ ✅ should ignore falsy messages
+ ✅ should not cache messages
```
-### :white_check_mark: test/unit/globals.spec.js
+### ✅ test/unit/globals.spec.js
```
global leaks
- :white_check_mark: should cause tests to fail
- :white_check_mark: should pass when accepted
- :white_check_mark: should pass when prefixed "mocha-"
- :white_check_mark: should pass with wildcard
+ ✅ should cause tests to fail
+ ✅ should pass when accepted
+ ✅ should pass when prefixed "mocha-"
+ ✅ should pass with wildcard
```
-### :white_check_mark: test/unit/grep.spec.js
+### ✅ test/unit/grep.spec.js
```
Mocha .grep()
- :white_check_mark: should add a RegExp to the mocha.options object
- :white_check_mark: should convert grep string to a RegExp
- :white_check_mark: should covert grep regex-like string to a RegExp
- :white_check_mark: should return its parent Mocha object for chainability
+ ✅ should add a RegExp to the mocha.options object
+ ✅ should convert grep string to a RegExp
+ ✅ should covert grep regex-like string to a RegExp
+ ✅ should return its parent Mocha object for chainability
Mocha "fgrep" option
- :white_check_mark: should escape and convert string to a RegExp
+ ✅ should escape and convert string to a RegExp
Mocha "grep" option
- :white_check_mark: should add a RegExp to the mocha.options object
- :white_check_mark: should convert string to a RegExp
+ ✅ should add a RegExp to the mocha.options object
+ ✅ should convert string to a RegExp
Mocha "invert" option
- :white_check_mark: should add a Boolean to the mocha.options object
+ ✅ should add a Boolean to the mocha.options object
```
-### :white_check_mark: test/unit/hook-async.spec.js
+### ✅ test/unit/hook-async.spec.js
```
async hooks
- :white_check_mark: one
- :white_check_mark: three
- :white_check_mark: two
+ ✅ one
+ ✅ three
+ ✅ two
```
-### :white_check_mark: test/unit/hook-sync-nested.spec.js
+### ✅ test/unit/hook-sync-nested.spec.js
```
serial nested
- :white_check_mark: bar
- :white_check_mark: foo
+ ✅ bar
+ ✅ foo
serial nested hooks
- :white_check_mark: one
- :white_check_mark: two
+ ✅ one
+ ✅ two
```
-### :white_check_mark: test/unit/hook-sync.spec.js
+### ✅ test/unit/hook-sync.spec.js
```
serial hooks
- :white_check_mark: one
- :white_check_mark: three
- :white_check_mark: two
+ ✅ one
+ ✅ three
+ ✅ two
```
-### :white_check_mark: test/unit/hook-timeout.spec.js
+### ✅ test/unit/hook-timeout.spec.js
```
hook timeout
- :white_check_mark: should work
+ ✅ should work
```
-### :white_check_mark: test/unit/hook.spec.js
+### ✅ test/unit/hook.spec.js
```
Hook error
- :white_check_mark: should get the hook._error when called without arguments
- :white_check_mark: should set the hook._error
+ ✅ should get the hook._error when called without arguments
+ ✅ should set the hook._error
Hook reset
- :white_check_mark: should call Runnable.reset
- :white_check_mark: should reset the error state
+ ✅ should call Runnable.reset
+ ✅ should reset the error state
```
-### :white_check_mark: test/unit/mocha.spec.js
+### ✅ test/unit/mocha.spec.js
```
Mocha constructor
- :white_check_mark: should set _cleanReferencesAfterRun to true
+ ✅ should set _cleanReferencesAfterRun to true
Mocha constructor when `global` option is an `Array`
- :white_check_mark: should attempt to set globals
+ ✅ should attempt to set globals
Mocha constructor when `parallel` option is true and `jobs` option <= 1
- :white_check_mark: should not enable parallel mode
+ ✅ should not enable parallel mode
Mocha constructor when `parallel` option is true and `jobs` option > 1
- :white_check_mark: should enable parallel mode
+ ✅ should enable parallel mode
Mocha constructor when `parallel` option is true when `enableGlobalSetup` option is present
- :white_check_mark: should toggle global setup fixtures
+ ✅ should toggle global setup fixtures
Mocha constructor when `parallel` option is true when `enableGlobalTeardown` option is present
- :white_check_mark: should configure global teardown fixtures
+ ✅ should configure global teardown fixtures
Mocha constructor when `parallel` option is true when `globalSetup` option is present
- :white_check_mark: should configure global setup fixtures
+ ✅ should configure global setup fixtures
Mocha constructor when `parallel` option is true when `globalTeardown` option is present
- :white_check_mark: should configure global teardown fixtures
+ ✅ should configure global teardown fixtures
Mocha constructor when `retries` option is not present
- :white_check_mark: should not attempt to set retries
+ ✅ should not attempt to set retries
Mocha constructor when `retries` option is present
- :white_check_mark: should attempt to set retries`
+ ✅ should attempt to set retries`
Mocha constructor when `rootHooks` option is truthy
- :white_check_mark: shouid attempt to set root hooks
+ ✅ shouid attempt to set root hooks
Mocha constructor when `timeout` option is `false`
- :white_check_mark: should attempt to set timeout
+ ✅ should attempt to set timeout
Mocha constructor when `timeout` option is `undefined`
- :white_check_mark: should not attempt to set timeout
+ ✅ should not attempt to set timeout
Mocha instance method _runGlobalFixtures()
- :white_check_mark: should execute multiple fixtures in order
+ ✅ should execute multiple fixtures in order
Mocha instance method allowUncaught()
- :white_check_mark: should be chainable
- :white_check_mark: should set the allowUncaught option to false
- :white_check_mark: should set the allowUncaught option to true
+ ✅ should be chainable
+ ✅ should set the allowUncaught option to false
+ ✅ should set the allowUncaught option to true
Mocha instance method asyncOnly()
- :white_check_mark: should be chainable
- :white_check_mark: should set the asyncOnly option to false
- :white_check_mark: should set the asyncOnly option to true
+ ✅ should be chainable
+ ✅ should set the asyncOnly option to false
+ ✅ should set the asyncOnly option to true
Mocha instance method bail()
- :white_check_mark: should be chainable
+ ✅ should be chainable
Mocha instance method bail() when provided a falsy argument
- :white_check_mark: should unset the "bail" flag on the root suite
+ ✅ should unset the "bail" flag on the root suite
Mocha instance method bail() when provided no arguments
- :white_check_mark: should set the "bail" flag on the root suite
+ ✅ should set the "bail" flag on the root suite
Mocha instance method checkLeaks()
- :white_check_mark: should set the checkLeaks option to true
+ ✅ should set the checkLeaks option to true
Mocha instance method cleanReferencesAfterRun()
- :white_check_mark: should be chainable
- :white_check_mark: should set the _cleanReferencesAfterRun attribute
- :white_check_mark: should set the _cleanReferencesAfterRun attribute to false
+ ✅ should be chainable
+ ✅ should set the _cleanReferencesAfterRun attribute
+ ✅ should set the _cleanReferencesAfterRun attribute to false
Mocha instance method color()
- :white_check_mark: should be chainable
- :white_check_mark: should set the color option to false
- :white_check_mark: should set the color option to true
+ ✅ should be chainable
+ ✅ should set the color option to false
+ ✅ should set the color option to true
Mocha instance method delay()
- :white_check_mark: should be chainable
- :white_check_mark: should set the delay option to true
+ ✅ should be chainable
+ ✅ should set the delay option to true
Mocha instance method diff()
- :white_check_mark: should set the diff option to true
+ ✅ should set the diff option to true
Mocha instance method diff() when provided `false` argument
- :white_check_mark: should set the diff option to false
+ ✅ should set the diff option to false
Mocha instance method dispose()
- :white_check_mark: should dispose previous test runner
- :white_check_mark: should dispose the root suite
- :white_check_mark: should unload the files
+ ✅ should dispose previous test runner
+ ✅ should dispose the root suite
+ ✅ should unload the files
Mocha instance method forbidOnly()
- :white_check_mark: should be chainable
- :white_check_mark: should set the forbidOnly option to false
- :white_check_mark: should set the forbidOnly option to true
+ ✅ should be chainable
+ ✅ should set the forbidOnly option to false
+ ✅ should set the forbidOnly option to true
Mocha instance method forbidPending()
- :white_check_mark: should be chainable
- :white_check_mark: should set the forbidPending option to false
- :white_check_mark: should set the forbidPending option to true
+ ✅ should be chainable
+ ✅ should set the forbidPending option to false
+ ✅ should set the forbidPending option to true
Mocha instance method fullTrace()
- :white_check_mark: should be chainable
- :white_check_mark: should set the fullTrace option to false
- :white_check_mark: should set the fullTrace option to true
+ ✅ should be chainable
+ ✅ should set the fullTrace option to false
+ ✅ should set the fullTrace option to true
Mocha instance method global()
- :white_check_mark: should be an empty array initially
- :white_check_mark: should be chainable
+ ✅ should be an empty array initially
+ ✅ should be chainable
Mocha instance method global() when argument is invalid
- :white_check_mark: should not modify the whitelist when given empty array
- :white_check_mark: should not modify the whitelist when given empty string
+ ✅ should not modify the whitelist when given empty array
+ ✅ should not modify the whitelist when given empty string
Mocha instance method global() when argument is valid
- :white_check_mark: should add contents of string array to the whitelist
- :white_check_mark: should add string to the whitelist
- :white_check_mark: should not have duplicates
+ ✅ should add contents of string array to the whitelist
+ ✅ should add string to the whitelist
+ ✅ should not have duplicates
Mocha instance method growl()
- :white_check_mark: should be chainable
+ ✅ should be chainable
Mocha instance method growl() if capable of notifications
- :white_check_mark: should set the growl option to true
+ ✅ should set the growl option to true
Mocha instance method growl() if not capable of notifications
- :white_check_mark: should set the growl option to false
+ ✅ should set the growl option to false
Mocha instance method hasGlobalSetupFixtures() when no global setup fixtures are present
- :white_check_mark: should return `false`
+ ✅ should return `false`
Mocha instance method hasGlobalSetupFixtures() when one or more global setup fixtures are present
- :white_check_mark: should return `true`
+ ✅ should return `true`
Mocha instance method hasGlobalTeardownFixtures() when no global teardown fixtures are present
- :white_check_mark: should return `false`
+ ✅ should return `false`
Mocha instance method hasGlobalTeardownFixtures() when one or more global teardown fixtures are present
- :white_check_mark: should return `true`
+ ✅ should return `true`
Mocha instance method inlineDiffs()
- :white_check_mark: should be chainable
- :white_check_mark: should set the inlineDiffs option to false
- :white_check_mark: should set the inlineDiffs option to true
+ ✅ should be chainable
+ ✅ should set the inlineDiffs option to false
+ ✅ should set the inlineDiffs option to true
Mocha instance method invert()
- :white_check_mark: should be chainable
- :white_check_mark: should set the invert option to true
+ ✅ should be chainable
+ ✅ should set the invert option to true
Mocha instance method noHighlighting()
- :white_check_mark: should be chainable
- :white_check_mark: should set the noHighlighting option to true
+ ✅ should be chainable
+ ✅ should set the noHighlighting option to true
Mocha instance method parallelMode() when `Mocha` is running in a browser
- :white_check_mark: should throw
+ ✅ should throw
Mocha instance method reporter()
- :white_check_mark: should be chainable
- :white_check_mark: should keep reporterOption on options
- :white_check_mark: should support legacy reporterOptions
+ ✅ should be chainable
+ ✅ should keep reporterOption on options
+ ✅ should support legacy reporterOptions
Mocha instance method rootHooks()
- :white_check_mark: should be chainable
+ ✅ should be chainable
Mocha instance method rootHooks() when provided a single "after all" hook
- :white_check_mark: should attach it to the root suite
+ ✅ should attach it to the root suite
Mocha instance method rootHooks() when provided a single "after each" hook
- :white_check_mark: should attach it to the root suite
+ ✅ should attach it to the root suite
Mocha instance method rootHooks() when provided a single "before all" hook
- :white_check_mark: should attach it to the root suite
+ ✅ should attach it to the root suite
Mocha instance method rootHooks() when provided a single "before each" hook
- :white_check_mark: should attach it to the root suite
+ ✅ should attach it to the root suite
Mocha instance method rootHooks() when provided multiple "after all" hooks
- :white_check_mark: should attach each to the root suite
+ ✅ should attach each to the root suite
Mocha instance method rootHooks() when provided multiple "after each" hooks
- :white_check_mark: should attach each to the root suite
+ ✅ should attach each to the root suite
Mocha instance method rootHooks() when provided multiple "before all" hooks
- :white_check_mark: should attach each to the root suite
+ ✅ should attach each to the root suite
Mocha instance method rootHooks() when provided multiple "before each" hooks
- :white_check_mark: should attach each to the root suite
+ ✅ should attach each to the root suite
Mocha instance method run()
- :white_check_mark: should execute the callback when complete
- :warning: should initialize the stats collector
- :white_check_mark: should instantiate a reporter
+ ✅ should execute the callback when complete
+ ⚪ should initialize the stats collector
+ ✅ should instantiate a reporter
Mocha instance method run() Base reporter initialization
- :white_check_mark: should configure the Base reporter
+ ✅ should configure the Base reporter
Mocha instance method run() Base reporter initialization when "color" options is set
- :white_check_mark: should configure the Base reporter
+ ✅ should configure the Base reporter
Mocha instance method run() Runner initialization
- :white_check_mark: should instantiate a Runner
+ ✅ should instantiate a Runner
Mocha instance method run() Runner initialization when "global" option is present
- :white_check_mark: should configure global vars
+ ✅ should configure global vars
Mocha instance method run() Runner initialization when "grep" option is present
- :white_check_mark: should configure "grep"
+ ✅ should configure "grep"
Mocha instance method run() when "growl" option is present
- :white_check_mark: should initialize growl support
+ ✅ should initialize growl support
Mocha instance method run() when a reporter instance has a "done" method
- :white_check_mark: should call the reporter "done" method
+ ✅ should call the reporter "done" method
Mocha instance method run() when a run has finished and is called again
- :white_check_mark: should not call `Runner#runAsync()`
- :white_check_mark: should throw
+ ✅ should not call `Runner#runAsync()`
+ ✅ should throw
Mocha instance method run() when a run is in progress
- :white_check_mark: should not call `Runner#runAsync`
- :white_check_mark: should throw
+ ✅ should not call `Runner#runAsync`
+ ✅ should throw
Mocha instance method run() when files have been added to the Mocha instance when Mocha is set to eagerly load files
- :white_check_mark: should eagerly load files
+ ✅ should eagerly load files
Mocha instance method run() when files have been added to the Mocha instance when Mocha is set to lazily load files
- :white_check_mark: should not eagerly load files
+ ✅ should not eagerly load files
Mocha instance method run() when global setup fixtures disabled when global setup fixtures are present
- :white_check_mark: should not run global setup fixtures
+ ✅ should not run global setup fixtures
Mocha instance method run() when global setup fixtures disabled when global setup fixtures not present
- :white_check_mark: should not run global setup fixtures
+ ✅ should not run global setup fixtures
Mocha instance method run() when global setup fixtures enabled when global setup fixtures are present
- :white_check_mark: should run global setup fixtures
+ ✅ should run global setup fixtures
Mocha instance method run() when global setup fixtures enabled when global setup fixtures not present
- :white_check_mark: should not run global setup fixtures
+ ✅ should not run global setup fixtures
Mocha instance method run() when global teardown fixtures disabled when global teardown fixtures are present
- :white_check_mark: should not run global teardown fixtures
+ ✅ should not run global teardown fixtures
Mocha instance method run() when global teardown fixtures disabled when global teardown fixtures not present
- :white_check_mark: should not run global teardown fixtures
+ ✅ should not run global teardown fixtures
Mocha instance method run() when global teardown fixtures enabled when global teardown fixtures are present
- :white_check_mark: should run global teardown fixtures
+ ✅ should run global teardown fixtures
Mocha instance method run() when global teardown fixtures enabled when global teardown fixtures are present when global setup fixtures are present and enabled
- :white_check_mark: should use the same context as returned by `runGlobalSetup`
+ ✅ should use the same context as returned by `runGlobalSetup`
Mocha instance method run() when global teardown fixtures enabled when global teardown fixtures not present
- :white_check_mark: should not run global teardown fixtures
+ ✅ should not run global teardown fixtures
Mocha instance method run() when Mocha configured for multiple runs and multiple runs are attempted
- :white_check_mark: should call `Runner#runAsync` for each call
- :white_check_mark: should dispose the previous runner
- :white_check_mark: should not throw
- :white_check_mark: should reset the root Suite between runs
+ ✅ should call `Runner#runAsync` for each call
+ ✅ should dispose the previous runner
+ ✅ should not throw
+ ✅ should reset the root Suite between runs
Mocha instance method run() when the `Mocha` instance is already disposed
- :white_check_mark: should not call `Runner#runAsync`
- :white_check_mark: should throw
+ ✅ should not call `Runner#runAsync`
+ ✅ should throw
Mocha instance method runGlobalSetup() when a fixture is not present
- :white_check_mark: should not attempt to run fixtures
+ ✅ should not attempt to run fixtures
Mocha instance method runGlobalSetup() when fixture(s) are present
- :white_check_mark: should attempt run the fixtures
+ ✅ should attempt run the fixtures
Mocha instance method runGlobalTeardown() when a fixture is not present
- :white_check_mark: not attempt to run the fixtures
+ ✅ not attempt to run the fixtures
Mocha instance method runGlobalTeardown() when fixture(s) are present
- :white_check_mark: should attempt to run the fixtures
+ ✅ should attempt to run the fixtures
Mocha instance method unloadFile() when run in a browser
- :white_check_mark: should throw
+ ✅ should throw
```
-### :white_check_mark: test/unit/overspecified-async.spec.js
+### ✅ test/unit/overspecified-async.spec.js
```
overspecified asynchronous resolution method
- :white_check_mark: should fail when multiple methods are used
+ ✅ should fail when multiple methods are used
```
-### :white_check_mark: test/unit/parse-query.spec.js
+### ✅ test/unit/parse-query.spec.js
```
parseQuery()
- :white_check_mark: should get queryString and return key-value object
- :white_check_mark: should parse "+" as a space
+ ✅ should get queryString and return key-value object
+ ✅ should parse "+" as a space
```
-### :white_check_mark: test/unit/plugin-loader.spec.js
+### ✅ test/unit/plugin-loader.spec.js
```
plugin module class PluginLoader constructor when passed custom plugins
- :white_check_mark: should register the custom plugins
+ ✅ should register the custom plugins
plugin module class PluginLoader constructor when passed ignored plugins
- :white_check_mark: should retain a list of ignored plugins
+ ✅ should retain a list of ignored plugins
plugin module class PluginLoader constructor when passed no options
- :white_check_mark: should populate a registry of built-in plugins
+ ✅ should populate a registry of built-in plugins
plugin module class PluginLoader instance method finalize() when a plugin has no "finalize" function
- :white_check_mark: should return an array of raw implementations
+ ✅ should return an array of raw implementations
plugin module class PluginLoader instance method finalize() when a plugin has one or more implementations
- :white_check_mark: should omit unused plugins
- :white_check_mark: should return an object map using `optionName` key for each registered plugin
+ ✅ should omit unused plugins
+ ✅ should return an object map using `optionName` key for each registered plugin
plugin module class PluginLoader instance method finalize() when no plugins have been loaded
- :white_check_mark: should return an empty map
+ ✅ should return an empty map
plugin module class PluginLoader instance method load() when called with a falsy value
- :white_check_mark: should return false
+ ✅ should return false
plugin module class PluginLoader instance method load() when called with an object containing a recognized plugin
- :white_check_mark: should call the associated validator, if present
- :white_check_mark: should retain the value of any matching property in its mapping
- :white_check_mark: should return true
+ ✅ should call the associated validator, if present
+ ✅ should retain the value of any matching property in its mapping
+ ✅ should return true
plugin module class PluginLoader instance method load() when called with an object containing no recognized plugin
- :white_check_mark: should return false
+ ✅ should return false
plugin module class PluginLoader instance method load() when passed a falsy or non-object value
- :white_check_mark: should not call a validator
- :white_check_mark: should return false
+ ✅ should not call a validator
+ ✅ should return false
plugin module class PluginLoader instance method load() when passed an object value when a key matches a known named export
- :white_check_mark: should call the associated validator
- :white_check_mark: should not call validators whose keys were not found
+ ✅ should call the associated validator
+ ✅ should not call validators whose keys were not found
plugin module class PluginLoader instance method load() when passed an object value when a key matches a known named export when the value does not pass the associated validator
- :white_check_mark: should throw
+ ✅ should throw
plugin module class PluginLoader instance method load() when passed an object value when a key matches a known named export when the value passes the associated validator
- :white_check_mark: should add the implementation to the internal mapping
- :white_check_mark: should not add an implementation of plugins not present
- :white_check_mark: should return true
+ ✅ should add the implementation to the internal mapping
+ ✅ should not add an implementation of plugins not present
+ ✅ should return true
plugin module class PluginLoader instance method load() when passed an object value when no keys match any known named exports
- :white_check_mark: should return false
+ ✅ should return false
plugin module class PluginLoader instance method register() when passed a definition w/o an exportName
- :white_check_mark: should throw
+ ✅ should throw
plugin module class PluginLoader instance method register() when passed a falsy parameter
- :white_check_mark: should throw
+ ✅ should throw
plugin module class PluginLoader instance method register() when passed a non-object parameter
- :white_check_mark: should throw
+ ✅ should throw
plugin module class PluginLoader instance method register() when the plugin export name is already in use
- :white_check_mark: should throw
+ ✅ should throw
plugin module class PluginLoader instance method register() when the plugin export name is ignored
- :white_check_mark: should not register the plugin
- :white_check_mark: should not throw
+ ✅ should not register the plugin
+ ✅ should not throw
plugin module class PluginLoader instance method register() when the plugin export name is not in use
- :white_check_mark: should not throw
+ ✅ should not throw
plugin module class PluginLoader static method create()
- :white_check_mark: should return a PluginLoader instance
+ ✅ should return a PluginLoader instance
plugin module global fixtures plugin global setup when an implementation is a function
- :white_check_mark: should pass validation
+ ✅ should pass validation
plugin module global fixtures plugin global setup when an implementation is a primitive
- :white_check_mark: should fail validation
+ ✅ should fail validation
plugin module global fixtures plugin global setup when an implementation is an array of functions
- :white_check_mark: should pass validation
+ ✅ should pass validation
plugin module global fixtures plugin global setup when an implementation is an array of primitives
- :white_check_mark: should fail validation
+ ✅ should fail validation
plugin module global fixtures plugin global teardown when an implementation is a function
- :white_check_mark: should pass validation
+ ✅ should pass validation
plugin module global fixtures plugin global teardown when an implementation is a primitive
- :white_check_mark: should fail validation
+ ✅ should fail validation
plugin module global fixtures plugin global teardown when an implementation is an array of functions
- :white_check_mark: should pass validation
+ ✅ should pass validation
plugin module global fixtures plugin global teardown when an implementation is an array of primitives
- :white_check_mark: should fail validation
+ ✅ should fail validation
plugin module root hooks plugin 🎣 when a loaded impl is finalized
- :white_check_mark: should flatten the implementations
+ ✅ should flatten the implementations
plugin module root hooks plugin 🎣 when impl is a function
- :white_check_mark: should pass validation
+ ✅ should pass validation
plugin module root hooks plugin 🎣 when impl is a primitive
- :white_check_mark: should fail validation
+ ✅ should fail validation
plugin module root hooks plugin 🎣 when impl is an array
- :white_check_mark: should fail validation
+ ✅ should fail validation
plugin module root hooks plugin 🎣 when impl is an object of functions
- :warning: should pass validation
+ ⚪ should pass validation
```
-### :white_check_mark: test/unit/required-tokens.spec.js
+### ✅ test/unit/required-tokens.spec.js
```
using imported describe
- :white_check_mark: using imported it
+ ✅ using imported it
```
-### :white_check_mark: test/unit/root.spec.js
+### ✅ test/unit/root.spec.js
```
root
- :white_check_mark: should be a valid suite
+ ✅ should be a valid suite
```
-### :white_check_mark: test/unit/runnable.spec.js
+### ✅ test/unit/runnable.spec.js
```
Runnable(title, fn) .run(fn) if async
- :white_check_mark: this.skip() should halt synchronous execution
- :white_check_mark: this.skip() should set runnable to pending
+ ✅ this.skip() should halt synchronous execution
+ ✅ this.skip() should set runnable to pending
Runnable(title, fn) .run(fn) if timed-out
- :white_check_mark: should ignore call to `done` and not execute callback again
+ ✅ should ignore call to `done` and not execute callback again
Runnable(title, fn) .run(fn) when .pending
- :white_check_mark: should not invoke the callback
+ ✅ should not invoke the callback
Runnable(title, fn) .run(fn) when async
- :white_check_mark: should allow a timeout of 0
- :white_check_mark: should allow updating the timeout
+ ✅ should allow a timeout of 0
+ ✅ should allow updating the timeout
Runnable(title, fn) .run(fn) when async when an error is passed
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when async when an exception is thrown
- :white_check_mark: should invoke the callback
- :white_check_mark: should not throw its own exception if passed a non-object
+ ✅ should invoke the callback
+ ✅ should not throw its own exception if passed a non-object
Runnable(title, fn) .run(fn) when async when an exception is thrown and is allowed to remain uncaught
- :white_check_mark: throws an error when it is allowed
+ ✅ throws an error when it is allowed
Runnable(title, fn) .run(fn) when async when done() is invoked with a non-Error object
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when async when done() is invoked with a string
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when async when the callback is invoked several times with an error
- :white_check_mark: should emit a single "error" event
+ ✅ should emit a single "error" event
Runnable(title, fn) .run(fn) when async when the callback is invoked several times without an error
- :white_check_mark: should emit a single "error" event
+ ✅ should emit a single "error" event
Runnable(title, fn) .run(fn) when async without error
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when fn is not a function
- :white_check_mark: should throw an error
+ ✅ should throw an error
Runnable(title, fn) .run(fn) when fn returns a non-promise
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when fn returns a promise when the promise is fulfilled with a value
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when fn returns a promise when the promise is fulfilled with no value
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when fn returns a promise when the promise is rejected
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when fn returns a promise when the promise is rejected without a reason
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when fn returns a promise when the promise takes too long to settle
- :white_check_mark: should throw the timeout error
+ ✅ should throw the timeout error
Runnable(title, fn) .run(fn) when sync when an exception is thrown
- :white_check_mark: should invoke the callback with error
+ ✅ should invoke the callback with error
Runnable(title, fn) .run(fn) when sync when an exception is thrown and is allowed to remain uncaught
- :white_check_mark: throws an error when it is allowed
+ ✅ throws an error when it is allowed
Runnable(title, fn) .run(fn) when sync without error
- :white_check_mark: should invoke the callback
+ ✅ should invoke the callback
Runnable(title, fn) .run(fn) when timeouts are disabled
- :white_check_mark: should not error with timeout
+ ✅ should not error with timeout
Runnable(title, fn) .title
- :white_check_mark: should be present
+ ✅ should be present
Runnable(title, fn) .titlePath()
- :white_check_mark: returns the concatenation of the parent's title path and runnable's title
+ ✅ returns the concatenation of the parent's title path and runnable's title
Runnable(title, fn) #globals
- :white_check_mark: should allow for whitelisting globals
+ ✅ should allow for whitelisting globals
Runnable(title, fn) #isFailed()
- :white_check_mark: should return `false` if test is pending
- :white_check_mark: should return `true` if test has failed
- :white_check_mark: should return `true` if test has not failed
+ ✅ should return `false` if test is pending
+ ✅ should return `true` if test has failed
+ ✅ should return `true` if test has not failed
Runnable(title, fn) #reset
- :white_check_mark: should reset current run state
+ ✅ should reset current run state
Runnable(title, fn) #resetTimeout()
- :white_check_mark: should not time out if timeouts disabled after reset
+ ✅ should not time out if timeouts disabled after reset
Runnable(title, fn) #retries(n)
- :white_check_mark: should set the number of retries
+ ✅ should set the number of retries
Runnable(title, fn) #slow(ms)
- :white_check_mark: should not set the slow threshold if the parameter is not passed
- :white_check_mark: should not set the slow threshold if the parameter is undefined
- :white_check_mark: should set the slow threshold
+ ✅ should not set the slow threshold if the parameter is not passed
+ ✅ should not set the slow threshold if the parameter is undefined
+ ✅ should set the slow threshold
Runnable(title, fn) #slow(ms) when passed a time-formatted string
- :white_check_mark: should convert to ms
+ ✅ should convert to ms
Runnable(title, fn) #timeout(ms) when value is equal to lower bound given numeric value
- :white_check_mark: should set the timeout value to disabled
+ ✅ should set the timeout value to disabled
Runnable(title, fn) #timeout(ms) when value is equal to lower bound given string timestamp
- :white_check_mark: should set the timeout value to disabled
+ ✅ should set the timeout value to disabled
Runnable(title, fn) #timeout(ms) when value is equal to upper bound given numeric value
- :white_check_mark: should set the disabled timeout value
+ ✅ should set the disabled timeout value
Runnable(title, fn) #timeout(ms) when value is less than lower bound
- :white_check_mark: should clamp to lower bound given numeric
- :white_check_mark: should clamp to lower bound given timestamp
+ ✅ should clamp to lower bound given numeric
+ ✅ should clamp to lower bound given timestamp
Runnable(title, fn) #timeout(ms) when value is out-of-bounds given numeric value
- :white_check_mark: should set the disabled timeout value
+ ✅ should set the disabled timeout value
Runnable(title, fn) #timeout(ms) when value is within `setTimeout` bounds given numeric value
- :white_check_mark: should set the timeout value
+ ✅ should set the timeout value
Runnable(title, fn) #timeout(ms) when value is within `setTimeout` bounds given string timestamp
- :white_check_mark: should set the timeout value
+ ✅ should set the timeout value
Runnable(title, fn) interesting property id
- :white_check_mark: should have a permanent identifier
- :white_check_mark: should have a unique identifier
+ ✅ should have a permanent identifier
+ ✅ should have a unique identifier
Runnable(title, fn) static method toValueOrError
- :white_check_mark: should return an Error if parameter is falsy
- :white_check_mark: should return identity if parameter is truthy
+ ✅ should return an Error if parameter is falsy
+ ✅ should return identity if parameter is truthy
Runnable(title, fn) when arity == 0
- :white_check_mark: should be .sync
- :white_check_mark: should not be .async
+ ✅ should be .sync
+ ✅ should not be .async
Runnable(title, fn) when arity >= 1
- :white_check_mark: should be .async
- :white_check_mark: should not be .sync
+ ✅ should be .async
+ ✅ should not be .sync
```
-### :white_check_mark: test/unit/runner.spec.js
+### ✅ test/unit/runner.spec.js
```
Runner instance method _uncaught() when called with a non-Runner context
- :white_check_mark: should throw
+ ✅ should throw
Runner instance method abort()
- :white_check_mark: should return the Runner
- :white_check_mark: should set _abort property to true
+ ✅ should return the Runner
+ ✅ should set _abort property to true
Runner instance method allowUncaught()
- :white_check_mark: async - should allow unhandled errors in hooks to propagate through
- :white_check_mark: should allow unhandled errors in sync hooks to propagate through
- :white_check_mark: should allow unhandled errors to propagate through
- :white_check_mark: should not allow unhandled errors in sync hooks to propagate through
+ ✅ async - should allow unhandled errors in hooks to propagate through
+ ✅ should allow unhandled errors in sync hooks to propagate through
+ ✅ should allow unhandled errors to propagate through
+ ✅ should not allow unhandled errors in sync hooks to propagate through
Runner instance method checkGlobals(test)
- :white_check_mark: should allow variables that match a wildcard
- :white_check_mark: should emit "fail" when a global beginning with "d" is introduced
- :white_check_mark: should emit "fail" when a new global is introduced
- :white_check_mark: should emit "fail" when a single new disallowed global is introduced after a single extra global is allowed
- :white_check_mark: should not fail when a new common global is introduced
- :white_check_mark: should pluralize the error message when several are introduced
- :white_check_mark: should respect per test whitelisted globals
- :white_check_mark: should respect per test whitelisted globals but still detect other leaks
+ ✅ should allow variables that match a wildcard
+ ✅ should emit "fail" when a global beginning with "d" is introduced
+ ✅ should emit "fail" when a new global is introduced
+ ✅ should emit "fail" when a single new disallowed global is introduced after a single extra global is allowed
+ ✅ should not fail when a new common global is introduced
+ ✅ should pluralize the error message when several are introduced
+ ✅ should respect per test whitelisted globals
+ ✅ should respect per test whitelisted globals but still detect other leaks
Runner instance method dispose()
- :white_check_mark: should remove "error" listeners from a test
- :white_check_mark: should remove "uncaughtException" listeners from the process
- :white_check_mark: should remove all listeners from itself
+ ✅ should remove "error" listeners from a test
+ ✅ should remove "uncaughtException" listeners from the process
+ ✅ should remove all listeners from itself
Runner instance method fail()
- :white_check_mark: should emit "fail"
- :white_check_mark: should emit "fail"
- :white_check_mark: should emit a helpful message when failed with a string
- :white_check_mark: should emit a helpful message when failed with an Array
- :white_check_mark: should emit a helpful message when failed with an Object
- :white_check_mark: should emit a the error when failed with an Error instance
- :white_check_mark: should emit the error when failed with an Error-like object
- :white_check_mark: should increment .failures
- :white_check_mark: should increment `Runner#failures`
- :white_check_mark: should not emit "end" if suite bail is not true
- :white_check_mark: should recover if the error stack is not writable
- :white_check_mark: should return and not increment failures when test is pending
- :white_check_mark: should set `Test#state` to "failed"
+ ✅ should emit "fail"
+ ✅ should emit "fail"
+ ✅ should emit a helpful message when failed with a string
+ ✅ should emit a helpful message when failed with an Array
+ ✅ should emit a helpful message when failed with an Object
+ ✅ should emit a the error when failed with an Error instance
+ ✅ should emit the error when failed with an Error-like object
+ ✅ should increment .failures
+ ✅ should increment `Runner#failures`
+ ✅ should not emit "end" if suite bail is not true
+ ✅ should recover if the error stack is not writable
+ ✅ should return and not increment failures when test is pending
+ ✅ should set `Test#state` to "failed"
Runner instance method fail() when Runner has stopped when test is not pending when error is not of the "multiple done" variety
- :white_check_mark: should throw a "fatal" error
+ ✅ should throw a "fatal" error
Runner instance method fail() when Runner has stopped when test is not pending when error is the "multiple done" variety
- :white_check_mark: should throw the "multiple done" error
+ ✅ should throw the "multiple done" error
Runner instance method globalProps()
- :white_check_mark: should include common non enumerable globals
+ ✅ should include common non enumerable globals
Runner instance method globals()
- :white_check_mark: should default to the known globals
- :white_check_mark: should white-list globals
+ ✅ should default to the known globals
+ ✅ should white-list globals
Runner instance method grep()
- :white_check_mark: should update the runner.total with number of matched tests
- :white_check_mark: should update the runner.total with number of matched tests when inverted
+ ✅ should update the runner.total with number of matched tests
+ ✅ should update the runner.total with number of matched tests when inverted
Runner instance method grepTotal()
- :white_check_mark: should return the total number of matched tests
- :white_check_mark: should return the total number of matched tests when inverted
+ ✅ should return the total number of matched tests
+ ✅ should return the total number of matched tests when inverted
Runner instance method hook()
- :white_check_mark: should augment hook title with current test title
- :white_check_mark: should execute hooks after failed test if suite bail is true
+ ✅ should augment hook title with current test title
+ ✅ should execute hooks after failed test if suite bail is true
Runner instance method isParallelMode()
- :white_check_mark: should return false
+ ✅ should return false
Runner instance method linkPartialObjects()
- :white_check_mark: should return the Runner
+ ✅ should return the Runner
Runner instance method run()
- :white_check_mark: should clean references after a run
- :white_check_mark: should emit "retry" when a retryable test fails
- :white_check_mark: should not clean references after a run when `cleanReferencesAfterRun` is `false`
- :white_check_mark: should not leak `Process.uncaughtException` listeners
- :white_check_mark: should not throw an exception if something emits EVENT_TEST_END with a non-Test object
+ ✅ should clean references after a run
+ ✅ should emit "retry" when a retryable test fails
+ ✅ should not clean references after a run when `cleanReferencesAfterRun` is `false`
+ ✅ should not leak `Process.uncaughtException` listeners
+ ✅ should not throw an exception if something emits EVENT_TEST_END with a non-Test object
Runner instance method run() stack traces ginormous
- :white_check_mark: should not hang if overlong error message is multiple lines
- :white_check_mark: should not hang if overlong error message is single line
+ ✅ should not hang if overlong error message is multiple lines
+ ✅ should not hang if overlong error message is single line
Runner instance method run() stack traces long
- :white_check_mark: should display the full stack-trace
+ ✅ should display the full stack-trace
Runner instance method run() stack traces short
- :white_check_mark: should prettify the stack-trace
+ ✅ should prettify the stack-trace
Runner instance method runAsync()
- :white_check_mark: should pass through options to Runner#run
- :white_check_mark: should return a Promise with a failure count
+ ✅ should pass through options to Runner#run
+ ✅ should return a Promise with a failure count
Runner instance method runTest()
- :white_check_mark: should return when no tests to run
+ ✅ should return when no tests to run
Runner instance method uncaught() when allow-uncaught is set to true
- :white_check_mark: should propagate error and throw
+ ✅ should propagate error and throw
Runner instance method uncaught() when provided an object argument when argument is a Pending
- :white_check_mark: should ignore argument and return
+ ✅ should ignore argument and return
Runner instance method uncaught() when provided an object argument when argument is an Error
- :white_check_mark: should add the "uncaught" property to the Error
+ ✅ should add the "uncaught" property to the Error
Runner instance method uncaught() when provided an object argument when argument is an Error when a Runnable is running or has run
- :white_check_mark: should clear any pending timeouts
+ ✅ should clear any pending timeouts
Runner instance method uncaught() when provided an object argument when argument is an Error when a Runnable is running or has run when current Runnable has already failed
- :white_check_mark: should not attempt to fail again
+ ✅ should not attempt to fail again
Runner instance method uncaught() when provided an object argument when argument is an Error when a Runnable is running or has run when current Runnable has been marked pending
- :white_check_mark: should attempt to fail
+ ✅ should attempt to fail
Runner instance method uncaught() when provided an object argument when argument is an Error when a Runnable is running or has run when the current Runnable has already passed
- :white_check_mark: should abort the runner without emitting end event
- :white_check_mark: should fail with the current Runnable and the error
+ ✅ should abort the runner without emitting end event
+ ✅ should fail with the current Runnable and the error
Runner instance method uncaught() when provided an object argument when argument is an Error when a Runnable is running or has run when the current Runnable is still running when the current Runnable is a Hook
- :white_check_mark: should not notify run has ended
- :white_check_mark: should not notify test has ended
- :white_check_mark: should run callback(err) to handle failing hook pattern
+ ✅ should not notify run has ended
+ ✅ should not notify test has ended
+ ✅ should run callback(err) to handle failing hook pattern
Runner instance method uncaught() when provided an object argument when argument is an Error when a Runnable is running or has run when the current Runnable is still running when the current Runnable is a Test
- :white_check_mark: should not notify run has ended
- :white_check_mark: should not notify test has ended
- :white_check_mark: should run callback(err) to handle failing and hooks
+ ✅ should not notify run has ended
+ ✅ should not notify test has ended
+ ✅ should run callback(err) to handle failing and hooks
Runner instance method uncaught() when provided an object argument when argument is an Error when no Runnables are running
- :white_check_mark: should fail with a transient Runnable and the error
+ ✅ should fail with a transient Runnable and the error
Runner instance method uncaught() when provided an object argument when argument is an Error when no Runnables are running when Runner is IDLE
- :white_check_mark: should emit start/end events for the benefit of reporters
+ ✅ should emit start/end events for the benefit of reporters
Runner instance method uncaught() when provided an object argument when argument is an Error when no Runnables are running when Runner is RUNNING
- :white_check_mark: should not emit start/end events
+ ✅ should not emit start/end events
Runner instance method uncaught() when provided an object argument when argument is an Error when no Runnables are running when Runner is STOPPED
- :white_check_mark: should not emit start/end events, since this presumably would have already happened
- :white_check_mark: should throw
+ ✅ should not emit start/end events, since this presumably would have already happened
+ ✅ should throw
Runner instance method uncaught() when provided an object argument when argument is not an Error
- :white_check_mark: should fail with a transient Runnable and a new Error coerced from the object
+ ✅ should fail with a transient Runnable and a new Error coerced from the object
Runner instance method workerReporter()
- :white_check_mark: should throw
+ ✅ should throw
```
-### :white_check_mark: test/unit/suite.spec.js
+### ✅ test/unit/suite.spec.js
```
Suite instance method addSuite()
- :white_check_mark: adds the suite to the suites collection
- :white_check_mark: copies the slow value
- :white_check_mark: copies the timeout value
- :white_check_mark: sets the parent on the added Suite
- :white_check_mark: treats suite as pending if its parent is pending
+ ✅ adds the suite to the suites collection
+ ✅ copies the slow value
+ ✅ copies the timeout value
+ ✅ sets the parent on the added Suite
+ ✅ treats suite as pending if its parent is pending
Suite instance method addTest()
- :white_check_mark: adds the test to the tests collection
- :white_check_mark: copies the timeout value
- :white_check_mark: sets the parent on the added test
+ ✅ adds the test to the tests collection
+ ✅ copies the timeout value
+ ✅ sets the parent on the added test
Suite instance method afterAll() wraps the passed in function in a Hook
- :white_check_mark: adds it to _afterAll
- :white_check_mark: appends title to hook
- :white_check_mark: uses function name if available
+ ✅ adds it to _afterAll
+ ✅ appends title to hook
+ ✅ uses function name if available
Suite instance method afterEach() wraps the passed in function in a Hook
- :white_check_mark: adds it to _afterEach
- :white_check_mark: appends title to hook
- :white_check_mark: uses function name if available
+ ✅ adds it to _afterEach
+ ✅ appends title to hook
+ ✅ uses function name if available
Suite instance method bail() when argument is passed
- :white_check_mark: should return the Suite object
+ ✅ should return the Suite object
Suite instance method bail() when no argument is passed
- :white_check_mark: should return the bail value
+ ✅ should return the bail value
Suite instance method beforeAll() wraps the passed in function in a Hook
- :white_check_mark: adds it to _beforeAll
- :white_check_mark: appends title to hook
- :white_check_mark: uses function name if available
+ ✅ adds it to _beforeAll
+ ✅ appends title to hook
+ ✅ uses function name if available
Suite instance method beforeEach() when the suite is pending
- :white_check_mark: should not create a hook
+ ✅ should not create a hook
Suite instance method beforeEach() wraps the passed in function in a Hook
- :white_check_mark: adds it to _beforeEach
- :white_check_mark: appends title to hook
- :white_check_mark: uses function name if available
+ ✅ adds it to _beforeEach
+ ✅ appends title to hook
+ ✅ uses function name if available
Suite instance method clone()
- :white_check_mark: should clone the Suite, omitting children
+ ✅ should clone the Suite, omitting children
Suite instance method constructor
- :white_check_mark: should not throw if the title is a string
- :white_check_mark: should report listened-for deprecated events as deprecated
- :white_check_mark: should throw an error if the title isn't a string
+ ✅ should not throw if the title is a string
+ ✅ should report listened-for deprecated events as deprecated
+ ✅ should throw an error if the title isn't a string
Suite instance method create()
- :white_check_mark: does not create a second root suite
- :white_check_mark: does not denote the root suite by being titleless
+ ✅ does not create a second root suite
+ ✅ does not denote the root suite by being titleless
Suite instance method eachTest(fn) when there are no nested suites or tests
- :white_check_mark: should return 0
+ ✅ should return 0
Suite instance method eachTest(fn) when there are several levels of nested suites
- :white_check_mark: should return the number
+ ✅ should return the number
Suite instance method eachTest(fn) when there are several tests in the suite
- :white_check_mark: should return the number
+ ✅ should return the number
Suite instance method filterOnly()
- :white_check_mark: should filter out all other tests and suites if a suite has `only`
- :white_check_mark: should filter out all other tests and suites if a test has `only`
+ ✅ should filter out all other tests and suites if a suite has `only`
+ ✅ should filter out all other tests and suites if a test has `only`
Suite instance method fullTitle() when there is a parent
- :white_check_mark: returns the combination of parent's and suite's title
+ ✅ returns the combination of parent's and suite's title
Suite instance method fullTitle() when there is no parent
- :white_check_mark: returns the suite title
+ ✅ returns the suite title
Suite instance method hasOnly()
- :white_check_mark: should return false if no suite or test is marked `only`
- :white_check_mark: should return true if a suite has `only`
- :white_check_mark: should return true if a test has `only`
- :white_check_mark: should return true if nested suite has `only`
+ ✅ should return false if no suite or test is marked `only`
+ ✅ should return true if a suite has `only`
+ ✅ should return true if a test has `only`
+ ✅ should return true if nested suite has `only`
Suite instance method markOnly()
- :white_check_mark: should call appendOnlySuite on parent
+ ✅ should call appendOnlySuite on parent
Suite instance method reset()
- :white_check_mark: should forward reset to all hooks
- :white_check_mark: should forward reset to suites and tests
- :white_check_mark: should reset the `delayed` state
+ ✅ should forward reset to all hooks
+ ✅ should forward reset to suites and tests
+ ✅ should reset the `delayed` state
Suite instance method slow() when argument is passed
- :white_check_mark: should return the Suite object
+ ✅ should return the Suite object
Suite instance method slow() when given a string
- :white_check_mark: should parse it
+ ✅ should parse it
Suite instance method slow() when no argument is passed
- :white_check_mark: should return the slow value
+ ✅ should return the slow value
Suite instance method timeout()
- :white_check_mark: should convert a string to milliseconds
+ ✅ should convert a string to milliseconds
Suite instance method timeout() when argument is passed
- :white_check_mark: should return the Suite object
+ ✅ should return the Suite object
Suite instance method timeout() when no argument is passed
- :white_check_mark: should return the timeout value
+ ✅ should return the timeout value
Suite instance method titlePath() when there is a parent the parent is not the root suite
- :white_check_mark: returns the concatenation of parent's and suite's title
+ ✅ returns the concatenation of parent's and suite's title
Suite instance method titlePath() when there is a parent the parent is the root suite
- :white_check_mark: returns the suite title
+ ✅ returns the suite title
Suite instance method titlePath() when there is no parent
- :white_check_mark: returns the suite title
+ ✅ returns the suite title
Suite instance method total() when there are no nested suites or tests
- :white_check_mark: should return 0
+ ✅ should return 0
Suite instance method total() when there are several tests in the suite
- :white_check_mark: should return the number
+ ✅ should return the number
Test initialization
- :white_check_mark: should not throw if the title is a string
- :white_check_mark: should throw an error if the title isn't a string
+ ✅ should not throw if the title is a string
+ ✅ should throw an error if the title isn't a string
```
-### :white_check_mark: test/unit/test.spec.js
+### ✅ test/unit/test.spec.js
```
Test .clone()
- :white_check_mark: should add/keep the retriedTest value
- :white_check_mark: should copy the currentRetry value
- :white_check_mark: should copy the file value
- :white_check_mark: should copy the globals value
- :white_check_mark: should copy the parent value
- :white_check_mark: should copy the retries value
- :white_check_mark: should copy the slow value
- :white_check_mark: should copy the timeout value
- :white_check_mark: should copy the title
+ ✅ should add/keep the retriedTest value
+ ✅ should copy the currentRetry value
+ ✅ should copy the file value
+ ✅ should copy the globals value
+ ✅ should copy the parent value
+ ✅ should copy the retries value
+ ✅ should copy the slow value
+ ✅ should copy the timeout value
+ ✅ should copy the title
Test .isPending()
- :white_check_mark: should be pending when its parent is pending
- :white_check_mark: should be pending when marked as such
- :white_check_mark: should not be pending by default
+ ✅ should be pending when its parent is pending
+ ✅ should be pending when marked as such
+ ✅ should not be pending by default
Test .markOnly()
- :white_check_mark: should call appendOnlyTest on parent
+ ✅ should call appendOnlyTest on parent
Test .reset()
- :white_check_mark: should call Runnable.reset
- :white_check_mark: should reset the run state
+ ✅ should call Runnable.reset
+ ✅ should reset the run state
```
-### :white_check_mark: test/unit/throw.spec.js
+### ✅ test/unit/throw.spec.js
```
a test that throws non-extensible
- :white_check_mark: should not pass if throwing async and test is async
- :white_check_mark: should not pass if throwing sync and test is async
- :white_check_mark: should not pass if throwing sync and test is sync
+ ✅ should not pass if throwing async and test is async
+ ✅ should not pass if throwing sync and test is async
+ ✅ should not pass if throwing sync and test is sync
a test that throws null
- :white_check_mark: should not pass if throwing async and test is async
- :white_check_mark: should not pass if throwing sync and test is async
- :white_check_mark: should not pass if throwing sync and test is sync
+ ✅ should not pass if throwing async and test is async
+ ✅ should not pass if throwing sync and test is async
+ ✅ should not pass if throwing sync and test is sync
a test that throws undefined
- :white_check_mark: should not pass if throwing async and test is async
- :white_check_mark: should not pass if throwing sync and test is async
- :white_check_mark: should not pass if throwing sync and test is sync
+ ✅ should not pass if throwing async and test is async
+ ✅ should not pass if throwing sync and test is async
+ ✅ should not pass if throwing sync and test is sync
```
-### :white_check_mark: test/unit/timeout.spec.js
+### ✅ test/unit/timeout.spec.js
```
timeouts
- :white_check_mark: should allow overriding per-test
- :white_check_mark: should error on timeout
+ ✅ should allow overriding per-test
+ ✅ should error on timeout
timeouts disabling
- :white_check_mark: should work with timeout(0)
+ ✅ should work with timeout(0)
timeouts disabling suite-level
- :white_check_mark: should work with timeout(0)
+ ✅ should work with timeout(0)
timeouts disabling suite-level nested suite
- :white_check_mark: should work with timeout(0)
+ ✅ should work with timeout(0)
timeouts disabling using before
- :white_check_mark: should work with timeout(0)
+ ✅ should work with timeout(0)
timeouts disabling using beforeEach
- :white_check_mark: should work with timeout(0)
+ ✅ should work with timeout(0)
timeouts disabling using timeout(0)
- :white_check_mark: should suppress timeout(4)
+ ✅ should suppress timeout(4)
```
-### :white_check_mark: test/unit/utils.spec.js
+### ✅ test/unit/utils.spec.js
```
lib/utils canonicalType()
- :white_check_mark: should recognize various types
+ ✅ should recognize various types
lib/utils canonicalType() when toString on null or undefined stringifies window
- :white_check_mark: should recognize null and undefined
+ ✅ should recognize null and undefined
lib/utils castArray() when provided a primitive value
- :white_check_mark: should return an array containing the primitive value only
+ ✅ should return an array containing the primitive value only
lib/utils castArray() when provided an "arguments" value
- :white_check_mark: should return an array containing the arguments
+ ✅ should return an array containing the arguments
lib/utils castArray() when provided an array value
- :white_check_mark: should return a copy of the array
+ ✅ should return a copy of the array
lib/utils castArray() when provided an object
- :white_check_mark: should return an array containing the object only
+ ✅ should return an array containing the object only
lib/utils castArray() when provided no parameters
- :white_check_mark: should return an empty array
+ ✅ should return an empty array
lib/utils castArray() when provided null
- :white_check_mark: should return an array containing a null value only
+ ✅ should return an array containing a null value only
lib/utils clean()
- :white_check_mark: should format a multi line test indented with spaces
- :white_check_mark: should format a multi line test indented with tabs
- :white_check_mark: should format a single line test function
- :white_check_mark: should format es6 arrow functions
- :white_check_mark: should format es6 arrow functions with implicit return
- :white_check_mark: should format functions saved in windows style - spaces
- :white_check_mark: should format functions saved in windows style - tabs
- :white_check_mark: should handle empty functions
- :white_check_mark: should handle functions with no space between the end and the closing brace
- :white_check_mark: should handle functions with parentheses in the same line
- :white_check_mark: should handle functions with tabs in their declarations
- :white_check_mark: should handle named functions with space after name
- :white_check_mark: should handle named functions without space after name
- :white_check_mark: should handle newlines in the function declaration
- :white_check_mark: should remove space character indentation from the function body
- :white_check_mark: should remove tab character indentation from the function body
- :white_check_mark: should remove the wrapping function declaration
+ ✅ should format a multi line test indented with spaces
+ ✅ should format a multi line test indented with tabs
+ ✅ should format a single line test function
+ ✅ should format es6 arrow functions
+ ✅ should format es6 arrow functions with implicit return
+ ✅ should format functions saved in windows style - spaces
+ ✅ should format functions saved in windows style - tabs
+ ✅ should handle empty functions
+ ✅ should handle functions with no space between the end and the closing brace
+ ✅ should handle functions with parentheses in the same line
+ ✅ should handle functions with tabs in their declarations
+ ✅ should handle named functions with space after name
+ ✅ should handle named functions without space after name
+ ✅ should handle newlines in the function declaration
+ ✅ should remove space character indentation from the function body
+ ✅ should remove tab character indentation from the function body
+ ✅ should remove the wrapping function declaration
lib/utils createMap()
- :white_check_mark: should add props from all object parameters to the object
- :white_check_mark: should add props to the object
- :white_check_mark: should return an object with a null prototype
+ ✅ should add props from all object parameters to the object
+ ✅ should add props to the object
+ ✅ should return an object with a null prototype
lib/utils dQuote()
- :white_check_mark: should return its input as string wrapped in double quotes
+ ✅ should return its input as string wrapped in double quotes
lib/utils escape()
- :white_check_mark: replaces invalid xml characters
- :white_check_mark: replaces the usual xml suspects
+ ✅ replaces invalid xml characters
+ ✅ replaces the usual xml suspects
lib/utils isPromise()
- :white_check_mark: should return false if the object is null
- :white_check_mark: should return false if the value is an object w/o a "then" function
- :white_check_mark: should return false if the value is not an object
- :white_check_mark: should return true if the value is Promise-ish
+ ✅ should return false if the object is null
+ ✅ should return false if the value is an object w/o a "then" function
+ ✅ should return false if the value is not an object
+ ✅ should return true if the value is Promise-ish
lib/utils lookupFiles() when run in browser
- :white_check_mark: should throw
+ ✅ should throw
lib/utils lookupFiles() when run in Node.js
- :white_check_mark: should delegate to new location of lookupFiles()
- :white_check_mark: should print a deprecation message
+ ✅ should delegate to new location of lookupFiles()
+ ✅ should print a deprecation message
lib/utils slug()
- :white_check_mark: should convert the string to lowercase
- :white_check_mark: should convert whitespace to dashes
- :white_check_mark: should disallow consecutive dashes
- :white_check_mark: should strip non-alphanumeric and non-dash characters
+ ✅ should convert the string to lowercase
+ ✅ should convert whitespace to dashes
+ ✅ should disallow consecutive dashes
+ ✅ should strip non-alphanumeric and non-dash characters
lib/utils sQuote()
- :white_check_mark: should return its input as string wrapped in single quotes
+ ✅ should return its input as string wrapped in single quotes
lib/utils stringify()
- :white_check_mark: might get confusing
- :white_check_mark: should canonicalize the object
- :white_check_mark: should handle arrays
- :white_check_mark: should handle circular structures in arrays
- :white_check_mark: should handle circular structures in functions
- :white_check_mark: should handle circular structures in objects
- :white_check_mark: should handle empty arrays
- :white_check_mark: should handle empty functions (with no properties)
- :white_check_mark: should handle empty objects
- :white_check_mark: should handle functions
- :white_check_mark: should handle functions w/ properties
- :white_check_mark: should handle length properties that cannot be coerced to a number
- :white_check_mark: should handle non-empty arrays
- :white_check_mark: should handle object without an Object prototype
- :white_check_mark: should handle Symbol
- :white_check_mark: should handle undefined values
- :white_check_mark: should handle various non-undefined, non-null, non-object, non-array, non-date, and non-function values
- :white_check_mark: should not freak out if it sees a primitive twice
- :white_check_mark: should recurse
- :white_check_mark: should return an object representation of a string created with a String constructor
- :white_check_mark: should return Buffer with .toJSON representation
- :white_check_mark: should return Date object with .toISOString() + string prefix
- :white_check_mark: should return invalid Date object with .toString() + string prefix
- :white_check_mark: should stringify dates
+ ✅ might get confusing
+ ✅ should canonicalize the object
+ ✅ should handle arrays
+ ✅ should handle circular structures in arrays
+ ✅ should handle circular structures in functions
+ ✅ should handle circular structures in objects
+ ✅ should handle empty arrays
+ ✅ should handle empty functions (with no properties)
+ ✅ should handle empty objects
+ ✅ should handle functions
+ ✅ should handle functions w/ properties
+ ✅ should handle length properties that cannot be coerced to a number
+ ✅ should handle non-empty arrays
+ ✅ should handle object without an Object prototype
+ ✅ should handle Symbol
+ ✅ should handle undefined values
+ ✅ should handle various non-undefined, non-null, non-object, non-array, non-date, and non-function values
+ ✅ should not freak out if it sees a primitive twice
+ ✅ should recurse
+ ✅ should return an object representation of a string created with a String constructor
+ ✅ should return Buffer with .toJSON representation
+ ✅ should return Date object with .toISOString() + string prefix
+ ✅ should return invalid Date object with .toString() + string prefix
+ ✅ should stringify dates
lib/utils stringify() #Number
- :white_check_mark: floats and ints
- :white_check_mark: should show the handle -0 situations
- :white_check_mark: should work well with `NaN` and `Infinity`
- :white_check_mark: should work with bigints when possible
+ ✅ floats and ints
+ ✅ should show the handle -0 situations
+ ✅ should work well with `NaN` and `Infinity`
+ ✅ should work with bigints when possible
lib/utils stringify() canonicalize example
- :white_check_mark: should represent the actual full result
+ ✅ should represent the actual full result
lib/utils type()
- :white_check_mark: should recognize various types
+ ✅ should recognize various types
lib/utils type() when toString on null or undefined stringifies window
- :white_check_mark: should recognize null and undefined
+ ✅ should recognize null and undefined
lib/utils uniqueID()
- :white_check_mark: should return a non-empty string
+ ✅ should return a non-empty string
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/provider-test-results.md b/__tests__/__outputs__/provider-test-results.md
index 95b8438..36abb6e 100644
--- a/__tests__/__outputs__/provider-test-results.md
+++ b/__tests__/__outputs__/provider-test-results.md
@@ -1,374 +1,374 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/external/flutter/provider-test-results.json|268:white_check_mark:|1:x:||0ms|
-## :x: fixtures/external/flutter/provider-test-results.json
+|fixtures/external/flutter/provider-test-results.json|268 ✅|1 ❌||0ms|
+## ❌ fixtures/external/flutter/provider-test-results.json
**269** tests were completed in **0ms** with **268** passed, **1** failed and **0** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[test/builder_test.dart](#r0s0)|24:white_check_mark:|||402ms|
-|[test/change_notifier_provider_test.dart](#r0s1)|10:white_check_mark:|||306ms|
-|[test/consumer_test.dart](#r0s2)|18:white_check_mark:|||340ms|
-|[test/context_test.dart](#r0s3)|31:white_check_mark:|||698ms|
-|[test/future_provider_test.dart](#r0s4)|10:white_check_mark:|||305ms|
-|[test/inherited_provider_test.dart](#r0s5)|81:white_check_mark:|||1s|
-|[test/listenable_provider_test.dart](#r0s6)|16:white_check_mark:|||353ms|
-|[test/listenable_proxy_provider_test.dart](#r0s7)|12:white_check_mark:|||373ms|
-|[test/multi_provider_test.dart](#r0s8)|3:white_check_mark:|||198ms|
-|[test/provider_test.dart](#r0s9)|11:white_check_mark:|||306ms|
-|[test/proxy_provider_test.dart](#r0s10)|16:white_check_mark:|||438ms|
-|[test/reassemble_test.dart](#r0s11)|3:white_check_mark:|||221ms|
-|[test/selector_test.dart](#r0s12)|17:white_check_mark:|||364ms|
-|[test/stateful_provider_test.dart](#r0s13)|4:white_check_mark:|||254ms|
-|[test/stream_provider_test.dart](#r0s14)|8:white_check_mark:|||282ms|
-|[test/value_listenable_provider_test.dart](#r0s15)|4:white_check_mark:|1:x:||327ms|
-### :white_check_mark: test/builder_test.dart
+|[test/builder_test.dart](#r0s0)|24 ✅|||402ms|
+|[test/change_notifier_provider_test.dart](#r0s1)|10 ✅|||306ms|
+|[test/consumer_test.dart](#r0s2)|18 ✅|||340ms|
+|[test/context_test.dart](#r0s3)|31 ✅|||698ms|
+|[test/future_provider_test.dart](#r0s4)|10 ✅|||305ms|
+|[test/inherited_provider_test.dart](#r0s5)|81 ✅|||1s|
+|[test/listenable_provider_test.dart](#r0s6)|16 ✅|||353ms|
+|[test/listenable_proxy_provider_test.dart](#r0s7)|12 ✅|||373ms|
+|[test/multi_provider_test.dart](#r0s8)|3 ✅|||198ms|
+|[test/provider_test.dart](#r0s9)|11 ✅|||306ms|
+|[test/proxy_provider_test.dart](#r0s10)|16 ✅|||438ms|
+|[test/reassemble_test.dart](#r0s11)|3 ✅|||221ms|
+|[test/selector_test.dart](#r0s12)|17 ✅|||364ms|
+|[test/stateful_provider_test.dart](#r0s13)|4 ✅|||254ms|
+|[test/stream_provider_test.dart](#r0s14)|8 ✅|||282ms|
+|[test/value_listenable_provider_test.dart](#r0s15)|4 ✅|1 ❌||327ms|
+### ✅ test/builder_test.dart
```
ChangeNotifierProvider
- :white_check_mark: default
- :white_check_mark: .value
+ ✅ default
+ ✅ .value
ListenableProvider
- :white_check_mark: default
- :white_check_mark: .value
+ ✅ default
+ ✅ .value
Provider
- :white_check_mark: default
- :white_check_mark: .value
+ ✅ default
+ ✅ .value
ProxyProvider
- :white_check_mark: 0
- :white_check_mark: 1
- :white_check_mark: 2
- :white_check_mark: 3
- :white_check_mark: 4
- :white_check_mark: 5
- :white_check_mark: 6
+ ✅ 0
+ ✅ 1
+ ✅ 2
+ ✅ 3
+ ✅ 4
+ ✅ 5
+ ✅ 6
MultiProvider
- :white_check_mark: with 1 ChangeNotifierProvider default
- :white_check_mark: with 2 ChangeNotifierProvider default
- :white_check_mark: with ListenableProvider default
- :white_check_mark: with Provider default
- :white_check_mark: with ProxyProvider0
- :white_check_mark: with ProxyProvider1
- :white_check_mark: with ProxyProvider2
- :white_check_mark: with ProxyProvider3
- :white_check_mark: with ProxyProvider4
- :white_check_mark: with ProxyProvider5
- :white_check_mark: with ProxyProvider6
+ ✅ with 1 ChangeNotifierProvider default
+ ✅ with 2 ChangeNotifierProvider default
+ ✅ with ListenableProvider default
+ ✅ with Provider default
+ ✅ with ProxyProvider0
+ ✅ with ProxyProvider1
+ ✅ with ProxyProvider2
+ ✅ with ProxyProvider3
+ ✅ with ProxyProvider4
+ ✅ with ProxyProvider5
+ ✅ with ProxyProvider6
```
-### :white_check_mark: test/change_notifier_provider_test.dart
+### ✅ test/change_notifier_provider_test.dart
```
-:white_check_mark: Use builder property, not child
+✅ Use builder property, not child
ChangeNotifierProvider
- :white_check_mark: value
- :white_check_mark: builder
- :white_check_mark: builder1
- :white_check_mark: builder2
- :white_check_mark: builder3
- :white_check_mark: builder4
- :white_check_mark: builder5
- :white_check_mark: builder6
- :white_check_mark: builder0
+ ✅ value
+ ✅ builder
+ ✅ builder1
+ ✅ builder2
+ ✅ builder3
+ ✅ builder4
+ ✅ builder5
+ ✅ builder6
+ ✅ builder0
```
-### :white_check_mark: test/consumer_test.dart
+### ✅ test/consumer_test.dart
```
consumer
- :white_check_mark: obtains value from Provider
- :white_check_mark: crashed with no builder
- :white_check_mark: can be used inside MultiProvider
+ ✅ obtains value from Provider
+ ✅ crashed with no builder
+ ✅ can be used inside MultiProvider
consumer2
- :white_check_mark: obtains value from Provider
- :white_check_mark: crashed with no builder
- :white_check_mark: can be used inside MultiProvider
+ ✅ obtains value from Provider
+ ✅ crashed with no builder
+ ✅ can be used inside MultiProvider
consumer3
- :white_check_mark: obtains value from Provider
- :white_check_mark: crashed with no builder
- :white_check_mark: can be used inside MultiProvider
+ ✅ obtains value from Provider
+ ✅ crashed with no builder
+ ✅ can be used inside MultiProvider
consumer4
- :white_check_mark: obtains value from Provider
- :white_check_mark: crashed with no builder
- :white_check_mark: can be used inside MultiProvider
+ ✅ obtains value from Provider
+ ✅ crashed with no builder
+ ✅ can be used inside MultiProvider
consumer5
- :white_check_mark: obtains value from Provider
- :white_check_mark: crashed with no builder
- :white_check_mark: can be used inside MultiProvider
+ ✅ obtains value from Provider
+ ✅ crashed with no builder
+ ✅ can be used inside MultiProvider
consumer6
- :white_check_mark: obtains value from Provider
- :white_check_mark: crashed with no builder
- :white_check_mark: can be used inside MultiProvider
+ ✅ obtains value from Provider
+ ✅ crashed with no builder
+ ✅ can be used inside MultiProvider
```
-### :white_check_mark: test/context_test.dart
+### ✅ test/context_test.dart
```
-:white_check_mark: watch in layoutbuilder
-:white_check_mark: select in layoutbuilder
-:white_check_mark: cannot select in listView
-:white_check_mark: watch in listView
-:white_check_mark: watch in gridView
-:white_check_mark: clears select dependencies for all dependents
+✅ watch in layoutbuilder
+✅ select in layoutbuilder
+✅ cannot select in listView
+✅ watch in listView
+✅ watch in gridView
+✅ clears select dependencies for all dependents
BuildContext
- :white_check_mark: internal selected value is updated
- :white_check_mark: create can use read without being lazy
- :white_check_mark: watch can be used inside InheritedProvider.update
- :white_check_mark: select doesn't fail if it loads a provider that depends on other providers
- :white_check_mark: don't call old selectors if the child rebuilds individually
- :white_check_mark: selects throws inside click handlers
- :white_check_mark: select throws if try to read dynamic
- :white_check_mark: select throws ProviderNotFoundException
- :white_check_mark: select throws if watch called inside the callback from build
- :white_check_mark: select throws if read called inside the callback from build
- :white_check_mark: select throws if select called inside the callback from build
- :white_check_mark: select throws if read called inside the callback on dependency change
- :white_check_mark: select throws if watch called inside the callback on dependency change
- :white_check_mark: select throws if select called inside the callback on dependency change
- :white_check_mark: can call read inside didChangeDependencies
- :white_check_mark: select cannot be called inside didChangeDependencies
- :white_check_mark: select in initState throws
- :white_check_mark: watch in initState throws
- :white_check_mark: read in initState works
- :white_check_mark: consumer can be removed and selector stops to be called
- :white_check_mark: context.select deeply compares maps
- :white_check_mark: context.select deeply compares lists
- :white_check_mark: context.select deeply compares iterables
- :white_check_mark: context.select deeply compares sets
- :white_check_mark: context.watch listens to value changes
+ ✅ internal selected value is updated
+ ✅ create can use read without being lazy
+ ✅ watch can be used inside InheritedProvider.update
+ ✅ select doesn't fail if it loads a provider that depends on other providers
+ ✅ don't call old selectors if the child rebuilds individually
+ ✅ selects throws inside click handlers
+ ✅ select throws if try to read dynamic
+ ✅ select throws ProviderNotFoundException
+ ✅ select throws if watch called inside the callback from build
+ ✅ select throws if read called inside the callback from build
+ ✅ select throws if select called inside the callback from build
+ ✅ select throws if read called inside the callback on dependency change
+ ✅ select throws if watch called inside the callback on dependency change
+ ✅ select throws if select called inside the callback on dependency change
+ ✅ can call read inside didChangeDependencies
+ ✅ select cannot be called inside didChangeDependencies
+ ✅ select in initState throws
+ ✅ watch in initState throws
+ ✅ read in initState works
+ ✅ consumer can be removed and selector stops to be called
+ ✅ context.select deeply compares maps
+ ✅ context.select deeply compares lists
+ ✅ context.select deeply compares iterables
+ ✅ context.select deeply compares sets
+ ✅ context.watch listens to value changes
```
-### :white_check_mark: test/future_provider_test.dart
+### ✅ test/future_provider_test.dart
```
-:white_check_mark: works with MultiProvider
-:white_check_mark: (catchError) previous future completes after transition is no-op
-:white_check_mark: previous future completes after transition is no-op
-:white_check_mark: transition from future to future preserve state
-:white_check_mark: throws if future has error and catchError is missing
-:white_check_mark: calls catchError if present and future has error
-:white_check_mark: works with null
-:white_check_mark: create and dispose future with builder
-:white_check_mark: FutureProvider() crashes if builder is null
+✅ works with MultiProvider
+✅ (catchError) previous future completes after transition is no-op
+✅ previous future completes after transition is no-op
+✅ transition from future to future preserve state
+✅ throws if future has error and catchError is missing
+✅ calls catchError if present and future has error
+✅ works with null
+✅ create and dispose future with builder
+✅ FutureProvider() crashes if builder is null
FutureProvider()
- :white_check_mark: crashes if builder is null
+ ✅ crashes if builder is null
```
-### :white_check_mark: test/inherited_provider_test.dart
+### ✅ test/inherited_provider_test.dart
```
-:white_check_mark: regression test #377
-:white_check_mark: rebuild on dependency flags update
-:white_check_mark: properly update debug flags if a create triggers another deferred create
-:white_check_mark: properly update debug flags if a create triggers another deferred create
-:white_check_mark: properly update debug flags if an update triggers another create/update
-:white_check_mark: properly update debug flags if a create triggers another create/update
-:white_check_mark: Provider.of(listen: false) outside of build works when it loads a provider
-:white_check_mark: new value is available in didChangeDependencies
-:white_check_mark: builder receives the current value and updates independently from `update`
-:white_check_mark: builder can _not_ rebuild when provider updates
-:white_check_mark: builder rebuilds if provider is recreated
-:white_check_mark: provider.of throws if listen:true outside of the widget tree
-:white_check_mark: InheritedProvider throws if no child is provided with default constructor
-:white_check_mark: InheritedProvider throws if no child is provided with value constructor
-:white_check_mark: DeferredInheritedProvider throws if no child is provided with default constructor
-:white_check_mark: DeferredInheritedProvider throws if no child is provided with value constructor
-:white_check_mark: startListening markNeedsNotifyDependents
-:white_check_mark: InheritedProvider can be subclassed
-:white_check_mark: DeferredInheritedProvider can be subclassed
-:white_check_mark: can be used with MultiProvider
-:white_check_mark: throw if the widget ctor changes
-:white_check_mark: InheritedProvider lazy loading can be disabled
-:white_check_mark: InheritedProvider.value lazy loading can be disabled
-:white_check_mark: InheritedProvider subclass don't have to specify default lazy value
-:white_check_mark: DeferredInheritedProvider lazy loading can be disabled
-:white_check_mark: DeferredInheritedProvider.value lazy loading can be disabled
-:white_check_mark: selector
-:white_check_mark: can select multiple types from same provider
-:white_check_mark: can select same type on two different providers
-:white_check_mark: can select same type twice on same provider
-:white_check_mark: Provider.of has a proper error message if context is null
+✅ regression test #377
+✅ rebuild on dependency flags update
+✅ properly update debug flags if a create triggers another deferred create
+✅ properly update debug flags if a create triggers another deferred create
+✅ properly update debug flags if an update triggers another create/update
+✅ properly update debug flags if a create triggers another create/update
+✅ Provider.of(listen: false) outside of build works when it loads a provider
+✅ new value is available in didChangeDependencies
+✅ builder receives the current value and updates independently from `update`
+✅ builder can _not_ rebuild when provider updates
+✅ builder rebuilds if provider is recreated
+✅ provider.of throws if listen:true outside of the widget tree
+✅ InheritedProvider throws if no child is provided with default constructor
+✅ InheritedProvider throws if no child is provided with value constructor
+✅ DeferredInheritedProvider throws if no child is provided with default constructor
+✅ DeferredInheritedProvider throws if no child is provided with value constructor
+✅ startListening markNeedsNotifyDependents
+✅ InheritedProvider can be subclassed
+✅ DeferredInheritedProvider can be subclassed
+✅ can be used with MultiProvider
+✅ throw if the widget ctor changes
+✅ InheritedProvider lazy loading can be disabled
+✅ InheritedProvider.value lazy loading can be disabled
+✅ InheritedProvider subclass don't have to specify default lazy value
+✅ DeferredInheritedProvider lazy loading can be disabled
+✅ DeferredInheritedProvider.value lazy loading can be disabled
+✅ selector
+✅ can select multiple types from same provider
+✅ can select same type on two different providers
+✅ can select same type twice on same provider
+✅ Provider.of has a proper error message if context is null
diagnostics
- :white_check_mark: InheritedProvider.value
- :white_check_mark: InheritedProvider doesn't break lazy loading
- :white_check_mark: InheritedProvider show if listening
- :white_check_mark: DeferredInheritedProvider.value
- :white_check_mark: DeferredInheritedProvider
+ ✅ InheritedProvider.value
+ ✅ InheritedProvider doesn't break lazy loading
+ ✅ InheritedProvider show if listening
+ ✅ DeferredInheritedProvider.value
+ ✅ DeferredInheritedProvider
InheritedProvider.value()
- :white_check_mark: markNeedsNotifyDependents during startListening is noop
- :white_check_mark: startListening called again when create returns new value
- :white_check_mark: startListening
- :white_check_mark: stopListening not called twice if rebuild doesn't have listeners
- :white_check_mark: removeListener cannot be null
- :white_check_mark: pass down current value
- :white_check_mark: default updateShouldNotify
- :white_check_mark: custom updateShouldNotify
+ ✅ markNeedsNotifyDependents during startListening is noop
+ ✅ startListening called again when create returns new value
+ ✅ startListening
+ ✅ stopListening not called twice if rebuild doesn't have listeners
+ ✅ removeListener cannot be null
+ ✅ pass down current value
+ ✅ default updateShouldNotify
+ ✅ custom updateShouldNotify
InheritedProvider()
- :white_check_mark: hasValue
- :white_check_mark: provider calls update if rebuilding only due to didChangeDependencies
- :white_check_mark: provider notifying dependents doesn't call update
- :white_check_mark: update can call Provider.of with listen:true
- :white_check_mark: update lazy loaded can call Provider.of with listen:true
- :white_check_mark: markNeedsNotifyDependents during startListening is noop
- :white_check_mark: update can obtain parent of the same type than self
- :white_check_mark: _debugCheckInvalidValueType
- :white_check_mark: startListening
- :white_check_mark: startListening called again when create returns new value
- :white_check_mark: stopListening not called twice if rebuild doesn't have listeners
- :white_check_mark: removeListener cannot be null
- :white_check_mark: fails if initialValueBuilder calls inheritFromElement/inheritFromWiggetOfExactType
- :white_check_mark: builder is called on every rebuild and after a dependency change
- :white_check_mark: builder with no updateShouldNotify use ==
- :white_check_mark: builder calls updateShouldNotify callback
- :white_check_mark: initialValue is transmitted to valueBuilder
- :white_check_mark: calls builder again if dependencies change
- :white_check_mark: exposes initialValue if valueBuilder is null
- :white_check_mark: call dispose on unmount
- :white_check_mark: builder unmount, dispose not called if value never read
- :white_check_mark: call dispose after new value
- :white_check_mark: valueBuilder works without initialBuilder
- :white_check_mark: calls initialValueBuilder lazily once
- :white_check_mark: throws if both builder and initialBuilder are missing
+ ✅ hasValue
+ ✅ provider calls update if rebuilding only due to didChangeDependencies
+ ✅ provider notifying dependents doesn't call update
+ ✅ update can call Provider.of with listen:true
+ ✅ update lazy loaded can call Provider.of with listen:true
+ ✅ markNeedsNotifyDependents during startListening is noop
+ ✅ update can obtain parent of the same type than self
+ ✅ _debugCheckInvalidValueType
+ ✅ startListening
+ ✅ startListening called again when create returns new value
+ ✅ stopListening not called twice if rebuild doesn't have listeners
+ ✅ removeListener cannot be null
+ ✅ fails if initialValueBuilder calls inheritFromElement/inheritFromWiggetOfExactType
+ ✅ builder is called on every rebuild and after a dependency change
+ ✅ builder with no updateShouldNotify use ==
+ ✅ builder calls updateShouldNotify callback
+ ✅ initialValue is transmitted to valueBuilder
+ ✅ calls builder again if dependencies change
+ ✅ exposes initialValue if valueBuilder is null
+ ✅ call dispose on unmount
+ ✅ builder unmount, dispose not called if value never read
+ ✅ call dispose after new value
+ ✅ valueBuilder works without initialBuilder
+ ✅ calls initialValueBuilder lazily once
+ ✅ throws if both builder and initialBuilder are missing
DeferredInheritedProvider.value()
- :white_check_mark: hasValue
- :white_check_mark: startListening
- :white_check_mark: stopListening cannot be null
- :white_check_mark: startListening doesn't need setState if already initialized
- :white_check_mark: setState without updateShouldNotify
- :white_check_mark: setState with updateShouldNotify
- :white_check_mark: startListening never leave the widget uninitialized
- :white_check_mark: startListening called again on controller change
+ ✅ hasValue
+ ✅ startListening
+ ✅ stopListening cannot be null
+ ✅ startListening doesn't need setState if already initialized
+ ✅ setState without updateShouldNotify
+ ✅ setState with updateShouldNotify
+ ✅ startListening never leave the widget uninitialized
+ ✅ startListening called again on controller change
DeferredInheritedProvider()
- :white_check_mark: create can't call inherited widgets
- :white_check_mark: creates the value lazily
- :white_check_mark: dispose
- :white_check_mark: dispose no-op if never built
+ ✅ create can't call inherited widgets
+ ✅ creates the value lazily
+ ✅ dispose
+ ✅ dispose no-op if never built
```
-### :white_check_mark: test/listenable_provider_test.dart
+### ✅ test/listenable_provider_test.dart
```
ListenableProvider
- :white_check_mark: works with MultiProvider
- :white_check_mark: asserts that the created notifier can have listeners
- :white_check_mark: don't listen again if listenable instance doesn't change
- :white_check_mark: works with null (default)
- :white_check_mark: works with null (create)
- :white_check_mark: stateful create called once
- :white_check_mark: dispose called on unmount
- :white_check_mark: dispose can be null
- :white_check_mark: changing listenable rebuilds descendants
- :white_check_mark: rebuilding with the same provider don't rebuilds descendants
- :white_check_mark: notifylistener rebuilds descendants
+ ✅ works with MultiProvider
+ ✅ asserts that the created notifier can have listeners
+ ✅ don't listen again if listenable instance doesn't change
+ ✅ works with null (default)
+ ✅ works with null (create)
+ ✅ stateful create called once
+ ✅ dispose called on unmount
+ ✅ dispose can be null
+ ✅ changing listenable rebuilds descendants
+ ✅ rebuilding with the same provider don't rebuilds descendants
+ ✅ notifylistener rebuilds descendants
ListenableProvider value constructor
- :white_check_mark: pass down key
- :white_check_mark: changing the Listenable instance rebuilds dependents
+ ✅ pass down key
+ ✅ changing the Listenable instance rebuilds dependents
ListenableProvider stateful constructor
- :white_check_mark: called with context
- :white_check_mark: pass down key
- :white_check_mark: throws if create is null
+ ✅ called with context
+ ✅ pass down key
+ ✅ throws if create is null
```
-### :white_check_mark: test/listenable_proxy_provider_test.dart
+### ✅ test/listenable_proxy_provider_test.dart
```
ListenableProxyProvider
- :white_check_mark: throws if update is missing
- :white_check_mark: asserts that the created notifier has no listener
- :white_check_mark: asserts that the created notifier has no listener after rebuild
- :white_check_mark: rebuilds dependendents when listeners are called
- :white_check_mark: update returning a new Listenable disposes the previously created value and update dependents
- :white_check_mark: disposes of created value
+ ✅ throws if update is missing
+ ✅ asserts that the created notifier has no listener
+ ✅ asserts that the created notifier has no listener after rebuild
+ ✅ rebuilds dependendents when listeners are called
+ ✅ update returning a new Listenable disposes the previously created value and update dependents
+ ✅ disposes of created value
ListenableProxyProvider variants
- :white_check_mark: ListenableProxyProvider
- :white_check_mark: ListenableProxyProvider2
- :white_check_mark: ListenableProxyProvider3
- :white_check_mark: ListenableProxyProvider4
- :white_check_mark: ListenableProxyProvider5
- :white_check_mark: ListenableProxyProvider6
+ ✅ ListenableProxyProvider
+ ✅ ListenableProxyProvider2
+ ✅ ListenableProxyProvider3
+ ✅ ListenableProxyProvider4
+ ✅ ListenableProxyProvider5
+ ✅ ListenableProxyProvider6
```
-### :white_check_mark: test/multi_provider_test.dart
+### ✅ test/multi_provider_test.dart
```
MultiProvider
- :white_check_mark: throw if providers is null
- :white_check_mark: MultiProvider children can only access parent providers
- :white_check_mark: MultiProvider.providers with ignored child
+ ✅ throw if providers is null
+ ✅ MultiProvider children can only access parent providers
+ ✅ MultiProvider.providers with ignored child
```
-### :white_check_mark: test/provider_test.dart
+### ✅ test/provider_test.dart
```
-:white_check_mark: works with MultiProvider
+✅ works with MultiProvider
Provider.of
- :white_check_mark: throws if T is dynamic
- :white_check_mark: listen defaults to true when building widgets
- :white_check_mark: listen defaults to false outside of the widget tree
- :white_check_mark: listen:false doesn't trigger rebuild
- :white_check_mark: listen:true outside of the widget tree throws
+ ✅ throws if T is dynamic
+ ✅ listen defaults to true when building widgets
+ ✅ listen defaults to false outside of the widget tree
+ ✅ listen:false doesn't trigger rebuild
+ ✅ listen:true outside of the widget tree throws
Provider
- :white_check_mark: throws if the provided value is a Listenable/Stream
- :white_check_mark: debugCheckInvalidValueType can be disabled
- :white_check_mark: simple usage
- :white_check_mark: throws an error if no provider found
- :white_check_mark: update should notify
+ ✅ throws if the provided value is a Listenable/Stream
+ ✅ debugCheckInvalidValueType can be disabled
+ ✅ simple usage
+ ✅ throws an error if no provider found
+ ✅ update should notify
```
-### :white_check_mark: test/proxy_provider_test.dart
+### ✅ test/proxy_provider_test.dart
```
ProxyProvider
- :white_check_mark: throws if the provided value is a Listenable/Stream
- :white_check_mark: debugCheckInvalidValueType can be disabled
- :white_check_mark: create creates initial value
- :white_check_mark: consume another providers
- :white_check_mark: rebuild descendants if value change
- :white_check_mark: call dispose when unmounted with the latest result
- :white_check_mark: don't rebuild descendants if value doesn't change
- :white_check_mark: pass down updateShouldNotify
- :white_check_mark: works with MultiProvider
- :white_check_mark: update callback can trigger descendants setState synchronously
- :white_check_mark: throws if update is null
+ ✅ throws if the provided value is a Listenable/Stream
+ ✅ debugCheckInvalidValueType can be disabled
+ ✅ create creates initial value
+ ✅ consume another providers
+ ✅ rebuild descendants if value change
+ ✅ call dispose when unmounted with the latest result
+ ✅ don't rebuild descendants if value doesn't change
+ ✅ pass down updateShouldNotify
+ ✅ works with MultiProvider
+ ✅ update callback can trigger descendants setState synchronously
+ ✅ throws if update is null
ProxyProvider variants
- :white_check_mark: ProxyProvider2
- :white_check_mark: ProxyProvider3
- :white_check_mark: ProxyProvider4
- :white_check_mark: ProxyProvider5
- :white_check_mark: ProxyProvider6
+ ✅ ProxyProvider2
+ ✅ ProxyProvider3
+ ✅ ProxyProvider4
+ ✅ ProxyProvider5
+ ✅ ProxyProvider6
```
-### :white_check_mark: test/reassemble_test.dart
+### ✅ test/reassemble_test.dart
```
-:white_check_mark: ReassembleHandler
-:white_check_mark: unevaluated create
-:white_check_mark: unevaluated create
+✅ ReassembleHandler
+✅ unevaluated create
+✅ unevaluated create
```
-### :white_check_mark: test/selector_test.dart
+### ✅ test/selector_test.dart
```
-:white_check_mark: asserts that builder/selector are not null
-:white_check_mark: Deep compare maps by default
-:white_check_mark: Deep compare iterables by default
-:white_check_mark: Deep compare sets by default
-:white_check_mark: Deep compare lists by default
-:white_check_mark: custom shouldRebuid
-:white_check_mark: passes `child` and `key`
-:white_check_mark: calls builder if the callback changes
-:white_check_mark: works with MultiProvider
-:white_check_mark: don't call builder again if it rebuilds but selector returns the same thing
-:white_check_mark: call builder again if it rebuilds abd selector returns the a different variable
-:white_check_mark: Selector
-:white_check_mark: Selector2
-:white_check_mark: Selector3
-:white_check_mark: Selector4
-:white_check_mark: Selector5
-:white_check_mark: Selector6
+✅ asserts that builder/selector are not null
+✅ Deep compare maps by default
+✅ Deep compare iterables by default
+✅ Deep compare sets by default
+✅ Deep compare lists by default
+✅ custom shouldRebuid
+✅ passes `child` and `key`
+✅ calls builder if the callback changes
+✅ works with MultiProvider
+✅ don't call builder again if it rebuilds but selector returns the same thing
+✅ call builder again if it rebuilds abd selector returns the a different variable
+✅ Selector
+✅ Selector2
+✅ Selector3
+✅ Selector4
+✅ Selector5
+✅ Selector6
```
-### :white_check_mark: test/stateful_provider_test.dart
+### ✅ test/stateful_provider_test.dart
```
-:white_check_mark: asserts
-:white_check_mark: works with MultiProvider
-:white_check_mark: calls create only once
-:white_check_mark: dispose
+✅ asserts
+✅ works with MultiProvider
+✅ calls create only once
+✅ dispose
```
-### :white_check_mark: test/stream_provider_test.dart
+### ✅ test/stream_provider_test.dart
```
-:white_check_mark: works with MultiProvider
-:white_check_mark: transition from stream to stream preserve state
-:white_check_mark: throws if stream has error and catchError is missing
-:white_check_mark: calls catchError if present and stream has error
-:white_check_mark: works with null
-:white_check_mark: StreamProvider() crashes if builder is null
+✅ works with MultiProvider
+✅ transition from stream to stream preserve state
+✅ throws if stream has error and catchError is missing
+✅ calls catchError if present and stream has error
+✅ works with null
+✅ StreamProvider() crashes if builder is null
StreamProvider()
- :white_check_mark: create and dispose stream with builder
- :white_check_mark: crashes if builder is null
+ ✅ create and dispose stream with builder
+ ✅ crashes if builder is null
```
-### :x: test/value_listenable_provider_test.dart
+### ❌ test/value_listenable_provider_test.dart
```
valueListenableProvider
- :white_check_mark: rebuilds when value change
- :white_check_mark: don't rebuild dependents by default
- :white_check_mark: pass keys
- :white_check_mark: don't listen again if stream instance doesn't change
- :x: pass updateShouldNotify
+ ✅ rebuilds when value change
+ ✅ don't rebuild dependents by default
+ ✅ pass keys
+ ✅ don't listen again if stream instance doesn't change
+ ❌ pass updateShouldNotify
The following TestFailure object was thrown running a test:
Expected: <2>
Actual: <1>
diff --git a/__tests__/__outputs__/pulsar-test-results-no-merge.md b/__tests__/__outputs__/pulsar-test-results-no-merge.md
index 30c4184..99539b9 100644
--- a/__tests__/__outputs__/pulsar-test-results-no-merge.md
+++ b/__tests__/__outputs__/pulsar-test-results-no-merge.md
@@ -1,15 +1,15 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml||1:x:|1:warning:|116ms|
-## :x: fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml
+|fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml||1 ❌|1 ⚪|116ms|
+## ❌ fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml
**2** tests were completed in **116ms** with **0** passed, **1** failed and **1** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1:x:|1:warning:|116ms|
-### :x: org.apache.pulsar.AddMissingPatchVersionTest
+|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1 ❌|1 ⚪|116ms|
+### ❌ org.apache.pulsar.AddMissingPatchVersionTest
```
-:warning: testVersionStrings
-:x: testVersionStrings
+⚪ testVersionStrings
+❌ testVersionStrings
java.lang.AssertionError: expected [1.2.1] but found [1.2.0]
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/pulsar-test-results.md b/__tests__/__outputs__/pulsar-test-results.md
index 18b234a..b6d910c 100644
--- a/__tests__/__outputs__/pulsar-test-results.md
+++ b/__tests__/__outputs__/pulsar-test-results.md
@@ -1,1521 +1,1521 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/external/java/pulsar-test-report.xml|793:white_check_mark:|1:x:|14:warning:|2127s|
-## :x: fixtures/external/java/pulsar-test-report.xml
+|fixtures/external/java/pulsar-test-report.xml|793 ✅|1 ❌|14 ⚪|2127s|
+## ❌ fixtures/external/java/pulsar-test-report.xml
**808** tests were completed in **2127s** with **793** passed, **1** failed and **14** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1:x:|1:warning:|116ms|
-|[org.apache.pulsar.broker.admin.AdminApiOffloadTest](#r0s1)|7:white_check_mark:|||19s|
-|[org.apache.pulsar.broker.auth.AuthenticationServiceTest](#r0s2)|2:white_check_mark:|||185ms|
-|[org.apache.pulsar.broker.auth.AuthLogsTest](#r0s3)|2:white_check_mark:|||1s|
-|[org.apache.pulsar.broker.auth.AuthorizationTest](#r0s4)|1:white_check_mark:|||2s|
-|[org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test](#r0s5)|4:white_check_mark:|||2s|
-|[org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest](#r0s6)|2:white_check_mark:|||33s|
-|[org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests](#r0s7)|2:white_check_mark:|||32s|
-|[org.apache.pulsar.broker.namespace.NamespaceServiceTest](#r0s8)|10:white_check_mark:|||75s|
-|[org.apache.pulsar.broker.namespace.NamespaceUnloadingTest](#r0s9)|2:white_check_mark:|||14s|
-|[org.apache.pulsar.broker.namespace.OwnerShipCacheForCurrentServerTest](#r0s10)|1:white_check_mark:|||16s|
-|[org.apache.pulsar.broker.namespace.OwnershipCacheTest](#r0s11)|8:white_check_mark:|||16s|
-|[org.apache.pulsar.broker.protocol.ProtocolHandlersTest](#r0s12)|6:white_check_mark:|||946ms|
-|[org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest](#r0s13)|3:white_check_mark:|||7s|
-|[org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoaderTest](#r0s14)|1:white_check_mark:|||15ms|
-|[org.apache.pulsar.broker.PulsarServiceTest](#r0s15)|2:white_check_mark:|||96ms|
-|[org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest](#r0s16)|3:white_check_mark:|||14s|
-|[org.apache.pulsar.broker.service.ReplicatorTest](#r0s17)|22:white_check_mark:|||40s|
-|[org.apache.pulsar.broker.service.TopicOwnerTest](#r0s18)|8:white_check_mark:|||114s|
-|[org.apache.pulsar.broker.SLAMonitoringTest](#r0s19)|4:white_check_mark:|||9s|
-|[org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest](#r0s20)|2:white_check_mark:|||49ms|
-|[org.apache.pulsar.broker.stats.ConsumerStatsTest](#r0s21)|3:white_check_mark:|||21s|
-|[org.apache.pulsar.broker.stats.ManagedCursorMetricsTest](#r0s22)|1:white_check_mark:|||281ms|
-|[org.apache.pulsar.broker.stats.ManagedLedgerMetricsTest](#r0s23)|1:white_check_mark:|||285ms|
-|[org.apache.pulsar.broker.stats.prometheus.AggregatedNamespaceStatsTest](#r0s24)|1:white_check_mark:|||40ms|
-|[org.apache.pulsar.broker.stats.PrometheusMetricsTest](#r0s25)|15:white_check_mark:|||83s|
-|[org.apache.pulsar.broker.stats.SubscriptionStatsTest](#r0s26)|2:white_check_mark:|||2s|
-|[org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest](#r0s27)|1:white_check_mark:|||1s|
-|[org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest](#r0s28)|3:white_check_mark:|||28ms|
-|[org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest](#r0s29)|4:white_check_mark:|||93ms|
-|[org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest](#r0s30)|7:white_check_mark:|||81ms|
-|[org.apache.pulsar.broker.transaction.buffer.TransactionEntryImplTest](#r0s31)|1:white_check_mark:|||14ms|
-|[org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest](#r0s32)|2:white_check_mark:|||38s|
-|[org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest](#r0s33)|2:white_check_mark:||1:warning:|49s|
-|[org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest](#r0s34)|3:white_check_mark:|||95ms|
-|[org.apache.pulsar.broker.transaction.coordinator.TransactionMetaStoreAssignmentTest](#r0s35)|1:white_check_mark:|||1s|
-|[org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest](#r0s36)|2:white_check_mark:||1:warning:|57s|
-|[org.apache.pulsar.broker.transaction.TransactionConsumeTest](#r0s37)|2:white_check_mark:|||30s|
-|[org.apache.pulsar.broker.web.RestExceptionTest](#r0s38)|3:white_check_mark:|||37ms|
-|[org.apache.pulsar.broker.web.WebServiceTest](#r0s39)|9:white_check_mark:|||27s|
-|[org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest](#r0s40)|4:white_check_mark:|||8s|
-|[org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest](#r0s41)|4:white_check_mark:|||30ms|
-|[org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest](#r0s42)|4:white_check_mark:|||14s|
-|[org.apache.pulsar.client.impl.BatchMessageIndexAckTest](#r0s43)|5:white_check_mark:|||44s|
-|[org.apache.pulsar.client.impl.BrokerClientIntegrationTest](#r0s44)|15:white_check_mark:|||148s|
-|[org.apache.pulsar.client.impl.CompactedOutBatchMessageTest](#r0s45)|1:white_check_mark:|||1s|
-|[org.apache.pulsar.client.impl.ConsumerAckResponseTest](#r0s46)|1:white_check_mark:|||549ms|
-|[org.apache.pulsar.client.impl.ConsumerConfigurationTest](#r0s47)|4:white_check_mark:|||12s|
-|[org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate](#r0s48)|7:white_check_mark:|||4s|
-|[org.apache.pulsar.client.impl.ConsumerUnsubscribeTest](#r0s49)|1:white_check_mark:|||129ms|
-|[org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth](#r0s50)|3:white_check_mark:|||23s|
-|[org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth](#r0s51)|3:white_check_mark:|||8s|
-|[org.apache.pulsar.client.impl.KeyStoreTlsTest](#r0s52)|1:white_check_mark:|||183ms|
-|[org.apache.pulsar.client.impl.MessageChecksumTest](#r0s53)|3:white_check_mark:|||47s|
-|[org.apache.pulsar.client.impl.MessageChunkingTest](#r0s54)|8:white_check_mark:||1:warning:|73s|
-|[org.apache.pulsar.client.impl.MessageParserTest](#r0s55)|2:white_check_mark:|||5s|
-|[org.apache.pulsar.client.impl.MultiTopicsReaderTest](#r0s56)|8:white_check_mark:|||35s|
-|[org.apache.pulsar.client.impl.NegativeAcksTest](#r0s57)|32:white_check_mark:|||11s|
-|[org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest](#r0s58)|11:white_check_mark:|||63s|
-|[org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest](#r0s59)|5:white_check_mark:|||34s|
-|[org.apache.pulsar.client.impl.PulsarMultiHostClientTest](#r0s60)|3:white_check_mark:|||15s|
-|[org.apache.pulsar.client.impl.RawMessageSerDeserTest](#r0s61)|1:white_check_mark:|||10ms|
-|[org.apache.pulsar.client.impl.SchemaDeleteTest](#r0s62)|1:white_check_mark:|||2s|
-|[org.apache.pulsar.client.impl.SequenceIdWithErrorTest](#r0s63)|3:white_check_mark:||2:warning:|18s|
-|[org.apache.pulsar.client.impl.TopicDoesNotExistsTest](#r0s64)|2:white_check_mark:|||4s|
-|[org.apache.pulsar.client.impl.TopicFromMessageTest](#r0s65)|5:white_check_mark:|||14s|
-|[org.apache.pulsar.client.impl.TopicsConsumerImplTest](#r0s66)|17:white_check_mark:|||133s|
-|[org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest](#r0s67)|7:white_check_mark:|||44s|
-|[org.apache.pulsar.client.impl.ZeroQueueSizeTest](#r0s68)|14:white_check_mark:|||16s|
-|[org.apache.pulsar.common.api.raw.RawMessageImplTest](#r0s69)|1:white_check_mark:|||316ms|
-|[org.apache.pulsar.common.compression.CommandsTest](#r0s70)|1:white_check_mark:|||30ms|
-|[org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest](#r0s71)|6:white_check_mark:|||223ms|
-|[org.apache.pulsar.common.compression.CompressorCodecTest](#r0s72)|45:white_check_mark:|||737ms|
-|[org.apache.pulsar.common.compression.Crc32cChecksumTest](#r0s73)|6:white_check_mark:|||5s|
-|[org.apache.pulsar.common.lookup.data.LookupDataTest](#r0s74)|4:white_check_mark:|||2s|
-|[org.apache.pulsar.common.naming.MetadataTests](#r0s75)|2:white_check_mark:|||161ms|
-|[org.apache.pulsar.common.naming.NamespaceBundlesTest](#r0s76)|5:white_check_mark:|||99ms|
-|[org.apache.pulsar.common.naming.NamespaceBundleTest](#r0s77)|6:white_check_mark:|||64ms|
-|[org.apache.pulsar.common.naming.NamespaceNameTest](#r0s78)|2:white_check_mark:|||207ms|
-|[org.apache.pulsar.common.naming.ServiceConfigurationTest](#r0s79)|4:white_check_mark:|||48ms|
-|[org.apache.pulsar.common.naming.TopicNameTest](#r0s80)|4:white_check_mark:|||529ms|
-|[org.apache.pulsar.common.net.ServiceURITest](#r0s81)|21:white_check_mark:|||237ms|
-|[org.apache.pulsar.common.policies.data.AutoFailoverPolicyDataTest](#r0s82)|1:white_check_mark:|||15ms|
-|[org.apache.pulsar.common.policies.data.AutoFailoverPolicyTypeTest](#r0s83)|1:white_check_mark:|||19ms|
-|[org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest](#r0s84)|6:white_check_mark:|||64ms|
-|[org.apache.pulsar.common.policies.data.BacklogQuotaTest](#r0s85)|1:white_check_mark:|||12ms|
-|[org.apache.pulsar.common.policies.data.ClusterDataTest](#r0s86)|1:white_check_mark:|||9ms|
-|[org.apache.pulsar.common.policies.data.ConsumerStatsTest](#r0s87)|1:white_check_mark:|||8ms|
-|[org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest](#r0s88)|2:white_check_mark:|||948ms|
-|[org.apache.pulsar.common.policies.data.LocalPolicesTest](#r0s89)|1:white_check_mark:|||48ms|
-|[org.apache.pulsar.common.policies.data.NamespaceIsolationDataTest](#r0s90)|1:white_check_mark:|||76ms|
-|[org.apache.pulsar.common.policies.data.NamespaceOwnershipStatusTest](#r0s91)|1:white_check_mark:|||45ms|
-|[org.apache.pulsar.common.policies.data.OffloadPoliciesTest](#r0s92)|6:white_check_mark:|||216ms|
-|[org.apache.pulsar.common.policies.data.PartitionedTopicStatsTest](#r0s93)|1:white_check_mark:|||12ms|
-|[org.apache.pulsar.common.policies.data.PersistencePoliciesTest](#r0s94)|1:white_check_mark:|||19ms|
-|[org.apache.pulsar.common.policies.data.PersistentOfflineTopicStatsTest](#r0s95)|1:white_check_mark:|||29ms|
-|[org.apache.pulsar.common.policies.data.PersistentTopicStatsTest](#r0s96)|2:white_check_mark:|||51ms|
-|[org.apache.pulsar.common.policies.data.PoliciesDataTest](#r0s97)|4:white_check_mark:|||1s|
-|[org.apache.pulsar.common.policies.data.PublisherStatsTest](#r0s98)|2:white_check_mark:|||37ms|
-|[org.apache.pulsar.common.policies.data.ReplicatorStatsTest](#r0s99)|2:white_check_mark:|||30ms|
-|[org.apache.pulsar.common.policies.data.ResourceQuotaTest](#r0s100)|2:white_check_mark:|||45ms|
-|[org.apache.pulsar.common.policies.data.RetentionPolicesTest](#r0s101)|1:white_check_mark:|||8ms|
-|[org.apache.pulsar.common.policies.impl.AutoFailoverPolicyFactoryTest](#r0s102)|1:white_check_mark:|||22ms|
-|[org.apache.pulsar.common.policies.impl.MinAvailablePolicyTest](#r0s103)|1:white_check_mark:|||1ms|
-|[org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest](#r0s104)|7:white_check_mark:|||265ms|
-|[org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest](#r0s105)|7:white_check_mark:|||309ms|
-|[org.apache.pulsar.common.protocol.ByteBufPairTest](#r0s106)|2:white_check_mark:|||5s|
-|[org.apache.pulsar.common.protocol.CommandUtilsTests](#r0s107)|7:white_check_mark:|||3s|
-|[org.apache.pulsar.common.protocol.MarkersTest](#r0s108)|6:white_check_mark:|||3s|
-|[org.apache.pulsar.common.protocol.PulsarDecoderTest](#r0s109)|1:white_check_mark:|||4s|
-|[org.apache.pulsar.common.stats.JvmDefaultGCMetricsLoggerTest](#r0s110)|1:white_check_mark:|||82ms|
-|[org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest](#r0s111)|2:white_check_mark:|||13ms|
-|[org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest](#r0s112)|2:white_check_mark:|||63ms|
-|[org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest](#r0s113)|13:white_check_mark:|||28s|
-|[org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest](#r0s114)|15:white_check_mark:|||2s|
-|[org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest](#r0s115)|12:white_check_mark:|||9s|
-|[org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest](#r0s116)|11:white_check_mark:|||7s|
-|[org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest](#r0s117)|13:white_check_mark:|||1s|
-|[org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest](#r0s118)|9:white_check_mark:|||342ms|
-|[org.apache.pulsar.common.util.collections.FieldParserTest](#r0s119)|2:white_check_mark:|||64ms|
-|[org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest](#r0s120)|6:white_check_mark:|||350ms|
-|[org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest](#r0s121)|15:white_check_mark:|||3s|
-|[org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest](#r0s122)|3:white_check_mark:|||238ms|
-|[org.apache.pulsar.common.util.FieldParserTest](#r0s123)|1:white_check_mark:|||242ms|
-|[org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest](#r0s124)|6:white_check_mark:|||6s|
-|[org.apache.pulsar.common.util.netty.ChannelFuturesTest](#r0s125)|5:white_check_mark:|||2s|
-|[org.apache.pulsar.common.util.RateLimiterTest](#r0s126)|11:white_check_mark:|||7s|
-|[org.apache.pulsar.common.util.ReflectionsTest](#r0s127)|12:white_check_mark:|||172ms|
-|[org.apache.pulsar.common.util.RelativeTimeUtilTest](#r0s128)|1:white_check_mark:|||39ms|
-|[org.apache.pulsar.discovery.service.web.DiscoveryServiceWebTest](#r0s129)|1:white_check_mark:|||5s|
-|[org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest](#r0s130)|2:white_check_mark:|||28s|
-|[org.apache.pulsar.functions.worker.PulsarFunctionPublishTest](#r0s131)|3:white_check_mark:|||42s|
-|[org.apache.pulsar.functions.worker.PulsarFunctionTlsTest](#r0s132)|1:white_check_mark:|||12s|
-|[org.apache.pulsar.io.PulsarFunctionTlsTest](#r0s133)|1:white_check_mark:|||30s|
-|[org.apache.pulsar.proxy.server.AdminProxyHandlerTest](#r0s134)|1:white_check_mark:|||474ms|
-|[org.apache.pulsar.proxy.server.AuthedAdminProxyHandlerTest](#r0s135)|1:white_check_mark:|||2s|
-|[org.apache.pulsar.proxy.server.FunctionWorkerRoutingTest](#r0s136)|1:white_check_mark:|||10ms|
-|[org.apache.pulsar.proxy.server.ProxyAdditionalServletTest](#r0s137)|1:white_check_mark:|||125ms|
-|[org.apache.pulsar.proxy.server.ProxyAuthenticatedProducerConsumerTest](#r0s138)|1:white_check_mark:|||2s|
-|[org.apache.pulsar.proxy.server.ProxyAuthenticationTest](#r0s139)|1:white_check_mark:|||17s|
-|[org.apache.pulsar.proxy.server.ProxyConnectionThrottlingTest](#r0s140)|1:white_check_mark:|||2s|
-|[org.apache.pulsar.proxy.server.ProxyEnableHAProxyProtocolTest](#r0s141)|1:white_check_mark:|||511ms|
-|[org.apache.pulsar.proxy.server.ProxyForwardAuthDataTest](#r0s142)|1:white_check_mark:|||32s|
-|[org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest](#r0s143)|10:white_check_mark:|||2s|
-|[org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth](#r0s144)|3:white_check_mark:|||7s|
-|[org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth](#r0s145)|3:white_check_mark:|||7s|
-|[org.apache.pulsar.proxy.server.ProxyLookupThrottlingTest](#r0s146)|1:white_check_mark:|||3s|
-|[org.apache.pulsar.proxy.server.ProxyParserTest](#r0s147)|5:white_check_mark:|||1s|
-|[org.apache.pulsar.proxy.server.ProxyRolesEnforcementTest](#r0s148)|1:white_check_mark:|||10s|
-|[org.apache.pulsar.proxy.server.ProxyStatsTest](#r0s149)|3:white_check_mark:|||533ms|
-|[org.apache.pulsar.proxy.server.ProxyTest](#r0s150)|6:white_check_mark:|||3s|
-|[org.apache.pulsar.proxy.server.ProxyTlsTest](#r0s151)|2:white_check_mark:|||414ms|
-|[org.apache.pulsar.proxy.server.ProxyTlsTestWithAuth](#r0s152)|1:white_check_mark:|||4ms|
-|[org.apache.pulsar.proxy.server.ProxyWithAuthorizationNegTest](#r0s153)|1:white_check_mark:|||2s|
-|[org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest](#r0s154)|13:white_check_mark:|||33s|
-|[org.apache.pulsar.proxy.server.ProxyWithoutServiceDiscoveryTest](#r0s155)|1:white_check_mark:|||2s|
-|[org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest](#r0s156)|3:white_check_mark:|||8s|
-|[org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest](#r0s157)|2:white_check_mark:|||114ms|
-|[org.apache.pulsar.PulsarBrokerStarterTest](#r0s158)|9:white_check_mark:|||591ms|
-|[org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest](#r0s159)|23:white_check_mark:|||107s|
-|[org.apache.pulsar.schema.PartitionedTopicSchemaTest](#r0s160)|1:white_check_mark:|||29s|
-|[org.apache.pulsar.schema.SchemaTest](#r0s161)|3:white_check_mark:|||31s|
-|[org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest](#r0s162)|2:white_check_mark:|||41s|
-|[org.apache.pulsar.tests.EnumValuesDataProviderTest](#r0s163)|6:white_check_mark:|||23ms|
-|[org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest](#r0s164)|1:white_check_mark:||4:warning:|36ms|
-|[org.apache.pulsar.tests.TestRetrySupportRetryTest](#r0s165)|1:white_check_mark:||4:warning:|27ms|
-|[org.apache.pulsar.tests.TestRetrySupportSuccessTest](#r0s166)|3:white_check_mark:|||1ms|
-|[org.apache.pulsar.tests.ThreadDumpUtilTest](#r0s167)|2:white_check_mark:|||17ms|
-|[org.apache.pulsar.utils.SimpleTextOutputStreamTest](#r0s168)|4:white_check_mark:|||50ms|
-|[org.apache.pulsar.utils.StatsOutputStreamTest](#r0s169)|6:white_check_mark:|||59ms|
-|[org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest](#r0s170)|4:white_check_mark:|||29s|
-|[org.apache.pulsar.websocket.proxy.ProxyAuthorizationTest](#r0s171)|1:white_check_mark:|||1s|
-|[org.apache.pulsar.websocket.proxy.ProxyConfigurationTest](#r0s172)|2:white_check_mark:|||9s|
-|[org.apache.pulsar.websocket.proxy.ProxyPublishConsumeTlsTest](#r0s173)|1:white_check_mark:|||11s|
-|[org.apache.pulsar.websocket.proxy.ProxyPublishConsumeWithoutZKTest](#r0s174)|1:white_check_mark:|||7s|
-|[org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest](#r0s175)|4:white_check_mark:|||30s|
-### :x: org.apache.pulsar.AddMissingPatchVersionTest
-```
-:warning: testVersionStrings
-:x: testVersionStrings
+|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1 ❌|1 ⚪|116ms|
+|[org.apache.pulsar.broker.admin.AdminApiOffloadTest](#r0s1)|7 ✅|||19s|
+|[org.apache.pulsar.broker.auth.AuthenticationServiceTest](#r0s2)|2 ✅|||185ms|
+|[org.apache.pulsar.broker.auth.AuthLogsTest](#r0s3)|2 ✅|||1s|
+|[org.apache.pulsar.broker.auth.AuthorizationTest](#r0s4)|1 ✅|||2s|
+|[org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test](#r0s5)|4 ✅|||2s|
+|[org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest](#r0s6)|2 ✅|||33s|
+|[org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests](#r0s7)|2 ✅|||32s|
+|[org.apache.pulsar.broker.namespace.NamespaceServiceTest](#r0s8)|10 ✅|||75s|
+|[org.apache.pulsar.broker.namespace.NamespaceUnloadingTest](#r0s9)|2 ✅|||14s|
+|[org.apache.pulsar.broker.namespace.OwnerShipCacheForCurrentServerTest](#r0s10)|1 ✅|||16s|
+|[org.apache.pulsar.broker.namespace.OwnershipCacheTest](#r0s11)|8 ✅|||16s|
+|[org.apache.pulsar.broker.protocol.ProtocolHandlersTest](#r0s12)|6 ✅|||946ms|
+|[org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest](#r0s13)|3 ✅|||7s|
+|[org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoaderTest](#r0s14)|1 ✅|||15ms|
+|[org.apache.pulsar.broker.PulsarServiceTest](#r0s15)|2 ✅|||96ms|
+|[org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest](#r0s16)|3 ✅|||14s|
+|[org.apache.pulsar.broker.service.ReplicatorTest](#r0s17)|22 ✅|||40s|
+|[org.apache.pulsar.broker.service.TopicOwnerTest](#r0s18)|8 ✅|||114s|
+|[org.apache.pulsar.broker.SLAMonitoringTest](#r0s19)|4 ✅|||9s|
+|[org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest](#r0s20)|2 ✅|||49ms|
+|[org.apache.pulsar.broker.stats.ConsumerStatsTest](#r0s21)|3 ✅|||21s|
+|[org.apache.pulsar.broker.stats.ManagedCursorMetricsTest](#r0s22)|1 ✅|||281ms|
+|[org.apache.pulsar.broker.stats.ManagedLedgerMetricsTest](#r0s23)|1 ✅|||285ms|
+|[org.apache.pulsar.broker.stats.prometheus.AggregatedNamespaceStatsTest](#r0s24)|1 ✅|||40ms|
+|[org.apache.pulsar.broker.stats.PrometheusMetricsTest](#r0s25)|15 ✅|||83s|
+|[org.apache.pulsar.broker.stats.SubscriptionStatsTest](#r0s26)|2 ✅|||2s|
+|[org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest](#r0s27)|1 ✅|||1s|
+|[org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest](#r0s28)|3 ✅|||28ms|
+|[org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest](#r0s29)|4 ✅|||93ms|
+|[org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest](#r0s30)|7 ✅|||81ms|
+|[org.apache.pulsar.broker.transaction.buffer.TransactionEntryImplTest](#r0s31)|1 ✅|||14ms|
+|[org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest](#r0s32)|2 ✅|||38s|
+|[org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest](#r0s33)|2 ✅||1 ⚪|49s|
+|[org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest](#r0s34)|3 ✅|||95ms|
+|[org.apache.pulsar.broker.transaction.coordinator.TransactionMetaStoreAssignmentTest](#r0s35)|1 ✅|||1s|
+|[org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest](#r0s36)|2 ✅||1 ⚪|57s|
+|[org.apache.pulsar.broker.transaction.TransactionConsumeTest](#r0s37)|2 ✅|||30s|
+|[org.apache.pulsar.broker.web.RestExceptionTest](#r0s38)|3 ✅|||37ms|
+|[org.apache.pulsar.broker.web.WebServiceTest](#r0s39)|9 ✅|||27s|
+|[org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest](#r0s40)|4 ✅|||8s|
+|[org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest](#r0s41)|4 ✅|||30ms|
+|[org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest](#r0s42)|4 ✅|||14s|
+|[org.apache.pulsar.client.impl.BatchMessageIndexAckTest](#r0s43)|5 ✅|||44s|
+|[org.apache.pulsar.client.impl.BrokerClientIntegrationTest](#r0s44)|15 ✅|||148s|
+|[org.apache.pulsar.client.impl.CompactedOutBatchMessageTest](#r0s45)|1 ✅|||1s|
+|[org.apache.pulsar.client.impl.ConsumerAckResponseTest](#r0s46)|1 ✅|||549ms|
+|[org.apache.pulsar.client.impl.ConsumerConfigurationTest](#r0s47)|4 ✅|||12s|
+|[org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate](#r0s48)|7 ✅|||4s|
+|[org.apache.pulsar.client.impl.ConsumerUnsubscribeTest](#r0s49)|1 ✅|||129ms|
+|[org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth](#r0s50)|3 ✅|||23s|
+|[org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth](#r0s51)|3 ✅|||8s|
+|[org.apache.pulsar.client.impl.KeyStoreTlsTest](#r0s52)|1 ✅|||183ms|
+|[org.apache.pulsar.client.impl.MessageChecksumTest](#r0s53)|3 ✅|||47s|
+|[org.apache.pulsar.client.impl.MessageChunkingTest](#r0s54)|8 ✅||1 ⚪|73s|
+|[org.apache.pulsar.client.impl.MessageParserTest](#r0s55)|2 ✅|||5s|
+|[org.apache.pulsar.client.impl.MultiTopicsReaderTest](#r0s56)|8 ✅|||35s|
+|[org.apache.pulsar.client.impl.NegativeAcksTest](#r0s57)|32 ✅|||11s|
+|[org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest](#r0s58)|11 ✅|||63s|
+|[org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest](#r0s59)|5 ✅|||34s|
+|[org.apache.pulsar.client.impl.PulsarMultiHostClientTest](#r0s60)|3 ✅|||15s|
+|[org.apache.pulsar.client.impl.RawMessageSerDeserTest](#r0s61)|1 ✅|||10ms|
+|[org.apache.pulsar.client.impl.SchemaDeleteTest](#r0s62)|1 ✅|||2s|
+|[org.apache.pulsar.client.impl.SequenceIdWithErrorTest](#r0s63)|3 ✅||2 ⚪|18s|
+|[org.apache.pulsar.client.impl.TopicDoesNotExistsTest](#r0s64)|2 ✅|||4s|
+|[org.apache.pulsar.client.impl.TopicFromMessageTest](#r0s65)|5 ✅|||14s|
+|[org.apache.pulsar.client.impl.TopicsConsumerImplTest](#r0s66)|17 ✅|||133s|
+|[org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest](#r0s67)|7 ✅|||44s|
+|[org.apache.pulsar.client.impl.ZeroQueueSizeTest](#r0s68)|14 ✅|||16s|
+|[org.apache.pulsar.common.api.raw.RawMessageImplTest](#r0s69)|1 ✅|||316ms|
+|[org.apache.pulsar.common.compression.CommandsTest](#r0s70)|1 ✅|||30ms|
+|[org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest](#r0s71)|6 ✅|||223ms|
+|[org.apache.pulsar.common.compression.CompressorCodecTest](#r0s72)|45 ✅|||737ms|
+|[org.apache.pulsar.common.compression.Crc32cChecksumTest](#r0s73)|6 ✅|||5s|
+|[org.apache.pulsar.common.lookup.data.LookupDataTest](#r0s74)|4 ✅|||2s|
+|[org.apache.pulsar.common.naming.MetadataTests](#r0s75)|2 ✅|||161ms|
+|[org.apache.pulsar.common.naming.NamespaceBundlesTest](#r0s76)|5 ✅|||99ms|
+|[org.apache.pulsar.common.naming.NamespaceBundleTest](#r0s77)|6 ✅|||64ms|
+|[org.apache.pulsar.common.naming.NamespaceNameTest](#r0s78)|2 ✅|||207ms|
+|[org.apache.pulsar.common.naming.ServiceConfigurationTest](#r0s79)|4 ✅|||48ms|
+|[org.apache.pulsar.common.naming.TopicNameTest](#r0s80)|4 ✅|||529ms|
+|[org.apache.pulsar.common.net.ServiceURITest](#r0s81)|21 ✅|||237ms|
+|[org.apache.pulsar.common.policies.data.AutoFailoverPolicyDataTest](#r0s82)|1 ✅|||15ms|
+|[org.apache.pulsar.common.policies.data.AutoFailoverPolicyTypeTest](#r0s83)|1 ✅|||19ms|
+|[org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest](#r0s84)|6 ✅|||64ms|
+|[org.apache.pulsar.common.policies.data.BacklogQuotaTest](#r0s85)|1 ✅|||12ms|
+|[org.apache.pulsar.common.policies.data.ClusterDataTest](#r0s86)|1 ✅|||9ms|
+|[org.apache.pulsar.common.policies.data.ConsumerStatsTest](#r0s87)|1 ✅|||8ms|
+|[org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest](#r0s88)|2 ✅|||948ms|
+|[org.apache.pulsar.common.policies.data.LocalPolicesTest](#r0s89)|1 ✅|||48ms|
+|[org.apache.pulsar.common.policies.data.NamespaceIsolationDataTest](#r0s90)|1 ✅|||76ms|
+|[org.apache.pulsar.common.policies.data.NamespaceOwnershipStatusTest](#r0s91)|1 ✅|||45ms|
+|[org.apache.pulsar.common.policies.data.OffloadPoliciesTest](#r0s92)|6 ✅|||216ms|
+|[org.apache.pulsar.common.policies.data.PartitionedTopicStatsTest](#r0s93)|1 ✅|||12ms|
+|[org.apache.pulsar.common.policies.data.PersistencePoliciesTest](#r0s94)|1 ✅|||19ms|
+|[org.apache.pulsar.common.policies.data.PersistentOfflineTopicStatsTest](#r0s95)|1 ✅|||29ms|
+|[org.apache.pulsar.common.policies.data.PersistentTopicStatsTest](#r0s96)|2 ✅|||51ms|
+|[org.apache.pulsar.common.policies.data.PoliciesDataTest](#r0s97)|4 ✅|||1s|
+|[org.apache.pulsar.common.policies.data.PublisherStatsTest](#r0s98)|2 ✅|||37ms|
+|[org.apache.pulsar.common.policies.data.ReplicatorStatsTest](#r0s99)|2 ✅|||30ms|
+|[org.apache.pulsar.common.policies.data.ResourceQuotaTest](#r0s100)|2 ✅|||45ms|
+|[org.apache.pulsar.common.policies.data.RetentionPolicesTest](#r0s101)|1 ✅|||8ms|
+|[org.apache.pulsar.common.policies.impl.AutoFailoverPolicyFactoryTest](#r0s102)|1 ✅|||22ms|
+|[org.apache.pulsar.common.policies.impl.MinAvailablePolicyTest](#r0s103)|1 ✅|||1ms|
+|[org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest](#r0s104)|7 ✅|||265ms|
+|[org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest](#r0s105)|7 ✅|||309ms|
+|[org.apache.pulsar.common.protocol.ByteBufPairTest](#r0s106)|2 ✅|||5s|
+|[org.apache.pulsar.common.protocol.CommandUtilsTests](#r0s107)|7 ✅|||3s|
+|[org.apache.pulsar.common.protocol.MarkersTest](#r0s108)|6 ✅|||3s|
+|[org.apache.pulsar.common.protocol.PulsarDecoderTest](#r0s109)|1 ✅|||4s|
+|[org.apache.pulsar.common.stats.JvmDefaultGCMetricsLoggerTest](#r0s110)|1 ✅|||82ms|
+|[org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest](#r0s111)|2 ✅|||13ms|
+|[org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest](#r0s112)|2 ✅|||63ms|
+|[org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest](#r0s113)|13 ✅|||28s|
+|[org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest](#r0s114)|15 ✅|||2s|
+|[org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest](#r0s115)|12 ✅|||9s|
+|[org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest](#r0s116)|11 ✅|||7s|
+|[org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest](#r0s117)|13 ✅|||1s|
+|[org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest](#r0s118)|9 ✅|||342ms|
+|[org.apache.pulsar.common.util.collections.FieldParserTest](#r0s119)|2 ✅|||64ms|
+|[org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest](#r0s120)|6 ✅|||350ms|
+|[org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest](#r0s121)|15 ✅|||3s|
+|[org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest](#r0s122)|3 ✅|||238ms|
+|[org.apache.pulsar.common.util.FieldParserTest](#r0s123)|1 ✅|||242ms|
+|[org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest](#r0s124)|6 ✅|||6s|
+|[org.apache.pulsar.common.util.netty.ChannelFuturesTest](#r0s125)|5 ✅|||2s|
+|[org.apache.pulsar.common.util.RateLimiterTest](#r0s126)|11 ✅|||7s|
+|[org.apache.pulsar.common.util.ReflectionsTest](#r0s127)|12 ✅|||172ms|
+|[org.apache.pulsar.common.util.RelativeTimeUtilTest](#r0s128)|1 ✅|||39ms|
+|[org.apache.pulsar.discovery.service.web.DiscoveryServiceWebTest](#r0s129)|1 ✅|||5s|
+|[org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest](#r0s130)|2 ✅|||28s|
+|[org.apache.pulsar.functions.worker.PulsarFunctionPublishTest](#r0s131)|3 ✅|||42s|
+|[org.apache.pulsar.functions.worker.PulsarFunctionTlsTest](#r0s132)|1 ✅|||12s|
+|[org.apache.pulsar.io.PulsarFunctionTlsTest](#r0s133)|1 ✅|||30s|
+|[org.apache.pulsar.proxy.server.AdminProxyHandlerTest](#r0s134)|1 ✅|||474ms|
+|[org.apache.pulsar.proxy.server.AuthedAdminProxyHandlerTest](#r0s135)|1 ✅|||2s|
+|[org.apache.pulsar.proxy.server.FunctionWorkerRoutingTest](#r0s136)|1 ✅|||10ms|
+|[org.apache.pulsar.proxy.server.ProxyAdditionalServletTest](#r0s137)|1 ✅|||125ms|
+|[org.apache.pulsar.proxy.server.ProxyAuthenticatedProducerConsumerTest](#r0s138)|1 ✅|||2s|
+|[org.apache.pulsar.proxy.server.ProxyAuthenticationTest](#r0s139)|1 ✅|||17s|
+|[org.apache.pulsar.proxy.server.ProxyConnectionThrottlingTest](#r0s140)|1 ✅|||2s|
+|[org.apache.pulsar.proxy.server.ProxyEnableHAProxyProtocolTest](#r0s141)|1 ✅|||511ms|
+|[org.apache.pulsar.proxy.server.ProxyForwardAuthDataTest](#r0s142)|1 ✅|||32s|
+|[org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest](#r0s143)|10 ✅|||2s|
+|[org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth](#r0s144)|3 ✅|||7s|
+|[org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth](#r0s145)|3 ✅|||7s|
+|[org.apache.pulsar.proxy.server.ProxyLookupThrottlingTest](#r0s146)|1 ✅|||3s|
+|[org.apache.pulsar.proxy.server.ProxyParserTest](#r0s147)|5 ✅|||1s|
+|[org.apache.pulsar.proxy.server.ProxyRolesEnforcementTest](#r0s148)|1 ✅|||10s|
+|[org.apache.pulsar.proxy.server.ProxyStatsTest](#r0s149)|3 ✅|||533ms|
+|[org.apache.pulsar.proxy.server.ProxyTest](#r0s150)|6 ✅|||3s|
+|[org.apache.pulsar.proxy.server.ProxyTlsTest](#r0s151)|2 ✅|||414ms|
+|[org.apache.pulsar.proxy.server.ProxyTlsTestWithAuth](#r0s152)|1 ✅|||4ms|
+|[org.apache.pulsar.proxy.server.ProxyWithAuthorizationNegTest](#r0s153)|1 ✅|||2s|
+|[org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest](#r0s154)|13 ✅|||33s|
+|[org.apache.pulsar.proxy.server.ProxyWithoutServiceDiscoveryTest](#r0s155)|1 ✅|||2s|
+|[org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest](#r0s156)|3 ✅|||8s|
+|[org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest](#r0s157)|2 ✅|||114ms|
+|[org.apache.pulsar.PulsarBrokerStarterTest](#r0s158)|9 ✅|||591ms|
+|[org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest](#r0s159)|23 ✅|||107s|
+|[org.apache.pulsar.schema.PartitionedTopicSchemaTest](#r0s160)|1 ✅|||29s|
+|[org.apache.pulsar.schema.SchemaTest](#r0s161)|3 ✅|||31s|
+|[org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest](#r0s162)|2 ✅|||41s|
+|[org.apache.pulsar.tests.EnumValuesDataProviderTest](#r0s163)|6 ✅|||23ms|
+|[org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest](#r0s164)|1 ✅||4 ⚪|36ms|
+|[org.apache.pulsar.tests.TestRetrySupportRetryTest](#r0s165)|1 ✅||4 ⚪|27ms|
+|[org.apache.pulsar.tests.TestRetrySupportSuccessTest](#r0s166)|3 ✅|||1ms|
+|[org.apache.pulsar.tests.ThreadDumpUtilTest](#r0s167)|2 ✅|||17ms|
+|[org.apache.pulsar.utils.SimpleTextOutputStreamTest](#r0s168)|4 ✅|||50ms|
+|[org.apache.pulsar.utils.StatsOutputStreamTest](#r0s169)|6 ✅|||59ms|
+|[org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest](#r0s170)|4 ✅|||29s|
+|[org.apache.pulsar.websocket.proxy.ProxyAuthorizationTest](#r0s171)|1 ✅|||1s|
+|[org.apache.pulsar.websocket.proxy.ProxyConfigurationTest](#r0s172)|2 ✅|||9s|
+|[org.apache.pulsar.websocket.proxy.ProxyPublishConsumeTlsTest](#r0s173)|1 ✅|||11s|
+|[org.apache.pulsar.websocket.proxy.ProxyPublishConsumeWithoutZKTest](#r0s174)|1 ✅|||7s|
+|[org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest](#r0s175)|4 ✅|||30s|
+### ❌ org.apache.pulsar.AddMissingPatchVersionTest
+```
+⚪ testVersionStrings
+❌ testVersionStrings
java.lang.AssertionError: expected [1.2.1] but found [1.2.0]
```
-### :white_check_mark: org.apache.pulsar.broker.admin.AdminApiOffloadTest
+### ✅ org.apache.pulsar.broker.admin.AdminApiOffloadTest
```
-:white_check_mark: testOffloadPoliciesAppliedApi
-:white_check_mark: testOffloadV2
-:white_check_mark: testTopicLevelOffloadNonPartitioned
-:white_check_mark: testTopicLevelOffloadPartitioned
-:white_check_mark: testOffloadV1
-:white_check_mark: testOffloadPolicies
-:white_check_mark: testOffloadPoliciesApi
+✅ testOffloadPoliciesAppliedApi
+✅ testOffloadV2
+✅ testTopicLevelOffloadNonPartitioned
+✅ testTopicLevelOffloadPartitioned
+✅ testOffloadV1
+✅ testOffloadPolicies
+✅ testOffloadPoliciesApi
```
-### :white_check_mark: org.apache.pulsar.broker.auth.AuthenticationServiceTest
+### ✅ org.apache.pulsar.broker.auth.AuthenticationServiceTest
```
-:white_check_mark: testAuthentication
-:white_check_mark: testAuthenticationHttp
+✅ testAuthentication
+✅ testAuthenticationHttp
```
-### :white_check_mark: org.apache.pulsar.broker.auth.AuthLogsTest
+### ✅ org.apache.pulsar.broker.auth.AuthLogsTest
```
-:white_check_mark: httpEndpoint
-:white_check_mark: binaryEndpoint
+✅ httpEndpoint
+✅ binaryEndpoint
```
-### :white_check_mark: org.apache.pulsar.broker.auth.AuthorizationTest
+### ✅ org.apache.pulsar.broker.auth.AuthorizationTest
```
-:white_check_mark: simple
+✅ simple
```
-### :white_check_mark: org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test
+### ✅ org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test
```
-:white_check_mark: crossColoLookup
-:white_check_mark: testNotEnoughLookupPermits
-:white_check_mark: testValidateReplicationSettingsOnNamespace
-:white_check_mark: testDataPojo
+✅ crossColoLookup
+✅ testNotEnoughLookupPermits
+✅ testValidateReplicationSettingsOnNamespace
+✅ testDataPojo
```
-### :white_check_mark: org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest
+### ✅ org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest
```
-:white_check_mark: testCreateNamespaceWithDefaultBundles
-:white_check_mark: testSplitBundleUpdatesLocalPoliciesWithoutOverwriting
+✅ testCreateNamespaceWithDefaultBundles
+✅ testSplitBundleUpdatesLocalPoliciesWithoutOverwriting
```
-### :white_check_mark: org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests
+### ✅ org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests
```
-:white_check_mark: testGetAllPartitions
-:white_check_mark: testNamespaceBundleOwnershipListener
+✅ testGetAllPartitions
+✅ testNamespaceBundleOwnershipListener
```
-### :white_check_mark: org.apache.pulsar.broker.namespace.NamespaceServiceTest
+### ✅ org.apache.pulsar.broker.namespace.NamespaceServiceTest
```
-:white_check_mark: testSplitMapWithRefreshedStatMap
-:white_check_mark: testRemoveOwnershipNamespaceBundle
-:white_check_mark: testIsServiceUnitDisabled
-:white_check_mark: testLoadReportDeserialize
-:white_check_mark: testCreateLookupResult
-:white_check_mark: testUnloadNamespaceBundleWithStuckTopic
-:white_check_mark: testUnloadNamespaceBundleFailure
-:white_check_mark: testSplitAndOwnBundles
-:white_check_mark: testCreateNamespaceWithDefaultNumberOfBundles
-:white_check_mark: testRemoveOwnershipAndSplitBundle
+✅ testSplitMapWithRefreshedStatMap
+✅ testRemoveOwnershipNamespaceBundle
+✅ testIsServiceUnitDisabled
+✅ testLoadReportDeserialize
+✅ testCreateLookupResult
+✅ testUnloadNamespaceBundleWithStuckTopic
+✅ testUnloadNamespaceBundleFailure
+✅ testSplitAndOwnBundles
+✅ testCreateNamespaceWithDefaultNumberOfBundles
+✅ testRemoveOwnershipAndSplitBundle
```
-### :white_check_mark: org.apache.pulsar.broker.namespace.NamespaceUnloadingTest
+### ✅ org.apache.pulsar.broker.namespace.NamespaceUnloadingTest
```
-:white_check_mark: testUnloadNotLoadedNamespace
-:white_check_mark: testUnloadPartiallyLoadedNamespace
+✅ testUnloadNotLoadedNamespace
+✅ testUnloadPartiallyLoadedNamespace
```
-### :white_check_mark: org.apache.pulsar.broker.namespace.OwnerShipCacheForCurrentServerTest
+### ✅ org.apache.pulsar.broker.namespace.OwnerShipCacheForCurrentServerTest
```
-:white_check_mark: testOwnershipForCurrentServer
+✅ testOwnershipForCurrentServer
```
-### :white_check_mark: org.apache.pulsar.broker.namespace.OwnershipCacheTest
+### ✅ org.apache.pulsar.broker.namespace.OwnershipCacheTest
```
-:white_check_mark: testGetOwnedServiceUnits
-:white_check_mark: testRemoveOwnership
-:white_check_mark: testGetOwnedServiceUnit
-:white_check_mark: testGetOrSetOwner
-:white_check_mark: testConstructor
-:white_check_mark: testGetOwner
-:white_check_mark: testDisableOwnership
-:white_check_mark: testReestablishOwnership
+✅ testGetOwnedServiceUnits
+✅ testRemoveOwnership
+✅ testGetOwnedServiceUnit
+✅ testGetOrSetOwner
+✅ testConstructor
+✅ testGetOwner
+✅ testDisableOwnership
+✅ testReestablishOwnership
```
-### :white_check_mark: org.apache.pulsar.broker.protocol.ProtocolHandlersTest
+### ✅ org.apache.pulsar.broker.protocol.ProtocolHandlersTest
```
-:white_check_mark: testStart
-:white_check_mark: testGetProtocol
-:white_check_mark: testNewChannelInitializersSuccess
-:white_check_mark: testInitialize
-:white_check_mark: testNewChannelInitializersOverlapped
-:white_check_mark: testGetProtocolDataToAdvertise
+✅ testStart
+✅ testGetProtocol
+✅ testNewChannelInitializersSuccess
+✅ testInitialize
+✅ testNewChannelInitializersOverlapped
+✅ testGetProtocolDataToAdvertise
```
-### :white_check_mark: org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest
+### ✅ org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest
```
-:white_check_mark: testLoadProtocolHandler
-:white_check_mark: testLoadProtocolHandlerBlankHandlerClass
-:white_check_mark: testLoadProtocolHandlerWrongHandlerClass
+✅ testLoadProtocolHandler
+✅ testLoadProtocolHandlerBlankHandlerClass
+✅ testLoadProtocolHandlerWrongHandlerClass
```
-### :white_check_mark: org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoaderTest
+### ✅ org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoaderTest
```
-:white_check_mark: testWrapper
+✅ testWrapper
```
-### :white_check_mark: org.apache.pulsar.broker.PulsarServiceTest
+### ✅ org.apache.pulsar.broker.PulsarServiceTest
```
-:white_check_mark: testGetWorkerService
-:white_check_mark: testGetWorkerServiceException
+✅ testGetWorkerService
+✅ testGetWorkerServiceException
```
-### :white_check_mark: org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest
+### ✅ org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest
```
-:white_check_mark: testMessagePublishBufferThrottleEnable
-:white_check_mark: testBlockByPublishRateLimiting
-:white_check_mark: testMessagePublishBufferThrottleDisabled
+✅ testMessagePublishBufferThrottleEnable
+✅ testBlockByPublishRateLimiting
+✅ testMessagePublishBufferThrottleDisabled
```
-### :white_check_mark: org.apache.pulsar.broker.service.ReplicatorTest
+### ✅ org.apache.pulsar.broker.service.ReplicatorTest
```
-:white_check_mark: testResumptionAfterBacklogRelaxed
-:white_check_mark: testReplicationOverrides
-:white_check_mark: testResetCursorNotFail
-:white_check_mark: testUpdateGlobalTopicPartition
-:white_check_mark: testReplication
-:white_check_mark: testReplicatorOnPartitionedTopic
-:white_check_mark: testConcurrentReplicator
-:white_check_mark: testTopicReplicatedAndProducerCreate
-:white_check_mark: testDeleteReplicatorFailure
-:white_check_mark: testReplicatorOnPartitionedTopic
-:white_check_mark: testReplicationForBatchMessages
-:white_check_mark: testReplicatorClearBacklog
-:white_check_mark: verifyChecksumAfterReplication
-:white_check_mark: testCloseReplicatorStartProducer
-:white_check_mark: activeBrokerParse
-:white_check_mark: testReplicatePeekAndSkip
-:white_check_mark: testReplication
-:white_check_mark: testReplicatedCluster
-:white_check_mark: testTopicReplicatedAndProducerCreate
-:white_check_mark: testConfigChange
-:white_check_mark: testFailures
-:white_check_mark: testReplicatorProducerClosing
+✅ testResumptionAfterBacklogRelaxed
+✅ testReplicationOverrides
+✅ testResetCursorNotFail
+✅ testUpdateGlobalTopicPartition
+✅ testReplication
+✅ testReplicatorOnPartitionedTopic
+✅ testConcurrentReplicator
+✅ testTopicReplicatedAndProducerCreate
+✅ testDeleteReplicatorFailure
+✅ testReplicatorOnPartitionedTopic
+✅ testReplicationForBatchMessages
+✅ testReplicatorClearBacklog
+✅ verifyChecksumAfterReplication
+✅ testCloseReplicatorStartProducer
+✅ activeBrokerParse
+✅ testReplicatePeekAndSkip
+✅ testReplication
+✅ testReplicatedCluster
+✅ testTopicReplicatedAndProducerCreate
+✅ testConfigChange
+✅ testFailures
+✅ testReplicatorProducerClosing
```
-### :white_check_mark: org.apache.pulsar.broker.service.TopicOwnerTest
+### ✅ org.apache.pulsar.broker.service.TopicOwnerTest
```
-:white_check_mark: testReleaseOwnershipWithZookeeperDisconnectedBeforeOwnershipNodeDeleted
-:white_check_mark: testAcquireOwnershipWithZookeeperDisconnectedAfterOwnershipNodeCreated
-:white_check_mark: testConnectToInvalidateBundleCacheBroker
-:white_check_mark: testAcquireOwnershipWithZookeeperDisconnectedBeforeOwnershipNodeCreated
-:white_check_mark: testLookupPartitionedTopic
-:white_check_mark: testListNonPersistentTopic
-:white_check_mark: testReleaseOwnershipWithZookeeperDisconnectedAfterOwnershipNodeDeleted
-:white_check_mark: testReestablishOwnershipAfterInvalidateCache
+✅ testReleaseOwnershipWithZookeeperDisconnectedBeforeOwnershipNodeDeleted
+✅ testAcquireOwnershipWithZookeeperDisconnectedAfterOwnershipNodeCreated
+✅ testConnectToInvalidateBundleCacheBroker
+✅ testAcquireOwnershipWithZookeeperDisconnectedBeforeOwnershipNodeCreated
+✅ testLookupPartitionedTopic
+✅ testListNonPersistentTopic
+✅ testReleaseOwnershipWithZookeeperDisconnectedAfterOwnershipNodeDeleted
+✅ testReestablishOwnershipAfterInvalidateCache
```
-### :white_check_mark: org.apache.pulsar.broker.SLAMonitoringTest
+### ✅ org.apache.pulsar.broker.SLAMonitoringTest
```
-:white_check_mark: testOwnedNamespaces
-:white_check_mark: testOwnershipAfterSetup
-:white_check_mark: testUnloadIfBrokerCrashes
-:white_check_mark: testOwnershipViaAdminAfterSetup
+✅ testOwnedNamespaces
+✅ testOwnershipAfterSetup
+✅ testUnloadIfBrokerCrashes
+✅ testOwnershipViaAdminAfterSetup
```
-### :white_check_mark: org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest
+### ✅ org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest
```
-:white_check_mark: testJvmDirectMemoryUsedMetric
-:white_check_mark: testBookieClientStatsGenerator
+✅ testJvmDirectMemoryUsedMetric
+✅ testBookieClientStatsGenerator
```
-### :white_check_mark: org.apache.pulsar.broker.stats.ConsumerStatsTest
+### ✅ org.apache.pulsar.broker.stats.ConsumerStatsTest
```
-:white_check_mark: testAckStatsOnPartitionedTopicForExclusiveSubscription
-:white_check_mark: testConsumerStatsOnZeroMaxUnackedMessagesPerConsumer
-:white_check_mark: testUpdateStatsForActiveConsumerAndSubscription
+✅ testAckStatsOnPartitionedTopicForExclusiveSubscription
+✅ testConsumerStatsOnZeroMaxUnackedMessagesPerConsumer
+✅ testUpdateStatsForActiveConsumerAndSubscription
```
-### :white_check_mark: org.apache.pulsar.broker.stats.ManagedCursorMetricsTest
+### ✅ org.apache.pulsar.broker.stats.ManagedCursorMetricsTest
```
-:white_check_mark: testManagedCursorMetrics
+✅ testManagedCursorMetrics
```
-### :white_check_mark: org.apache.pulsar.broker.stats.ManagedLedgerMetricsTest
+### ✅ org.apache.pulsar.broker.stats.ManagedLedgerMetricsTest
```
-:white_check_mark: testManagedLedgerMetrics
+✅ testManagedLedgerMetrics
```
-### :white_check_mark: org.apache.pulsar.broker.stats.prometheus.AggregatedNamespaceStatsTest
+### ✅ org.apache.pulsar.broker.stats.prometheus.AggregatedNamespaceStatsTest
```
-:white_check_mark: testSimpleAggregation
+✅ testSimpleAggregation
```
-### :white_check_mark: org.apache.pulsar.broker.stats.PrometheusMetricsTest
+### ✅ org.apache.pulsar.broker.stats.PrometheusMetricsTest
```
-:white_check_mark: testPerTopicStats
-:white_check_mark: testAuthMetrics
-:white_check_mark: testPerTopicExpiredStat
-:white_check_mark: testPerProducerStats
-:white_check_mark: testMetricsTopicCount
-:white_check_mark: testManagedLedgerBookieClientStats
-:white_check_mark: testDuplicateMetricTypeDefinitions
-:white_check_mark: testExpiringTokenMetrics
-:white_check_mark: testPerConsumerStats
-:white_check_mark: testPerNamespaceStats
-:white_check_mark: testManagedCursorPersistStats
-:white_check_mark: testDuplicateMetricTypeDefinitions
-:white_check_mark: testExpiredTokenMetrics
-:white_check_mark: testManagedLedgerCacheStats
-:white_check_mark: testManagedLedgerStats
+✅ testPerTopicStats
+✅ testAuthMetrics
+✅ testPerTopicExpiredStat
+✅ testPerProducerStats
+✅ testMetricsTopicCount
+✅ testManagedLedgerBookieClientStats
+✅ testDuplicateMetricTypeDefinitions
+✅ testExpiringTokenMetrics
+✅ testPerConsumerStats
+✅ testPerNamespaceStats
+✅ testManagedCursorPersistStats
+✅ testDuplicateMetricTypeDefinitions
+✅ testExpiredTokenMetrics
+✅ testManagedLedgerCacheStats
+✅ testManagedLedgerStats
```
-### :white_check_mark: org.apache.pulsar.broker.stats.SubscriptionStatsTest
+### ✅ org.apache.pulsar.broker.stats.SubscriptionStatsTest
```
-:white_check_mark: testConsumersAfterMarkDelete
-:white_check_mark: testNonContiguousDeletedMessagesRanges
+✅ testConsumersAfterMarkDelete
+✅ testNonContiguousDeletedMessagesRanges
```
-### :white_check_mark: org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest
+### ✅ org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest
```
-:white_check_mark: testSendAndReceiveNamespaceEvents
+✅ testSendAndReceiveNamespaceEvents
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest
+### ✅ org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest
```
-:white_check_mark: testCloseReleaseAllEntries
-:white_check_mark: testInvalidNumEntriesArgument
-:white_check_mark: testEndOfTransactionException
+✅ testCloseReleaseAllEntries
+✅ testInvalidNumEntriesArgument
+✅ testEndOfTransactionException
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest
+### ✅ org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest
```
-:white_check_mark: testAbortOnTopic
-:white_check_mark: testAbortOnSubscription
-:white_check_mark: testCommitOnTopic
-:white_check_mark: testCommitOnSubscription
+✅ testAbortOnTopic
+✅ testAbortOnSubscription
+✅ testCommitOnTopic
+✅ testCommitOnSubscription
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest
+### ✅ org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest
```
-:white_check_mark: testOpenReaderOnNonExistentTxn
-:white_check_mark: testAbortCommittedTxn
-:white_check_mark: testAbortTxn
-:white_check_mark: testAbortNonExistentTxn
-:white_check_mark: testCommitNonExistentTxn
-:white_check_mark: testCommitTxn
-:white_check_mark: testOpenReaderOnAnOpenTxn
+✅ testOpenReaderOnNonExistentTxn
+✅ testAbortCommittedTxn
+✅ testAbortTxn
+✅ testAbortNonExistentTxn
+✅ testCommitNonExistentTxn
+✅ testCommitTxn
+✅ testOpenReaderOnAnOpenTxn
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.buffer.TransactionEntryImplTest
+### ✅ org.apache.pulsar.broker.transaction.buffer.TransactionEntryImplTest
```
-:white_check_mark: testCloseShouldReleaseBuffer
+✅ testCloseShouldReleaseBuffer
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest
+### ✅ org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest
```
-:white_check_mark: testTransactionBufferLowWaterMark
-:white_check_mark: testPendingAckLowWaterMark
+✅ testTransactionBufferLowWaterMark
+✅ testPendingAckLowWaterMark
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest
+### ✅ org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest
```
-:white_check_mark: commitTxnTest
-:white_check_mark: abortTxnTest
-:warning: commitTxnTest
+✅ commitTxnTest
+✅ abortTxnTest
+⚪ commitTxnTest
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest
+### ✅ org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest
```
-:white_check_mark: testClientStart
-:white_check_mark: testCommitAndAbort
-:white_check_mark: testNewTxn
+✅ testClientStart
+✅ testCommitAndAbort
+✅ testNewTxn
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.coordinator.TransactionMetaStoreAssignmentTest
+### ✅ org.apache.pulsar.broker.transaction.coordinator.TransactionMetaStoreAssignmentTest
```
-:white_check_mark: testTransactionMetaStoreAssignAndFailover
+✅ testTransactionMetaStoreAssignAndFailover
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest
+### ✅ org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest
```
-:warning: txnAckTestNoBatchAndSharedSubMemoryDeleteTest
-:white_check_mark: txnAckTestNoBatchAndSharedSubMemoryDeleteTest
-:white_check_mark: txnAckTestBatchAndSharedSubMemoryDeleteTest
+⚪ txnAckTestNoBatchAndSharedSubMemoryDeleteTest
+✅ txnAckTestNoBatchAndSharedSubMemoryDeleteTest
+✅ txnAckTestBatchAndSharedSubMemoryDeleteTest
```
-### :white_check_mark: org.apache.pulsar.broker.transaction.TransactionConsumeTest
+### ✅ org.apache.pulsar.broker.transaction.TransactionConsumeTest
```
-:white_check_mark: noSortedTest
-:white_check_mark: sortedTest
+✅ noSortedTest
+✅ sortedTest
```
-### :white_check_mark: org.apache.pulsar.broker.web.RestExceptionTest
+### ✅ org.apache.pulsar.broker.web.RestExceptionTest
```
-:white_check_mark: testRestException
-:white_check_mark: testWebApplicationException
-:white_check_mark: testOtherException
+✅ testRestException
+✅ testWebApplicationException
+✅ testOtherException
```
-### :white_check_mark: org.apache.pulsar.broker.web.WebServiceTest
+### ✅ org.apache.pulsar.broker.web.WebServiceTest
```
-:white_check_mark: testTlsAuthDisallowInsecure
-:white_check_mark: testBrokerReady
-:white_check_mark: testDefaultClientVersion
-:white_check_mark: testTlsEnabled
-:white_check_mark: testTlsAuthAllowInsecure
-:white_check_mark: testSplitPath
-:white_check_mark: testMaxRequestSize
-:white_check_mark: testTlsDisabled
-:white_check_mark: testRateLimiting
+✅ testTlsAuthDisallowInsecure
+✅ testBrokerReady
+✅ testDefaultClientVersion
+✅ testTlsEnabled
+✅ testTlsAuthAllowInsecure
+✅ testSplitPath
+✅ testMaxRequestSize
+✅ testTlsDisabled
+✅ testRateLimiting
```
-### :white_check_mark: org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest
+### ✅ org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest
```
-:white_check_mark: testAuthorizedUserAsOriginalPrincipal
-:white_check_mark: testSuperUserCantListNamespaces
-:white_check_mark: testPersistentList
-:white_check_mark: testSuperUserCanListTenants
+✅ testAuthorizedUserAsOriginalPrincipal
+✅ testSuperUserCantListNamespaces
+✅ testPersistentList
+✅ testSuperUserCanListTenants
```
-### :white_check_mark: org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest
+### ✅ org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest
```
-:white_check_mark: testSerializationEmpty
-:white_check_mark: testSerialization1
-:white_check_mark: testSerializationNull
-:white_check_mark: testSerialization2
+✅ testSerializationEmpty
+✅ testSerialization1
+✅ testSerializationNull
+✅ testSerialization2
```
-### :white_check_mark: org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest
+### ✅ org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest
```
-:white_check_mark: testBatchMessageIndexAckForExclusiveSubscription
-:white_check_mark: testBatchMessageIndexAckForSharedSubscription
-:white_check_mark: testBatchMessageIndexAckForExclusiveSubscription
-:white_check_mark: testBatchMessageIndexAckForSharedSubscription
+✅ testBatchMessageIndexAckForExclusiveSubscription
+✅ testBatchMessageIndexAckForSharedSubscription
+✅ testBatchMessageIndexAckForExclusiveSubscription
+✅ testBatchMessageIndexAckForSharedSubscription
```
-### :white_check_mark: org.apache.pulsar.client.impl.BatchMessageIndexAckTest
+### ✅ org.apache.pulsar.client.impl.BatchMessageIndexAckTest
```
-:white_check_mark: testBatchMessageIndexAckForSharedSubscription
-:white_check_mark: testBatchMessageIndexAckForSharedSubscription
-:white_check_mark: testDoNotRecycleAckSetMultipleTimes
-:white_check_mark: testBatchMessageIndexAckForExclusiveSubscription
-:white_check_mark: testBatchMessageIndexAckForExclusiveSubscription
+✅ testBatchMessageIndexAckForSharedSubscription
+✅ testBatchMessageIndexAckForSharedSubscription
+✅ testDoNotRecycleAckSetMultipleTimes
+✅ testBatchMessageIndexAckForExclusiveSubscription
+✅ testBatchMessageIndexAckForExclusiveSubscription
```
-### :white_check_mark: org.apache.pulsar.client.impl.BrokerClientIntegrationTest
+### ✅ org.apache.pulsar.client.impl.BrokerClientIntegrationTest
```
-:white_check_mark: testDisconnectClientWithoutClosingConnection
-:white_check_mark: testResetCursor
-:white_check_mark: testResetCursor
-:white_check_mark: testCloseBrokerService
-:white_check_mark: testUnsupportedBatchMessageConsumer
-:white_check_mark: testAvroSchemaProducerConsumerWithSpecifiedReaderAndWriter
-:white_check_mark: testJsonSchemaProducerConsumerWithSpecifiedReaderAndWriter
-:white_check_mark: testOperationTimeout
-:white_check_mark: testCleanProducer
-:white_check_mark: testUnsupportedBatchMessageConsumer
-:white_check_mark: testCloseConnectionOnBrokerRejectedRequest
-:white_check_mark: testAddEntryOperationTimeout
-:white_check_mark: testInvalidDynamicConfiguration
-:white_check_mark: testMaxConcurrentTopicLoading
-:white_check_mark: testCloseConnectionOnInternalServerError
+✅ testDisconnectClientWithoutClosingConnection
+✅ testResetCursor
+✅ testResetCursor
+✅ testCloseBrokerService
+✅ testUnsupportedBatchMessageConsumer
+✅ testAvroSchemaProducerConsumerWithSpecifiedReaderAndWriter
+✅ testJsonSchemaProducerConsumerWithSpecifiedReaderAndWriter
+✅ testOperationTimeout
+✅ testCleanProducer
+✅ testUnsupportedBatchMessageConsumer
+✅ testCloseConnectionOnBrokerRejectedRequest
+✅ testAddEntryOperationTimeout
+✅ testInvalidDynamicConfiguration
+✅ testMaxConcurrentTopicLoading
+✅ testCloseConnectionOnInternalServerError
```
-### :white_check_mark: org.apache.pulsar.client.impl.CompactedOutBatchMessageTest
+### ✅ org.apache.pulsar.client.impl.CompactedOutBatchMessageTest
```
-:white_check_mark: testCompactedOutMessages
+✅ testCompactedOutMessages
```
-### :white_check_mark: org.apache.pulsar.client.impl.ConsumerAckResponseTest
+### ✅ org.apache.pulsar.client.impl.ConsumerAckResponseTest
```
-:white_check_mark: testAckResponse
+✅ testAckResponse
```
-### :white_check_mark: org.apache.pulsar.client.impl.ConsumerConfigurationTest
-```
-:white_check_mark: testReadCompactNonPersistentExclusive
-:white_check_mark: testReadCompactPersistentExclusive
-:white_check_mark: testReadCompactPersistentFailover
-:white_check_mark: testReadCompactPersistentShared
-```
-### :white_check_mark: org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate
-```
-:white_check_mark: testConsumerDedup
-:white_check_mark: testConsumerDedup
-:white_check_mark: testConsumerDedup
-:white_check_mark: testConsumerDedup
-:white_check_mark: testConsumerDedup
-:white_check_mark: testConsumerDedup
-:white_check_mark: testConsumerDedup
-```
-### :white_check_mark: org.apache.pulsar.client.impl.ConsumerUnsubscribeTest
-```
-:white_check_mark: testConsumerUnsubscribeReference
-```
-### :white_check_mark: org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth
-```
-:white_check_mark: testTlsClientAuthOverHTTPProtocol
-:white_check_mark: testTlsClientAuthOverBinaryProtocol
-:white_check_mark: testTlsLargeSizeMessage
-```
-### :white_check_mark: org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth
-```
-:white_check_mark: testTlsClientAuthOverHTTPProtocol
-:white_check_mark: testTlsClientAuthOverBinaryProtocol
-:white_check_mark: testTlsLargeSizeMessage
-```
-### :white_check_mark: org.apache.pulsar.client.impl.KeyStoreTlsTest
-```
-:white_check_mark: testValidate
-```
-### :white_check_mark: org.apache.pulsar.client.impl.MessageChecksumTest
-```
-:white_check_mark: testChecksumCompatibilityInMixedVersionBrokerCluster
-:white_check_mark: testTamperingMessageIsDetected
-:white_check_mark: testChecksumCompatibilityInMixedVersionBrokerCluster
-```
-### :white_check_mark: org.apache.pulsar.client.impl.MessageChunkingTest
-```
-:white_check_mark: testPublishWithFailure
-:white_check_mark: testInvalidUseCaseForChunking
-:white_check_mark: testLargeMessage
-:white_check_mark: testExpireIncompleteChunkMessage
-:white_check_mark: testInvalidConfig
-:white_check_mark: testLargeMessageAckTimeOut
-:white_check_mark: testLargeMessageAckTimeOut
-:white_check_mark: testLargeMessage
-:warning: testMaxPendingChunkMessages
-```
-### :white_check_mark: org.apache.pulsar.client.impl.MessageParserTest
-```
-:white_check_mark: testWithoutBatches
-:white_check_mark: testWithBatches
-```
-### :white_check_mark: org.apache.pulsar.client.impl.MultiTopicsReaderTest
-```
-:white_check_mark: testReadMessageWithBatchingWithMessageInclusive
-:white_check_mark: testKeyHashRangeReader
-:white_check_mark: testRemoveSubscriptionForReaderNeedRemoveCursor
-:white_check_mark: testReadMessageWithBatching
-:white_check_mark: testReadMessageWithoutBatchingWithMessageInclusive
-:white_check_mark: testMultiReaderSeek
-:white_check_mark: testReadMessageWithoutBatching
-:white_check_mark: testReaderWithTimeLong
-```
-### :white_check_mark: org.apache.pulsar.client.impl.NegativeAcksTest
-```
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-:white_check_mark: testNegativeAcks
-```
-### :white_check_mark: org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest
-```
-:white_check_mark: testStartEmptyPatternConsumer
-:white_check_mark: testBinaryProtoToGetTopicsOfNamespaceAll
-:white_check_mark: testPatternTopicsSubscribeWithBuilderFail
-:white_check_mark: testPubRateOnNonPersistent
-:white_check_mark: testTopicDeletion
-:white_check_mark: testAutoUnbubscribePatternConsumer
-:white_check_mark: testTopicsPatternFilter
-:white_check_mark: testBinaryProtoToGetTopicsOfNamespaceNonPersistent
-:white_check_mark: testBinaryProtoToGetTopicsOfNamespacePersistent
-:white_check_mark: testTopicsListMinus
-:white_check_mark: testAutoSubscribePatternConsumer
-```
-### :white_check_mark: org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest
-```
-:white_check_mark: testSharedAckedNormalTopic
-:white_check_mark: testUnAckedMessageTrackerSize
-:white_check_mark: testSharedAckedPartitionedTopic
-:white_check_mark: testExclusiveAckedNormalTopic
-:white_check_mark: testFailoverAckedNormalTopic
-```
-### :white_check_mark: org.apache.pulsar.client.impl.PulsarMultiHostClientTest
-```
-:white_check_mark: testMultiHostUrlRetrySuccess
-:white_check_mark: testGetPartitionedTopicDataTimeout
-:white_check_mark: testGetPartitionedTopicMetaData
-```
-### :white_check_mark: org.apache.pulsar.client.impl.RawMessageSerDeserTest
-```
-:white_check_mark: testSerializationAndDeserialization
-```
-### :white_check_mark: org.apache.pulsar.client.impl.SchemaDeleteTest
-```
-:white_check_mark: createTopicDeleteTopicCreateTopic
-```
-### :white_check_mark: org.apache.pulsar.client.impl.SequenceIdWithErrorTest
-```
-:white_check_mark: testCheckSequenceId
-:white_check_mark: testDeleteTopicWithMissingData
-:white_check_mark: testTopicWithWildCardChar
-:warning: testCrashBrokerWithoutCursorLedgerLeak
-:warning: testSkipCorruptDataLedger
-```
-### :white_check_mark: org.apache.pulsar.client.impl.TopicDoesNotExistsTest
-```
-:white_check_mark: testCreateConsumerOnNotExistsTopic
-:white_check_mark: testCreateProducerOnNotExistsTopic
-```
-### :white_check_mark: org.apache.pulsar.client.impl.TopicFromMessageTest
-```
-:white_check_mark: testSingleTopicConsumerNoBatchFullName
-:white_check_mark: testMultiTopicConsumerBatchShortName
-:white_check_mark: testSingleTopicConsumerNoBatchShortName
-:white_check_mark: testMultiTopicConsumerNoBatchShortName
-:white_check_mark: testSingleTopicConsumerBatchShortName
-```
-### :white_check_mark: org.apache.pulsar.client.impl.TopicsConsumerImplTest
-```
-:white_check_mark: testTopicAutoUpdatePartitions
-:white_check_mark: testDifferentTopicsNameSubscribe
-:white_check_mark: testGetLastMessageId
-:white_check_mark: testConsumerUnackedRedelivery
-:white_check_mark: testSubscriptionMustCompleteWhenOperationTimeoutOnMultipleTopics
-:white_check_mark: testConsumerDistributionInFailoverSubscriptionWhenUpdatePartitions
-:white_check_mark: multiTopicsInDifferentNameSpace
-:white_check_mark: testDefaultBacklogTTL
-:white_check_mark: testGetConsumersAndGetTopics
-:white_check_mark: testSubscribeUnsubscribeSingleTopic
-:white_check_mark: testResubscribeSameTopic
-:white_check_mark: testSyncProducerAndConsumer
-:white_check_mark: testPartitionsUpdatesForMultipleTopics
-:white_check_mark: testTopicsNameSubscribeWithBuilderFail
-:white_check_mark: testMultiTopicsMessageListener
-:white_check_mark: testTopicNameValid
-:white_check_mark: testAsyncConsumer
-```
-### :white_check_mark: org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest
-```
-:white_check_mark: testCheckUnAcknowledgedMessageTimer
-:white_check_mark: testExclusiveSingleAckedNormalTopic
-:white_check_mark: testFailoverSingleAckedPartitionedTopic
-:white_check_mark: testSharedSingleAckedPartitionedTopic
-:white_check_mark: testAckTimeoutMinValue
-:white_check_mark: testExclusiveCumulativeAckedNormalTopic
-:white_check_mark: testSingleMessageBatch
-```
-### :white_check_mark: org.apache.pulsar.client.impl.ZeroQueueSizeTest
-```
-:white_check_mark: zeroQueueSizeSharedSubscription
-:white_check_mark: testPauseAndResume
-:white_check_mark: testZeroQueueSizeMessageRedeliveryForAsyncReceive
-:white_check_mark: zeroQueueSizeConsumerListener
-:white_check_mark: zeroQueueSizeFailoverSubscription
-:white_check_mark: validQueueSizeConfig
-:white_check_mark: zeroQueueSizeNormalConsumer
-:white_check_mark: zeroQueueSizeReceieveAsyncInCompatibility
-:white_check_mark: InvalidQueueSizeConfig
-:white_check_mark: testZeroQueueSizeMessageRedeliveryForListener
-:white_check_mark: testZeroQueueSizeMessageRedelivery
-:white_check_mark: zeroQueueSizePartitionedTopicInCompatibility
-:white_check_mark: testFailedZeroQueueSizeBatchMessage
-:white_check_mark: testPauseAndResumeWithUnloading
-```
-### :white_check_mark: org.apache.pulsar.common.api.raw.RawMessageImplTest
-```
-:white_check_mark: testGetProperties
-```
-### :white_check_mark: org.apache.pulsar.common.compression.CommandsTest
-```
-:white_check_mark: testChecksumSendCommand
-```
-### :white_check_mark: org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest
-```
-:white_check_mark: testCompressDecompress
-:white_check_mark: testCompressDecompress
-:white_check_mark: testCompressDecompress
-:white_check_mark: testCompressDecompress
-:white_check_mark: testCompressDecompress
-:white_check_mark: testCompressDecompress
-```
-### :white_check_mark: org.apache.pulsar.common.compression.CompressorCodecTest
-```
-:white_check_mark: testCompressDecompress
-:white_check_mark: testMultpileUsages
-:white_check_mark: testMultpileUsages
-:white_check_mark: testCompressDecompress
-:white_check_mark: testMultpileUsages
-:white_check_mark: testCompressDecompress
-:white_check_mark: testMultpileUsages
-:white_check_mark: testCompressDecompress
-:white_check_mark: testDecompressFromSampleBuffer
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testCodecProvider
-:white_check_mark: testEmptyInput
-:white_check_mark: testEmptyInput
-:white_check_mark: testCompressDecompress
-:white_check_mark: testCodecProvider
-:white_check_mark: testDecompressFromSampleBuffer
-:white_check_mark: testMultpileUsages
-:white_check_mark: testCodecProvider
-:white_check_mark: testEmptyInput
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testCompressDecompress
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testCompressDecompress
-:white_check_mark: testCompressDecompress
-:white_check_mark: testMultpileUsages
-:white_check_mark: testEmptyInput
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testDecompressFromSampleBuffer
-:white_check_mark: testDecompressFromSampleBuffer
-:white_check_mark: testDecompressFromSampleBuffer
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testMultpileUsages
-:white_check_mark: testCompressDecompress
-:white_check_mark: testCodecProvider
-:white_check_mark: testMultpileUsages
-:white_check_mark: testCompressDecompress
-:white_check_mark: testMultpileUsages
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testEmptyInput
-:white_check_mark: testCodecProvider
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testDecompressReadonlyByteBuf
-:white_check_mark: testMultpileUsages
-```
-### :white_check_mark: org.apache.pulsar.common.compression.Crc32cChecksumTest
-```
-:white_check_mark: testCrc32cHardware
-:white_check_mark: testCrc32cDirectMemoryHardware
-:white_check_mark: testCrc32c
-:white_check_mark: testCrc32cSoftware
-:white_check_mark: testCrc32cIncremental
-:white_check_mark: testCrc32cIncrementalUsingProvider
-```
-### :white_check_mark: org.apache.pulsar.common.lookup.data.LookupDataTest
-```
-:white_check_mark: testLoadReportSerialization
-:white_check_mark: testUrlEncoder
-:white_check_mark: serializeToJsonTest
-:white_check_mark: withConstructor
-```
-### :white_check_mark: org.apache.pulsar.common.naming.MetadataTests
-```
-:white_check_mark: testInvalidMetadata
-:white_check_mark: testValidMetadata
-```
-### :white_check_mark: org.apache.pulsar.common.naming.NamespaceBundlesTest
-```
-:white_check_mark: testConstructor
-:white_check_mark: testSplitBundleInTwo
-:white_check_mark: testsplitBundles
-:white_check_mark: testFindBundle
-:white_check_mark: testSplitBundleByFixBoundary
-```
-### :white_check_mark: org.apache.pulsar.common.naming.NamespaceBundleTest
-```
-:white_check_mark: testIncludes
-:white_check_mark: testGetBundle
-:white_check_mark: testCompareTo
-:white_check_mark: testConstructor
-:white_check_mark: testToString
-:white_check_mark: testEquals
-```
-### :white_check_mark: org.apache.pulsar.common.naming.NamespaceNameTest
-```
-:white_check_mark: namespace
-:white_check_mark: testNewScheme
-```
-### :white_check_mark: org.apache.pulsar.common.naming.ServiceConfigurationTest
-```
-:white_check_mark: testOptionalSettingPresent
-:white_check_mark: testOptionalSettingEmpty
-:white_check_mark: testInit
-:white_check_mark: testInitFailure
+### ✅ org.apache.pulsar.client.impl.ConsumerConfigurationTest
+```
+✅ testReadCompactNonPersistentExclusive
+✅ testReadCompactPersistentExclusive
+✅ testReadCompactPersistentFailover
+✅ testReadCompactPersistentShared
+```
+### ✅ org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate
+```
+✅ testConsumerDedup
+✅ testConsumerDedup
+✅ testConsumerDedup
+✅ testConsumerDedup
+✅ testConsumerDedup
+✅ testConsumerDedup
+✅ testConsumerDedup
+```
+### ✅ org.apache.pulsar.client.impl.ConsumerUnsubscribeTest
+```
+✅ testConsumerUnsubscribeReference
+```
+### ✅ org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth
+```
+✅ testTlsClientAuthOverHTTPProtocol
+✅ testTlsClientAuthOverBinaryProtocol
+✅ testTlsLargeSizeMessage
+```
+### ✅ org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth
+```
+✅ testTlsClientAuthOverHTTPProtocol
+✅ testTlsClientAuthOverBinaryProtocol
+✅ testTlsLargeSizeMessage
+```
+### ✅ org.apache.pulsar.client.impl.KeyStoreTlsTest
+```
+✅ testValidate
+```
+### ✅ org.apache.pulsar.client.impl.MessageChecksumTest
+```
+✅ testChecksumCompatibilityInMixedVersionBrokerCluster
+✅ testTamperingMessageIsDetected
+✅ testChecksumCompatibilityInMixedVersionBrokerCluster
+```
+### ✅ org.apache.pulsar.client.impl.MessageChunkingTest
+```
+✅ testPublishWithFailure
+✅ testInvalidUseCaseForChunking
+✅ testLargeMessage
+✅ testExpireIncompleteChunkMessage
+✅ testInvalidConfig
+✅ testLargeMessageAckTimeOut
+✅ testLargeMessageAckTimeOut
+✅ testLargeMessage
+⚪ testMaxPendingChunkMessages
+```
+### ✅ org.apache.pulsar.client.impl.MessageParserTest
+```
+✅ testWithoutBatches
+✅ testWithBatches
+```
+### ✅ org.apache.pulsar.client.impl.MultiTopicsReaderTest
+```
+✅ testReadMessageWithBatchingWithMessageInclusive
+✅ testKeyHashRangeReader
+✅ testRemoveSubscriptionForReaderNeedRemoveCursor
+✅ testReadMessageWithBatching
+✅ testReadMessageWithoutBatchingWithMessageInclusive
+✅ testMultiReaderSeek
+✅ testReadMessageWithoutBatching
+✅ testReaderWithTimeLong
+```
+### ✅ org.apache.pulsar.client.impl.NegativeAcksTest
+```
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+✅ testNegativeAcks
+```
+### ✅ org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest
+```
+✅ testStartEmptyPatternConsumer
+✅ testBinaryProtoToGetTopicsOfNamespaceAll
+✅ testPatternTopicsSubscribeWithBuilderFail
+✅ testPubRateOnNonPersistent
+✅ testTopicDeletion
+✅ testAutoUnbubscribePatternConsumer
+✅ testTopicsPatternFilter
+✅ testBinaryProtoToGetTopicsOfNamespaceNonPersistent
+✅ testBinaryProtoToGetTopicsOfNamespacePersistent
+✅ testTopicsListMinus
+✅ testAutoSubscribePatternConsumer
+```
+### ✅ org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest
+```
+✅ testSharedAckedNormalTopic
+✅ testUnAckedMessageTrackerSize
+✅ testSharedAckedPartitionedTopic
+✅ testExclusiveAckedNormalTopic
+✅ testFailoverAckedNormalTopic
+```
+### ✅ org.apache.pulsar.client.impl.PulsarMultiHostClientTest
+```
+✅ testMultiHostUrlRetrySuccess
+✅ testGetPartitionedTopicDataTimeout
+✅ testGetPartitionedTopicMetaData
+```
+### ✅ org.apache.pulsar.client.impl.RawMessageSerDeserTest
+```
+✅ testSerializationAndDeserialization
+```
+### ✅ org.apache.pulsar.client.impl.SchemaDeleteTest
+```
+✅ createTopicDeleteTopicCreateTopic
+```
+### ✅ org.apache.pulsar.client.impl.SequenceIdWithErrorTest
+```
+✅ testCheckSequenceId
+✅ testDeleteTopicWithMissingData
+✅ testTopicWithWildCardChar
+⚪ testCrashBrokerWithoutCursorLedgerLeak
+⚪ testSkipCorruptDataLedger
+```
+### ✅ org.apache.pulsar.client.impl.TopicDoesNotExistsTest
+```
+✅ testCreateConsumerOnNotExistsTopic
+✅ testCreateProducerOnNotExistsTopic
+```
+### ✅ org.apache.pulsar.client.impl.TopicFromMessageTest
+```
+✅ testSingleTopicConsumerNoBatchFullName
+✅ testMultiTopicConsumerBatchShortName
+✅ testSingleTopicConsumerNoBatchShortName
+✅ testMultiTopicConsumerNoBatchShortName
+✅ testSingleTopicConsumerBatchShortName
+```
+### ✅ org.apache.pulsar.client.impl.TopicsConsumerImplTest
+```
+✅ testTopicAutoUpdatePartitions
+✅ testDifferentTopicsNameSubscribe
+✅ testGetLastMessageId
+✅ testConsumerUnackedRedelivery
+✅ testSubscriptionMustCompleteWhenOperationTimeoutOnMultipleTopics
+✅ testConsumerDistributionInFailoverSubscriptionWhenUpdatePartitions
+✅ multiTopicsInDifferentNameSpace
+✅ testDefaultBacklogTTL
+✅ testGetConsumersAndGetTopics
+✅ testSubscribeUnsubscribeSingleTopic
+✅ testResubscribeSameTopic
+✅ testSyncProducerAndConsumer
+✅ testPartitionsUpdatesForMultipleTopics
+✅ testTopicsNameSubscribeWithBuilderFail
+✅ testMultiTopicsMessageListener
+✅ testTopicNameValid
+✅ testAsyncConsumer
+```
+### ✅ org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest
+```
+✅ testCheckUnAcknowledgedMessageTimer
+✅ testExclusiveSingleAckedNormalTopic
+✅ testFailoverSingleAckedPartitionedTopic
+✅ testSharedSingleAckedPartitionedTopic
+✅ testAckTimeoutMinValue
+✅ testExclusiveCumulativeAckedNormalTopic
+✅ testSingleMessageBatch
+```
+### ✅ org.apache.pulsar.client.impl.ZeroQueueSizeTest
+```
+✅ zeroQueueSizeSharedSubscription
+✅ testPauseAndResume
+✅ testZeroQueueSizeMessageRedeliveryForAsyncReceive
+✅ zeroQueueSizeConsumerListener
+✅ zeroQueueSizeFailoverSubscription
+✅ validQueueSizeConfig
+✅ zeroQueueSizeNormalConsumer
+✅ zeroQueueSizeReceieveAsyncInCompatibility
+✅ InvalidQueueSizeConfig
+✅ testZeroQueueSizeMessageRedeliveryForListener
+✅ testZeroQueueSizeMessageRedelivery
+✅ zeroQueueSizePartitionedTopicInCompatibility
+✅ testFailedZeroQueueSizeBatchMessage
+✅ testPauseAndResumeWithUnloading
+```
+### ✅ org.apache.pulsar.common.api.raw.RawMessageImplTest
+```
+✅ testGetProperties
+```
+### ✅ org.apache.pulsar.common.compression.CommandsTest
+```
+✅ testChecksumSendCommand
+```
+### ✅ org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest
+```
+✅ testCompressDecompress
+✅ testCompressDecompress
+✅ testCompressDecompress
+✅ testCompressDecompress
+✅ testCompressDecompress
+✅ testCompressDecompress
+```
+### ✅ org.apache.pulsar.common.compression.CompressorCodecTest
+```
+✅ testCompressDecompress
+✅ testMultpileUsages
+✅ testMultpileUsages
+✅ testCompressDecompress
+✅ testMultpileUsages
+✅ testCompressDecompress
+✅ testMultpileUsages
+✅ testCompressDecompress
+✅ testDecompressFromSampleBuffer
+✅ testDecompressReadonlyByteBuf
+✅ testDecompressReadonlyByteBuf
+✅ testCodecProvider
+✅ testEmptyInput
+✅ testEmptyInput
+✅ testCompressDecompress
+✅ testCodecProvider
+✅ testDecompressFromSampleBuffer
+✅ testMultpileUsages
+✅ testCodecProvider
+✅ testEmptyInput
+✅ testDecompressReadonlyByteBuf
+✅ testCompressDecompress
+✅ testDecompressReadonlyByteBuf
+✅ testCompressDecompress
+✅ testCompressDecompress
+✅ testMultpileUsages
+✅ testEmptyInput
+✅ testDecompressReadonlyByteBuf
+✅ testDecompressFromSampleBuffer
+✅ testDecompressFromSampleBuffer
+✅ testDecompressFromSampleBuffer
+✅ testDecompressReadonlyByteBuf
+✅ testDecompressReadonlyByteBuf
+✅ testMultpileUsages
+✅ testCompressDecompress
+✅ testCodecProvider
+✅ testMultpileUsages
+✅ testCompressDecompress
+✅ testMultpileUsages
+✅ testDecompressReadonlyByteBuf
+✅ testEmptyInput
+✅ testCodecProvider
+✅ testDecompressReadonlyByteBuf
+✅ testDecompressReadonlyByteBuf
+✅ testMultpileUsages
+```
+### ✅ org.apache.pulsar.common.compression.Crc32cChecksumTest
+```
+✅ testCrc32cHardware
+✅ testCrc32cDirectMemoryHardware
+✅ testCrc32c
+✅ testCrc32cSoftware
+✅ testCrc32cIncremental
+✅ testCrc32cIncrementalUsingProvider
+```
+### ✅ org.apache.pulsar.common.lookup.data.LookupDataTest
+```
+✅ testLoadReportSerialization
+✅ testUrlEncoder
+✅ serializeToJsonTest
+✅ withConstructor
+```
+### ✅ org.apache.pulsar.common.naming.MetadataTests
+```
+✅ testInvalidMetadata
+✅ testValidMetadata
+```
+### ✅ org.apache.pulsar.common.naming.NamespaceBundlesTest
+```
+✅ testConstructor
+✅ testSplitBundleInTwo
+✅ testsplitBundles
+✅ testFindBundle
+✅ testSplitBundleByFixBoundary
+```
+### ✅ org.apache.pulsar.common.naming.NamespaceBundleTest
+```
+✅ testIncludes
+✅ testGetBundle
+✅ testCompareTo
+✅ testConstructor
+✅ testToString
+✅ testEquals
+```
+### ✅ org.apache.pulsar.common.naming.NamespaceNameTest
+```
+✅ namespace
+✅ testNewScheme
+```
+### ✅ org.apache.pulsar.common.naming.ServiceConfigurationTest
+```
+✅ testOptionalSettingPresent
+✅ testOptionalSettingEmpty
+✅ testInit
+✅ testInitFailure
```
-### :white_check_mark: org.apache.pulsar.common.naming.TopicNameTest
+### ✅ org.apache.pulsar.common.naming.TopicNameTest
```
-:white_check_mark: testShortTopicName
-:white_check_mark: topic
-:white_check_mark: testTopicNameWithoutCluster
-:white_check_mark: testDecodeEncode
+✅ testShortTopicName
+✅ topic
+✅ testTopicNameWithoutCluster
+✅ testDecodeEncode
```
-### :white_check_mark: org.apache.pulsar.common.net.ServiceURITest
+### ✅ org.apache.pulsar.common.net.ServiceURITest
```
-:white_check_mark: testEmptyServiceUriString
-:white_check_mark: testMultipleHostsSemiColon
-:white_check_mark: testInvalidServiceUris
-:white_check_mark: testMultipleHostsWithoutHttpPorts
-:white_check_mark: testRootPath
-:white_check_mark: testMultipleHostsMixedPorts
-:white_check_mark: testMultipleHostsWithoutPulsarTlsPorts
-:white_check_mark: testUserInfoWithMultipleHosts
-:white_check_mark: testMultipleHostsComma
-:white_check_mark: testMultipleHostsMixed
-:white_check_mark: testUserInfo
-:white_check_mark: testIpv6UriWithoutPulsarPort
-:white_check_mark: testMultiIpv6Uri
-:white_check_mark: testMultiIpv6UriWithoutPulsarPort
-:white_check_mark: testEmptyPath
-:white_check_mark: testNullServiceUriString
-:white_check_mark: testNullServiceUriInstance
-:white_check_mark: testMissingServiceName
-:white_check_mark: testMultipleHostsWithoutHttpsPorts
-:white_check_mark: testMultipleHostsWithoutPulsarPorts
-:white_check_mark: testIpv6Uri
+✅ testEmptyServiceUriString
+✅ testMultipleHostsSemiColon
+✅ testInvalidServiceUris
+✅ testMultipleHostsWithoutHttpPorts
+✅ testRootPath
+✅ testMultipleHostsMixedPorts
+✅ testMultipleHostsWithoutPulsarTlsPorts
+✅ testUserInfoWithMultipleHosts
+✅ testMultipleHostsComma
+✅ testMultipleHostsMixed
+✅ testUserInfo
+✅ testIpv6UriWithoutPulsarPort
+✅ testMultiIpv6Uri
+✅ testMultiIpv6UriWithoutPulsarPort
+✅ testEmptyPath
+✅ testNullServiceUriString
+✅ testNullServiceUriInstance
+✅ testMissingServiceName
+✅ testMultipleHostsWithoutHttpsPorts
+✅ testMultipleHostsWithoutPulsarPorts
+✅ testIpv6Uri
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.AutoFailoverPolicyDataTest
+### ✅ org.apache.pulsar.common.policies.data.AutoFailoverPolicyDataTest
```
-:white_check_mark: testAutoFailoverPolicyData
+✅ testAutoFailoverPolicyData
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.AutoFailoverPolicyTypeTest
+### ✅ org.apache.pulsar.common.policies.data.AutoFailoverPolicyTypeTest
```
-:white_check_mark: testAutoFailoverPolicyType
+✅ testAutoFailoverPolicyType
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest
+### ✅ org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest
```
-:white_check_mark: testInvalidTopicType
-:white_check_mark: testNumPartitionsTooLow
-:white_check_mark: testNumPartitionsNotSet
-:white_check_mark: testValidOverrideNonPartitioned
-:white_check_mark: testNumPartitionsOnNonPartitioned
-:white_check_mark: testValidOverridePartitioned
+✅ testInvalidTopicType
+✅ testNumPartitionsTooLow
+✅ testNumPartitionsNotSet
+✅ testValidOverrideNonPartitioned
+✅ testNumPartitionsOnNonPartitioned
+✅ testValidOverridePartitioned
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.BacklogQuotaTest
+### ✅ org.apache.pulsar.common.policies.data.BacklogQuotaTest
```
-:white_check_mark: testBacklogQuotaIdentity
+✅ testBacklogQuotaIdentity
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.ClusterDataTest
+### ✅ org.apache.pulsar.common.policies.data.ClusterDataTest
```
-:white_check_mark: simple
+✅ simple
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.ConsumerStatsTest
+### ✅ org.apache.pulsar.common.policies.data.ConsumerStatsTest
```
-:white_check_mark: testConsumerStats
+✅ testConsumerStats
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest
+### ✅ org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest
```
-:white_check_mark: testDecodeFailed
-:white_check_mark: testEncodeDecodeSuccessfully
+✅ testDecodeFailed
+✅ testEncodeDecodeSuccessfully
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.LocalPolicesTest
+### ✅ org.apache.pulsar.common.policies.data.LocalPolicesTest
```
-:white_check_mark: testLocalPolices
+✅ testLocalPolices
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.NamespaceIsolationDataTest
+### ✅ org.apache.pulsar.common.policies.data.NamespaceIsolationDataTest
```
-:white_check_mark: testNamespaceIsolationData
+✅ testNamespaceIsolationData
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.NamespaceOwnershipStatusTest
+### ✅ org.apache.pulsar.common.policies.data.NamespaceOwnershipStatusTest
```
-:white_check_mark: testSerialization
+✅ testSerialization
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.OffloadPoliciesTest
+### ✅ org.apache.pulsar.common.policies.data.OffloadPoliciesTest
```
-:white_check_mark: testGcsConfiguration
-:white_check_mark: mergeTest
-:white_check_mark: compatibleWithConfigFileTest
-:white_check_mark: testCreateByProperties
-:white_check_mark: testS3Configuration
-:white_check_mark: oldPoliciesCompatibleTest
+✅ testGcsConfiguration
+✅ mergeTest
+✅ compatibleWithConfigFileTest
+✅ testCreateByProperties
+✅ testS3Configuration
+✅ oldPoliciesCompatibleTest
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.PartitionedTopicStatsTest
+### ✅ org.apache.pulsar.common.policies.data.PartitionedTopicStatsTest
```
-:white_check_mark: testPartitionedTopicStats
+✅ testPartitionedTopicStats
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.PersistencePoliciesTest
+### ✅ org.apache.pulsar.common.policies.data.PersistencePoliciesTest
```
-:white_check_mark: testPersistencePolicies
+✅ testPersistencePolicies
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.PersistentOfflineTopicStatsTest
+### ✅ org.apache.pulsar.common.policies.data.PersistentOfflineTopicStatsTest
```
-:white_check_mark: testPersistentOfflineTopicStats
+✅ testPersistentOfflineTopicStats
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.PersistentTopicStatsTest
+### ✅ org.apache.pulsar.common.policies.data.PersistentTopicStatsTest
```
-:white_check_mark: testPersistentTopicStatsAggregation
-:white_check_mark: testPersistentTopicStats
+✅ testPersistentTopicStatsAggregation
+✅ testPersistentTopicStats
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.PoliciesDataTest
+### ✅ org.apache.pulsar.common.policies.data.PoliciesDataTest
```
-:white_check_mark: propertyAdmin
-:white_check_mark: policies
-:white_check_mark: bundlesData
-:white_check_mark: bundlesPolicies
+✅ propertyAdmin
+✅ policies
+✅ bundlesData
+✅ bundlesPolicies
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.PublisherStatsTest
+### ✅ org.apache.pulsar.common.policies.data.PublisherStatsTest
```
-:white_check_mark: testPublisherStats
-:white_check_mark: testPublisherStatsAggregation
+✅ testPublisherStats
+✅ testPublisherStatsAggregation
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.ReplicatorStatsTest
+### ✅ org.apache.pulsar.common.policies.data.ReplicatorStatsTest
```
-:white_check_mark: testReplicatorStatsAdd
-:white_check_mark: testReplicatorStatsNull
+✅ testReplicatorStatsAdd
+✅ testReplicatorStatsNull
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.ResourceQuotaTest
+### ✅ org.apache.pulsar.common.policies.data.ResourceQuotaTest
```
-:white_check_mark: testResourceQuotaDefault
-:white_check_mark: testResourceQuotaEqual
+✅ testResourceQuotaDefault
+✅ testResourceQuotaEqual
```
-### :white_check_mark: org.apache.pulsar.common.policies.data.RetentionPolicesTest
+### ✅ org.apache.pulsar.common.policies.data.RetentionPolicesTest
```
-:white_check_mark: testRetentionPolices
+✅ testRetentionPolices
```
-### :white_check_mark: org.apache.pulsar.common.policies.impl.AutoFailoverPolicyFactoryTest
+### ✅ org.apache.pulsar.common.policies.impl.AutoFailoverPolicyFactoryTest
```
-:white_check_mark: testAutoFailoverPolicyFactory
+✅ testAutoFailoverPolicyFactory
```
-### :white_check_mark: org.apache.pulsar.common.policies.impl.MinAvailablePolicyTest
+### ✅ org.apache.pulsar.common.policies.impl.MinAvailablePolicyTest
```
-:white_check_mark: testMinAvailablePolicty
+✅ testMinAvailablePolicty
```
-### :white_check_mark: org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest
+### ✅ org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest
```
-:white_check_mark: testBrokerAssignment
-:white_check_mark: testGetNamespaceIsolationPolicyByName
-:white_check_mark: testDeletePolicy
-:white_check_mark: testSetPolicy
-:white_check_mark: testJsonSerialization
-:white_check_mark: testDefaultConstructor
-:white_check_mark: testGetNamespaceIsolationPolicyByNamespace
+✅ testBrokerAssignment
+✅ testGetNamespaceIsolationPolicyByName
+✅ testDeletePolicy
+✅ testSetPolicy
+✅ testJsonSerialization
+✅ testDefaultConstructor
+✅ testGetNamespaceIsolationPolicyByNamespace
```
-### :white_check_mark: org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest
+### ✅ org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest
```
-:white_check_mark: testFindBrokers
-:white_check_mark: testGetSecondaryBrokers
-:white_check_mark: testShouldFailover
-:white_check_mark: testGetPrimaryBrokers
-:white_check_mark: testGetAvailablePrimaryBrokers
-:white_check_mark: testConstructor
-:white_check_mark: testIsPrimaryOrSecondaryBroker
+✅ testFindBrokers
+✅ testGetSecondaryBrokers
+✅ testShouldFailover
+✅ testGetPrimaryBrokers
+✅ testGetAvailablePrimaryBrokers
+✅ testConstructor
+✅ testIsPrimaryOrSecondaryBroker
```
-### :white_check_mark: org.apache.pulsar.common.protocol.ByteBufPairTest
+### ✅ org.apache.pulsar.common.protocol.ByteBufPairTest
```
-:white_check_mark: testEncoder
-:white_check_mark: testDoubleByteBuf
+✅ testEncoder
+✅ testDoubleByteBuf
```
-### :white_check_mark: org.apache.pulsar.common.protocol.CommandUtilsTests
+### ✅ org.apache.pulsar.common.protocol.CommandUtilsTests
```
-:white_check_mark: testSkipBrokerEntryMetadata
-:white_check_mark: testPeekBrokerEntryMetadata
-:white_check_mark: testParseBrokerEntryMetadata
-:white_check_mark: testMetadataFromCommandSubscribe
-:white_check_mark: testMetadataFromCommandProducer
-:white_check_mark: testAddBrokerEntryMetadata
-:white_check_mark: testByteBufComposite
+✅ testSkipBrokerEntryMetadata
+✅ testPeekBrokerEntryMetadata
+✅ testParseBrokerEntryMetadata
+✅ testMetadataFromCommandSubscribe
+✅ testMetadataFromCommandProducer
+✅ testAddBrokerEntryMetadata
+✅ testByteBufComposite
```
-### :white_check_mark: org.apache.pulsar.common.protocol.MarkersTest
+### ✅ org.apache.pulsar.common.protocol.MarkersTest
```
-:white_check_mark: testSnapshot
-:white_check_mark: testTxnAbortMarker
-:white_check_mark: testUpdate
-:white_check_mark: testTxnCommitMarker
-:white_check_mark: testSnapshotRequest
-:white_check_mark: testSnapshotResponse
+✅ testSnapshot
+✅ testTxnAbortMarker
+✅ testUpdate
+✅ testTxnCommitMarker
+✅ testSnapshotRequest
+✅ testSnapshotResponse
```
-### :white_check_mark: org.apache.pulsar.common.protocol.PulsarDecoderTest
+### ✅ org.apache.pulsar.common.protocol.PulsarDecoderTest
```
-:white_check_mark: testChannelRead
+✅ testChannelRead
```
-### :white_check_mark: org.apache.pulsar.common.stats.JvmDefaultGCMetricsLoggerTest
+### ✅ org.apache.pulsar.common.stats.JvmDefaultGCMetricsLoggerTest
```
-:white_check_mark: testInvokeJVMInternals
+✅ testInvokeJVMInternals
```
-### :white_check_mark: org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest
+### ✅ org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest
```
-:white_check_mark: testResetWords
-:white_check_mark: testRecycle
+✅ testResetWords
+✅ testRecycle
```
-### :white_check_mark: org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest
+### ✅ org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest
```
-:white_check_mark: testRecycle
-:white_check_mark: testGenerateByBitSet
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest
-```
-:white_check_mark: testRehashingWithDeletes
-:white_check_mark: concurrentInsertionsAndReads
-:white_check_mark: testRemove
-:white_check_mark: testRehashing
-:white_check_mark: simpleInsertions
-:white_check_mark: testComputeIfAbsent
-:white_check_mark: testConstructor
-:white_check_mark: testPutIfAbsent
-:white_check_mark: testIteration
-:white_check_mark: testHashConflictWithDeletion
-:white_check_mark: concurrentInsertions
-:white_check_mark: stressConcurrentInsertionsAndReads
-:white_check_mark: testNegativeUsedBucketCount
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest
-```
-:white_check_mark: concurrentInsertionsAndReads
-:white_check_mark: testEqualsObjects
-:white_check_mark: testIfRemoval
-:white_check_mark: testRehashing
-:white_check_mark: testToString
-:white_check_mark: testRemove
-:white_check_mark: testItems
-:white_check_mark: testRehashingWithDeletes
-:white_check_mark: testHashConflictWithDeletion
-:white_check_mark: testIteration
-:white_check_mark: simpleInsertions
-:white_check_mark: testRehashingRemoval
-:white_check_mark: testRemoval
-:white_check_mark: testConstructor
-:white_check_mark: concurrentInsertions
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest
-```
-:white_check_mark: testRemove
-:white_check_mark: simpleInsertions
-:white_check_mark: testPutIfAbsent
-:white_check_mark: concurrentInsertions
-:white_check_mark: testHashConflictWithDeletion
-:white_check_mark: testRehashingWithDeletes
-:white_check_mark: testComputeIfAbsent
-:white_check_mark: testRehashing
-:white_check_mark: testIteration
-:white_check_mark: testEqualsKeys
-:white_check_mark: concurrentInsertionsAndReads
-:white_check_mark: testConstructor
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest
-```
-:white_check_mark: concurrentInsertions
-:white_check_mark: testRehashing
-:white_check_mark: testRemoval
-:white_check_mark: testEqualsObjects
-:white_check_mark: testHashConflictWithDeletion
-:white_check_mark: testConstructor
-:white_check_mark: concurrentInsertionsAndReads
-:white_check_mark: testIteration
-:white_check_mark: simpleInsertions
-:white_check_mark: testRehashingWithDeletes
-:white_check_mark: testRemove
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest
-```
-:white_check_mark: testAddForDifferentKey
-:white_check_mark: testToString
-:white_check_mark: testCacheFlagConflict
-:white_check_mark: testDeleteWithLeastMost
-:white_check_mark: testDeleteForDifferentKey
-:white_check_mark: testLastRange
-:white_check_mark: testAddCompareCompareWithGuava
-:white_check_mark: testSpanWithGuava
-:white_check_mark: testDeleteCompareWithGuava
-:white_check_mark: testFirstRange
-:white_check_mark: testAddForSameKey
-:white_check_mark: testDeleteWithAtMost
-:white_check_mark: testRangeContaining
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest
-```
-:white_check_mark: concurrentInsertions
-:white_check_mark: testIfRemoval
-:white_check_mark: testRemoval
-:white_check_mark: testRemove
-:white_check_mark: testItems
-:white_check_mark: testEqualsObjects
-:white_check_mark: simpleInsertions
-:white_check_mark: testIteration
-:white_check_mark: testToString
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.FieldParserTest
-```
-:white_check_mark: testUpdateObject
-:white_check_mark: testConversion
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest
-```
-:white_check_mark: removeTest
-:white_check_mark: growArray
-:white_check_mark: pollTimeout
-:white_check_mark: simple
-:white_check_mark: pollTimeout2
-:white_check_mark: blockingTake
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest
-```
-:white_check_mark: testItems
-:white_check_mark: testRemove
-:white_check_mark: testExpandQueue
-:white_check_mark: testInsertAndRemove
-:white_check_mark: testEqualsObjects
-:white_check_mark: testExpandRemoval
-:white_check_mark: testIteration
-:white_check_mark: simpleInsertions
-:white_check_mark: concurrentInsertions
-:white_check_mark: testConstructor
-:white_check_mark: testSetWithDuplicateInsert
-:white_check_mark: testExpandWithDeletes
-:white_check_mark: concurrentInsertionsAndReads
-:white_check_mark: testRemoval
-:white_check_mark: testIfRemoval
-```
-### :white_check_mark: org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest
-```
-:white_check_mark: testQueue
-:white_check_mark: testCheckForEmpty
-:white_check_mark: testCompareWithSamePrefix
+✅ testRecycle
+✅ testGenerateByBitSet
+```
+### ✅ org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest
+```
+✅ testRehashingWithDeletes
+✅ concurrentInsertionsAndReads
+✅ testRemove
+✅ testRehashing
+✅ simpleInsertions
+✅ testComputeIfAbsent
+✅ testConstructor
+✅ testPutIfAbsent
+✅ testIteration
+✅ testHashConflictWithDeletion
+✅ concurrentInsertions
+✅ stressConcurrentInsertionsAndReads
+✅ testNegativeUsedBucketCount
+```
+### ✅ org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest
+```
+✅ concurrentInsertionsAndReads
+✅ testEqualsObjects
+✅ testIfRemoval
+✅ testRehashing
+✅ testToString
+✅ testRemove
+✅ testItems
+✅ testRehashingWithDeletes
+✅ testHashConflictWithDeletion
+✅ testIteration
+✅ simpleInsertions
+✅ testRehashingRemoval
+✅ testRemoval
+✅ testConstructor
+✅ concurrentInsertions
+```
+### ✅ org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest
+```
+✅ testRemove
+✅ simpleInsertions
+✅ testPutIfAbsent
+✅ concurrentInsertions
+✅ testHashConflictWithDeletion
+✅ testRehashingWithDeletes
+✅ testComputeIfAbsent
+✅ testRehashing
+✅ testIteration
+✅ testEqualsKeys
+✅ concurrentInsertionsAndReads
+✅ testConstructor
+```
+### ✅ org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest
+```
+✅ concurrentInsertions
+✅ testRehashing
+✅ testRemoval
+✅ testEqualsObjects
+✅ testHashConflictWithDeletion
+✅ testConstructor
+✅ concurrentInsertionsAndReads
+✅ testIteration
+✅ simpleInsertions
+✅ testRehashingWithDeletes
+✅ testRemove
+```
+### ✅ org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest
+```
+✅ testAddForDifferentKey
+✅ testToString
+✅ testCacheFlagConflict
+✅ testDeleteWithLeastMost
+✅ testDeleteForDifferentKey
+✅ testLastRange
+✅ testAddCompareCompareWithGuava
+✅ testSpanWithGuava
+✅ testDeleteCompareWithGuava
+✅ testFirstRange
+✅ testAddForSameKey
+✅ testDeleteWithAtMost
+✅ testRangeContaining
+```
+### ✅ org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest
+```
+✅ concurrentInsertions
+✅ testIfRemoval
+✅ testRemoval
+✅ testRemove
+✅ testItems
+✅ testEqualsObjects
+✅ simpleInsertions
+✅ testIteration
+✅ testToString
+```
+### ✅ org.apache.pulsar.common.util.collections.FieldParserTest
+```
+✅ testUpdateObject
+✅ testConversion
+```
+### ✅ org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest
+```
+✅ removeTest
+✅ growArray
+✅ pollTimeout
+✅ simple
+✅ pollTimeout2
+✅ blockingTake
+```
+### ✅ org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest
+```
+✅ testItems
+✅ testRemove
+✅ testExpandQueue
+✅ testInsertAndRemove
+✅ testEqualsObjects
+✅ testExpandRemoval
+✅ testIteration
+✅ simpleInsertions
+✅ concurrentInsertions
+✅ testConstructor
+✅ testSetWithDuplicateInsert
+✅ testExpandWithDeletes
+✅ concurrentInsertionsAndReads
+✅ testRemoval
+✅ testIfRemoval
+```
+### ✅ org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest
+```
+✅ testQueue
+✅ testCheckForEmpty
+✅ testCompareWithSamePrefix
```
-### :white_check_mark: org.apache.pulsar.common.util.FieldParserTest
+### ✅ org.apache.pulsar.common.util.FieldParserTest
```
-:white_check_mark: testMap
+✅ testMap
```
-### :white_check_mark: org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest
+### ✅ org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest
```
-:white_check_mark: testFileNotModified
-:white_check_mark: testFileModified
-:white_check_mark: testFileModified
-:white_check_mark: testFileNotModified
-:white_check_mark: testFileModified
-:white_check_mark: testFileNotModified
+✅ testFileNotModified
+✅ testFileModified
+✅ testFileModified
+✅ testFileNotModified
+✅ testFileModified
+✅ testFileNotModified
```
-### :white_check_mark: org.apache.pulsar.common.util.netty.ChannelFuturesTest
+### ✅ org.apache.pulsar.common.util.netty.ChannelFuturesTest
```
-:white_check_mark: toCompletableFuture_shouldCompleteExceptionally_channelFutureCompletedAfter
-:white_check_mark: toCompletableFuture_shouldCompleteSuccessfully_channelFutureCompletedAfter
-:white_check_mark: toCompletableFuture_shouldCompleteSuccessfully_channelFutureCompletedBefore
-:white_check_mark: toCompletableFuture_shouldCompleteExceptionally_channelFutureCompletedBefore
-:white_check_mark: toCompletableFuture_shouldRequireNonNullArgument
+✅ toCompletableFuture_shouldCompleteExceptionally_channelFutureCompletedAfter
+✅ toCompletableFuture_shouldCompleteSuccessfully_channelFutureCompletedAfter
+✅ toCompletableFuture_shouldCompleteSuccessfully_channelFutureCompletedBefore
+✅ toCompletableFuture_shouldCompleteExceptionally_channelFutureCompletedBefore
+✅ toCompletableFuture_shouldRequireNonNullArgument
```
-### :white_check_mark: org.apache.pulsar.common.util.RateLimiterTest
+### ✅ org.apache.pulsar.common.util.RateLimiterTest
```
-:white_check_mark: testMultipleTryAcquire
-:white_check_mark: testRateLimiterWithPermitUpdater
-:white_check_mark: testTryAcquire
-:white_check_mark: testTryAcquireNoPermits
-:white_check_mark: testClose
-:white_check_mark: testResetRate
-:white_check_mark: testMultipleAcquire
-:white_check_mark: testAcquire
-:white_check_mark: testInvalidRenewTime
-:white_check_mark: testRateLimiterWithFunction
-:white_check_mark: testAcquireBlock
+✅ testMultipleTryAcquire
+✅ testRateLimiterWithPermitUpdater
+✅ testTryAcquire
+✅ testTryAcquireNoPermits
+✅ testClose
+✅ testResetRate
+✅ testMultipleAcquire
+✅ testAcquire
+✅ testInvalidRenewTime
+✅ testRateLimiterWithFunction
+✅ testAcquireBlock
```
-### :white_check_mark: org.apache.pulsar.common.util.ReflectionsTest
+### ✅ org.apache.pulsar.common.util.ReflectionsTest
```
-:white_check_mark: testCreateInstanceNoNoArgConstructor
-:white_check_mark: testCreateInstanceConstructorThrowsException
-:white_check_mark: testCreateInstanceAbstractClass
-:white_check_mark: testCreateTypedInstanceUnassignableClass
-:white_check_mark: testCreateInstanceClassNotFound
-:white_check_mark: testCreateTypedInstanceConstructorThrowsException
-:white_check_mark: testClassExists
-:white_check_mark: testCreateTypedInstanceAbstractClass
-:white_check_mark: testCreateTypedInstanceClassNotFound
-:white_check_mark: testCreateTypedInstanceNoNoArgConstructor
-:white_check_mark: testLoadClass
-:white_check_mark: testClassInJarImplementsIface
+✅ testCreateInstanceNoNoArgConstructor
+✅ testCreateInstanceConstructorThrowsException
+✅ testCreateInstanceAbstractClass
+✅ testCreateTypedInstanceUnassignableClass
+✅ testCreateInstanceClassNotFound
+✅ testCreateTypedInstanceConstructorThrowsException
+✅ testClassExists
+✅ testCreateTypedInstanceAbstractClass
+✅ testCreateTypedInstanceClassNotFound
+✅ testCreateTypedInstanceNoNoArgConstructor
+✅ testLoadClass
+✅ testClassInJarImplementsIface
```
-### :white_check_mark: org.apache.pulsar.common.util.RelativeTimeUtilTest
+### ✅ org.apache.pulsar.common.util.RelativeTimeUtilTest
```
-:white_check_mark: testParseRelativeTime
+✅ testParseRelativeTime
```
-### :white_check_mark: org.apache.pulsar.discovery.service.web.DiscoveryServiceWebTest
+### ✅ org.apache.pulsar.discovery.service.web.DiscoveryServiceWebTest
```
-:white_check_mark: testRedirectUrlWithServerStarted
+✅ testRedirectUrlWithServerStarted
```
-### :white_check_mark: org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest
+### ✅ org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest
```
-:white_check_mark: testAuthorizationWithAnonymousUser
-:white_check_mark: testAuthorization
+✅ testAuthorizationWithAnonymousUser
+✅ testAuthorization
```
-### :white_check_mark: org.apache.pulsar.functions.worker.PulsarFunctionPublishTest
+### ✅ org.apache.pulsar.functions.worker.PulsarFunctionPublishTest
```
-:white_check_mark: testPulsarFunctionState
-:white_check_mark: testMultipleAddress
-:white_check_mark: testPulsarFunctionBKCleanup
+✅ testPulsarFunctionState
+✅ testMultipleAddress
+✅ testPulsarFunctionBKCleanup
```
-### :white_check_mark: org.apache.pulsar.functions.worker.PulsarFunctionTlsTest
+### ✅ org.apache.pulsar.functions.worker.PulsarFunctionTlsTest
```
-:white_check_mark: testFunctionsCreation
+✅ testFunctionsCreation
```
-### :white_check_mark: org.apache.pulsar.io.PulsarFunctionTlsTest
+### ✅ org.apache.pulsar.io.PulsarFunctionTlsTest
```
-:white_check_mark: testAuthorization
+✅ testAuthorization
```
-### :white_check_mark: org.apache.pulsar.proxy.server.AdminProxyHandlerTest
+### ✅ org.apache.pulsar.proxy.server.AdminProxyHandlerTest
```
-:white_check_mark: replayableProxyContentProviderTest
+✅ replayableProxyContentProviderTest
```
-### :white_check_mark: org.apache.pulsar.proxy.server.AuthedAdminProxyHandlerTest
+### ✅ org.apache.pulsar.proxy.server.AuthedAdminProxyHandlerTest
```
-:white_check_mark: testAuthenticatedProxyAsNonAdmin
+✅ testAuthenticatedProxyAsNonAdmin
```
-### :white_check_mark: org.apache.pulsar.proxy.server.FunctionWorkerRoutingTest
+### ✅ org.apache.pulsar.proxy.server.FunctionWorkerRoutingTest
```
-:white_check_mark: testFunctionWorkerRedirect
+✅ testFunctionWorkerRedirect
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyAdditionalServletTest
+### ✅ org.apache.pulsar.proxy.server.ProxyAdditionalServletTest
```
-:white_check_mark: test
+✅ test
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyAuthenticatedProducerConsumerTest
+### ✅ org.apache.pulsar.proxy.server.ProxyAuthenticatedProducerConsumerTest
```
-:white_check_mark: testTlsSyncProducerAndConsumer
+✅ testTlsSyncProducerAndConsumer
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyAuthenticationTest
+### ✅ org.apache.pulsar.proxy.server.ProxyAuthenticationTest
```
-:white_check_mark: testAuthentication
+✅ testAuthentication
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyConnectionThrottlingTest
+### ✅ org.apache.pulsar.proxy.server.ProxyConnectionThrottlingTest
```
-:white_check_mark: testInboundConnection
+✅ testInboundConnection
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyEnableHAProxyProtocolTest
+### ✅ org.apache.pulsar.proxy.server.ProxyEnableHAProxyProtocolTest
```
-:white_check_mark: testSimpleProduceAndConsume
+✅ testSimpleProduceAndConsume
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyForwardAuthDataTest
+### ✅ org.apache.pulsar.proxy.server.ProxyForwardAuthDataTest
```
-:white_check_mark: testForwardAuthData
+✅ testForwardAuthData
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest
+### ✅ org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest
```
-:white_check_mark: testProxyToEndsInSlash
-:white_check_mark: testStreaming
-:white_check_mark: testLongPath
-:white_check_mark: testLongPathInProxyTo
-:white_check_mark: testPathEndsInSlash
-:white_check_mark: testPathNotSpecified
-:white_check_mark: testTryingToUseExistingPath
-:white_check_mark: testMultipleRedirect
-:white_check_mark: testSingleRedirect
-:white_check_mark: testRedirectNotSpecified
+✅ testProxyToEndsInSlash
+✅ testStreaming
+✅ testLongPath
+✅ testLongPathInProxyTo
+✅ testPathEndsInSlash
+✅ testPathNotSpecified
+✅ testTryingToUseExistingPath
+✅ testMultipleRedirect
+✅ testSingleRedirect
+✅ testRedirectNotSpecified
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth
+### ✅ org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth
```
-:white_check_mark: testProducerFailed
-:white_check_mark: testPartitions
-:white_check_mark: testProducer
+✅ testProducerFailed
+✅ testPartitions
+✅ testProducer
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth
+### ✅ org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth
```
-:white_check_mark: testPartitions
-:white_check_mark: testProducerFailed
-:white_check_mark: testProducer
+✅ testPartitions
+✅ testProducerFailed
+✅ testProducer
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyLookupThrottlingTest
+### ✅ org.apache.pulsar.proxy.server.ProxyLookupThrottlingTest
```
-:white_check_mark: testLookup
+✅ testLookup
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyParserTest
+### ✅ org.apache.pulsar.proxy.server.ProxyParserTest
```
-:white_check_mark: testRegexSubscription
-:white_check_mark: testProducerConsumer
-:white_check_mark: testProducer
-:white_check_mark: testPartitions
-:white_check_mark: testProtocolVersionAdvertisement
+✅ testRegexSubscription
+✅ testProducerConsumer
+✅ testProducer
+✅ testPartitions
+✅ testProtocolVersionAdvertisement
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyRolesEnforcementTest
+### ✅ org.apache.pulsar.proxy.server.ProxyRolesEnforcementTest
```
-:white_check_mark: testIncorrectRoles
+✅ testIncorrectRoles
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyStatsTest
+### ✅ org.apache.pulsar.proxy.server.ProxyStatsTest
```
-:white_check_mark: testChangeLogLevel
-:white_check_mark: testConnectionsStats
-:white_check_mark: testTopicStats
+✅ testChangeLogLevel
+✅ testConnectionsStats
+✅ testTopicStats
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyTest
+### ✅ org.apache.pulsar.proxy.server.ProxyTest
```
-:white_check_mark: testPartitions
-:white_check_mark: testRegexSubscription
-:white_check_mark: testProtocolVersionAdvertisement
-:white_check_mark: testGetSchema
-:white_check_mark: testProducer
-:white_check_mark: testProducerConsumer
+✅ testPartitions
+✅ testRegexSubscription
+✅ testProtocolVersionAdvertisement
+✅ testGetSchema
+✅ testProducer
+✅ testProducerConsumer
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyTlsTest
+### ✅ org.apache.pulsar.proxy.server.ProxyTlsTest
```
-:white_check_mark: testProducer
-:white_check_mark: testPartitions
+✅ testProducer
+✅ testPartitions
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyTlsTestWithAuth
+### ✅ org.apache.pulsar.proxy.server.ProxyTlsTestWithAuth
```
-:white_check_mark: testServiceStartup
+✅ testServiceStartup
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyWithAuthorizationNegTest
+### ✅ org.apache.pulsar.proxy.server.ProxyWithAuthorizationNegTest
```
-:white_check_mark: testProxyAuthorization
+✅ testProxyAuthorization
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest
+### ✅ org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest
```
-:white_check_mark: tlsCiphersAndProtocols
-:white_check_mark: testTlsHostVerificationProxyToClient
-:white_check_mark: tlsCiphersAndProtocols
-:white_check_mark: testProxyAuthorization
-:white_check_mark: tlsCiphersAndProtocols
-:white_check_mark: testTlsHostVerificationProxyToBroker
-:white_check_mark: tlsCiphersAndProtocols
-:white_check_mark: tlsCiphersAndProtocols
-:white_check_mark: tlsCiphersAndProtocols
-:white_check_mark: testTlsHostVerificationProxyToBroker
-:white_check_mark: tlsCiphersAndProtocols
-:white_check_mark: testTlsHostVerificationProxyToClient
-:white_check_mark: tlsCiphersAndProtocols
+✅ tlsCiphersAndProtocols
+✅ testTlsHostVerificationProxyToClient
+✅ tlsCiphersAndProtocols
+✅ testProxyAuthorization
+✅ tlsCiphersAndProtocols
+✅ testTlsHostVerificationProxyToBroker
+✅ tlsCiphersAndProtocols
+✅ tlsCiphersAndProtocols
+✅ tlsCiphersAndProtocols
+✅ testTlsHostVerificationProxyToBroker
+✅ tlsCiphersAndProtocols
+✅ testTlsHostVerificationProxyToClient
+✅ tlsCiphersAndProtocols
```
-### :white_check_mark: org.apache.pulsar.proxy.server.ProxyWithoutServiceDiscoveryTest
+### ✅ org.apache.pulsar.proxy.server.ProxyWithoutServiceDiscoveryTest
```
-:white_check_mark: testDiscoveryService
+✅ testDiscoveryService
```
-### :white_check_mark: org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest
+### ✅ org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest
```
-:white_check_mark: testAuthWithRandoCert
-:white_check_mark: testAuthenticatedProxyAsAdmin
-:white_check_mark: testAuthenticatedProxyAsNonAdmin
+✅ testAuthWithRandoCert
+✅ testAuthenticatedProxyAsAdmin
+✅ testAuthenticatedProxyAsNonAdmin
```
-### :white_check_mark: org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest
+### ✅ org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest
```
-:white_check_mark: testUnauthenticatedProxy
-:white_check_mark: testVipStatus
+✅ testUnauthenticatedProxy
+✅ testVipStatus
```
-### :white_check_mark: org.apache.pulsar.PulsarBrokerStarterTest
+### ✅ org.apache.pulsar.PulsarBrokerStarterTest
```
-:white_check_mark: testMainRunBookieNoConfig
-:white_check_mark: testLoadConfigWithException
-:white_check_mark: testMainWithNoArgument
-:white_check_mark: testLoadBalancerConfig
-:white_check_mark: testGlobalZooKeeperConfig
-:white_check_mark: testMainRunBookieRecoveryNoConfig
-:white_check_mark: testLoadConfig
-:white_check_mark: testMainEnableRunBookieThroughBrokerConfig
-:white_check_mark: testMainRunBookieAndAutoRecoveryNoConfig
+✅ testMainRunBookieNoConfig
+✅ testLoadConfigWithException
+✅ testMainWithNoArgument
+✅ testLoadBalancerConfig
+✅ testGlobalZooKeeperConfig
+✅ testMainRunBookieRecoveryNoConfig
+✅ testLoadConfig
+✅ testMainEnableRunBookieThroughBrokerConfig
+✅ testMainRunBookieAndAutoRecoveryNoConfig
```
-### :white_check_mark: org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest
+### ✅ org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest
```
-:white_check_mark: testConsumerCompatibilityCheckCanReadLastTest
-:white_check_mark: testConsumerWithNotCompatibilitySchema
-:white_check_mark: testProducerSendWithOldSchemaAndConsumerCanRead
-:white_check_mark: testConsumerCompatibilityCheckCanReadLastTest
-:white_check_mark: testProducerSendWithOldSchemaAndConsumerCanRead
-:white_check_mark: testSchemaComparison
-:white_check_mark: testConsumerCompatibilityCheckCanReadLastTest
-:white_check_mark: testConsumerCompatibilityReadAllCheckTest
-:white_check_mark: testConsumerWithNotCompatibilitySchema
-:white_check_mark: testIsAutoUpdateSchema
-:white_check_mark: testProducerSendWithOldSchemaAndConsumerCanRead
-:white_check_mark: testConsumerCompatibilityReadAllCheckTest
-:white_check_mark: testIsAutoUpdateSchema
-:white_check_mark: testProducerSendWithOldSchemaAndConsumerCanRead
-:white_check_mark: testConsumerWithNotCompatibilitySchema
-:white_check_mark: testIsAutoUpdateSchema
-:white_check_mark: testProducerSendWithOldSchemaAndConsumerCanRead
-:white_check_mark: testConsumerWithNotCompatibilitySchema
-:white_check_mark: testProducerSendWithOldSchemaAndConsumerCanRead
-:white_check_mark: testIsAutoUpdateSchema
-:white_check_mark: testIsAutoUpdateSchema
-:white_check_mark: testConsumerCompatibilityCheckCanReadLastTest
-:white_check_mark: testIsAutoUpdateSchema
+✅ testConsumerCompatibilityCheckCanReadLastTest
+✅ testConsumerWithNotCompatibilitySchema
+✅ testProducerSendWithOldSchemaAndConsumerCanRead
+✅ testConsumerCompatibilityCheckCanReadLastTest
+✅ testProducerSendWithOldSchemaAndConsumerCanRead
+✅ testSchemaComparison
+✅ testConsumerCompatibilityCheckCanReadLastTest
+✅ testConsumerCompatibilityReadAllCheckTest
+✅ testConsumerWithNotCompatibilitySchema
+✅ testIsAutoUpdateSchema
+✅ testProducerSendWithOldSchemaAndConsumerCanRead
+✅ testConsumerCompatibilityReadAllCheckTest
+✅ testIsAutoUpdateSchema
+✅ testProducerSendWithOldSchemaAndConsumerCanRead
+✅ testConsumerWithNotCompatibilitySchema
+✅ testIsAutoUpdateSchema
+✅ testProducerSendWithOldSchemaAndConsumerCanRead
+✅ testConsumerWithNotCompatibilitySchema
+✅ testProducerSendWithOldSchemaAndConsumerCanRead
+✅ testIsAutoUpdateSchema
+✅ testIsAutoUpdateSchema
+✅ testConsumerCompatibilityCheckCanReadLastTest
+✅ testIsAutoUpdateSchema
```
-### :white_check_mark: org.apache.pulsar.schema.PartitionedTopicSchemaTest
+### ✅ org.apache.pulsar.schema.PartitionedTopicSchemaTest
```
-:white_check_mark: test
+✅ test
```
-### :white_check_mark: org.apache.pulsar.schema.SchemaTest
+### ✅ org.apache.pulsar.schema.SchemaTest
```
-:white_check_mark: testIsUsingAvroSchemaParser
-:white_check_mark: testBytesSchemaDeserialize
-:white_check_mark: testMultiTopicSetSchemaProvider
+✅ testIsUsingAvroSchemaParser
+✅ testBytesSchemaDeserialize
+✅ testMultiTopicSetSchemaProvider
```
-### :white_check_mark: org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest
+### ✅ org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest
```
-:white_check_mark: testServiceException
-:white_check_mark: testTopicInternalStats
+✅ testServiceException
+✅ testTopicInternalStats
```
-### :white_check_mark: org.apache.pulsar.tests.EnumValuesDataProviderTest
+### ✅ org.apache.pulsar.tests.EnumValuesDataProviderTest
```
-:white_check_mark: shouldFailIfEnumParameterIsMissing
-:white_check_mark: testEnumValuesProvider
-:white_check_mark: testEnumValuesProvider
-:white_check_mark: shouldDetermineEnumValuesFromMethod
-:white_check_mark: shouldContainAllEnumValues
-:white_check_mark: testEnumValuesProvider
+✅ shouldFailIfEnumParameterIsMissing
+✅ testEnumValuesProvider
+✅ testEnumValuesProvider
+✅ shouldDetermineEnumValuesFromMethod
+✅ shouldContainAllEnumValues
+✅ testEnumValuesProvider
```
-### :white_check_mark: org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest
+### ✅ org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest
```
-:white_check_mark: shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
-:warning: shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
-:warning: shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
-:warning: shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
-:warning: shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
+✅ shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
+⚪ shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
+⚪ shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
+⚪ shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
+⚪ shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod
```
-### :white_check_mark: org.apache.pulsar.tests.TestRetrySupportRetryTest
+### ✅ org.apache.pulsar.tests.TestRetrySupportRetryTest
```
-:warning: shouldCallSetupBeforeRetrying
-:white_check_mark: shouldCallSetupBeforeRetrying
-:warning: shouldCallSetupBeforeRetrying
-:warning: shouldCallSetupBeforeRetrying
-:warning: shouldCallSetupBeforeRetrying
+⚪ shouldCallSetupBeforeRetrying
+✅ shouldCallSetupBeforeRetrying
+⚪ shouldCallSetupBeforeRetrying
+⚪ shouldCallSetupBeforeRetrying
+⚪ shouldCallSetupBeforeRetrying
```
-### :white_check_mark: org.apache.pulsar.tests.TestRetrySupportSuccessTest
+### ✅ org.apache.pulsar.tests.TestRetrySupportSuccessTest
```
-:white_check_mark: shouldCallSetupOnce1
-:white_check_mark: shouldCallSetupOnce3
-:white_check_mark: shouldCallSetupOnce2
+✅ shouldCallSetupOnce1
+✅ shouldCallSetupOnce3
+✅ shouldCallSetupOnce2
```
-### :white_check_mark: org.apache.pulsar.tests.ThreadDumpUtilTest
+### ✅ org.apache.pulsar.tests.ThreadDumpUtilTest
```
-:white_check_mark: testHelp
-:white_check_mark: testThreadDump
+✅ testHelp
+✅ testThreadDump
```
-### :white_check_mark: org.apache.pulsar.utils.SimpleTextOutputStreamTest
+### ✅ org.apache.pulsar.utils.SimpleTextOutputStreamTest
```
-:white_check_mark: testBooleanFormat
-:white_check_mark: testDoubleFormat
-:white_check_mark: testLongFormat
-:white_check_mark: testString
+✅ testBooleanFormat
+✅ testDoubleFormat
+✅ testLongFormat
+✅ testString
```
-### :white_check_mark: org.apache.pulsar.utils.StatsOutputStreamTest
+### ✅ org.apache.pulsar.utils.StatsOutputStreamTest
```
-:white_check_mark: testLists
-:white_check_mark: testNamedObjects
-:white_check_mark: testNestedObjects
-:white_check_mark: testNamedLists
-:white_check_mark: testPairs
-:white_check_mark: testObjects
+✅ testLists
+✅ testNamedObjects
+✅ testNestedObjects
+✅ testNamedLists
+✅ testPairs
+✅ testObjects
```
-### :white_check_mark: org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest
+### ✅ org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest
```
-:white_check_mark: unauthenticatedSocketTest
-:white_check_mark: authenticatedSocketTest
-:white_check_mark: statsTest
-:white_check_mark: anonymousSocketTest
+✅ unauthenticatedSocketTest
+✅ authenticatedSocketTest
+✅ statsTest
+✅ anonymousSocketTest
```
-### :white_check_mark: org.apache.pulsar.websocket.proxy.ProxyAuthorizationTest
+### ✅ org.apache.pulsar.websocket.proxy.ProxyAuthorizationTest
```
-:white_check_mark: test
+✅ test
```
-### :white_check_mark: org.apache.pulsar.websocket.proxy.ProxyConfigurationTest
+### ✅ org.apache.pulsar.websocket.proxy.ProxyConfigurationTest
```
-:white_check_mark: configTest
-:white_check_mark: configTest
+✅ configTest
+✅ configTest
```
-### :white_check_mark: org.apache.pulsar.websocket.proxy.ProxyPublishConsumeTlsTest
+### ✅ org.apache.pulsar.websocket.proxy.ProxyPublishConsumeTlsTest
```
-:white_check_mark: socketTest
+✅ socketTest
```
-### :white_check_mark: org.apache.pulsar.websocket.proxy.ProxyPublishConsumeWithoutZKTest
+### ✅ org.apache.pulsar.websocket.proxy.ProxyPublishConsumeWithoutZKTest
```
-:white_check_mark: socketTest
+✅ socketTest
```
-### :white_check_mark: org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest
+### ✅ org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest
```
-:white_check_mark: anonymousSocketTest
-:white_check_mark: authenticatedSocketTest
-:white_check_mark: statsTest
-:white_check_mark: unauthenticatedSocketTest
+✅ anonymousSocketTest
+✅ authenticatedSocketTest
+✅ statsTest
+✅ unauthenticatedSocketTest
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/silent-notes-test-results.md b/__tests__/__outputs__/silent-notes-test-results.md
index 7c27e31..9cd23f5 100644
--- a/__tests__/__outputs__/silent-notes-test-results.md
+++ b/__tests__/__outputs__/silent-notes-test-results.md
@@ -3,140 +3,140 @@
|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/external/SilentNotes.trx|67:white_check_mark:||12:warning:|1s|
-## :white_check_mark: fixtures/external/SilentNotes.trx
+|fixtures/external/SilentNotes.trx|67 ✅||12 ⚪|1s|
+## ✅ fixtures/external/SilentNotes.trx
**79** tests were completed in **1s** with **67** passed, **0** failed and **12** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[VanillaCloudStorageClientTest.CloudStorageCredentialsTest](#r0s0)|6:white_check_mark:|||30ms|
-|[VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest](#r0s1)|2:white_check_mark:||3:warning:|101ms|
-|[VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest](#r0s2)|4:white_check_mark:||3:warning:|166ms|
-|[VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest](#r0s3)|2:white_check_mark:|||7ms|
-|[VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest](#r0s4)|1:white_check_mark:||3:warning:|40ms|
-|[VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest](#r0s5)|1:white_check_mark:||3:warning:|15ms|
-|[VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest](#r0s6)|5:white_check_mark:|||16ms|
-|[VanillaCloudStorageClientTest.CloudStorageTokenTest](#r0s7)|9:white_check_mark:|||0ms|
-|[VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest](#r0s8)|3:white_check_mark:|||3ms|
-|[VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest](#r0s9)|9:white_check_mark:|||12ms|
-|[VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest](#r0s10)|5:white_check_mark:|||13ms|
-|[VanillaCloudStorageClientTest.SecureStringExtensionsTest](#r0s11)|7:white_check_mark:|||0ms|
-|[VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest](#r0s12)|13:white_check_mark:|||43ms|
-### :white_check_mark: VanillaCloudStorageClientTest.CloudStorageCredentialsTest
-```
-:white_check_mark: AreEqualWorksWithDifferentPassword
-:white_check_mark: AreEqualWorksWithSameContent
-:white_check_mark: CorrectlyConvertsSecureStringToString
-:white_check_mark: CorrectlyConvertsStringToSecureString
-:white_check_mark: ValidateAcceptsValidCredentials
-:white_check_mark: ValidateRejectsInvalidCredentials
-```
-### :white_check_mark: VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest
-```
-:white_check_mark: FileLifecycleWorks
-:warning: ReallyDoFetchToken
-:warning: ReallyDoOpenAuthorizationPageInBrowser
-:warning: ReallyDoRefreshToken
-:white_check_mark: ThrowsAccessDeniedExceptionWithInvalidToken
-```
-### :white_check_mark: VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest
-```
-:white_check_mark: FileLifecycleWorks
-:white_check_mark: SanitizeCredentials_ChangesInvalidPrefix
-:white_check_mark: SecureSslConnectionWorks
-:white_check_mark: ThrowsWithHttpInsteadOfFtp
-:warning: ThrowsWithInvalidPassword
-:warning: ThrowsWithInvalidUrl
-:warning: ThrowsWithInvalidUsername
-```
-### :white_check_mark: VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest
-```
-:white_check_mark: ChoosesCorrectUrlForGmxComEmail
-:white_check_mark: ChoosesCorrectUrlForGmxNetEmail
-```
-### :white_check_mark: VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest
-```
-:white_check_mark: FileLifecycleWorks
-:warning: ReallyDoFetchToken
-:warning: ReallyDoOpenAuthorizationPageInBrowser
-:warning: ReallyDoRefreshToken
-```
-### :white_check_mark: VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest
-```
-:white_check_mark: FileLifecycleWorks
-:warning: ReallyDoFetchToken
-:warning: ReallyDoOpenAuthorizationPageInBrowser
-:warning: ReallyDoRefreshToken
-```
-### :white_check_mark: VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest
-```
-:white_check_mark: FileLifecycleWorks
-:white_check_mark: ParseGmxWebdavResponseCorrectly
-:white_check_mark: ParseStratoWebdavResponseCorrectly
-:white_check_mark: ThrowsWithInvalidPath
-:white_check_mark: ThrowsWithInvalidUsername
-```
-### :white_check_mark: VanillaCloudStorageClientTest.CloudStorageTokenTest
-```
-:white_check_mark: AreEqualWorksWithNullDate
-:white_check_mark: AreEqualWorksWithSameContent
-:white_check_mark: NeedsRefreshReturnsFalseForTokenFlow
-:white_check_mark: NeedsRefreshReturnsFalseIfNotExpired
-:white_check_mark: NeedsRefreshReturnsTrueIfExpired
-:white_check_mark: NeedsRefreshReturnsTrueIfNoExpirationDate
-:white_check_mark: SetExpiryDateBySecondsWorks
-:white_check_mark: SetExpiryDateBySecondsWorksWithNull
-:white_check_mark: SetExpiryDateBySecondsWorksWithVeryShortPeriod
-```
-### :white_check_mark: VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest
-```
-:white_check_mark: ParsesAllErrorCodesCorrectly
-:white_check_mark: ParsesNullErrorCodeCorrectly
-:white_check_mark: ParsesUnknownErrorCodeCorrectly
-```
-### :white_check_mark: VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest
-```
-:white_check_mark: BuildAuthorizationRequestUrlEscapesParameters
-:white_check_mark: BuildAuthorizationRequestUrlLeavesOutOptionalParameters
-:white_check_mark: BuildAuthorizationRequestUrlThrowsWithMissingRedirectUrlForTokenFlow
-:white_check_mark: BuildAuthorizationRequestUrlUsesAllParameters
-:white_check_mark: BuildAuthorizationRequestUrlUsesCodeVerifier
-:white_check_mark: ParseRealWorldDropboxRejectResponse
-:white_check_mark: ParseRealWorldDropboxSuccessResponse
-:white_check_mark: ParseRealWorldGoogleRejectResponse
-:white_check_mark: ParseRealWorldGoogleSuccessResponse
-```
-### :white_check_mark: VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest
-```
-:white_check_mark: BuildOAuth2AuthorizationRequestUrlWorks
-:white_check_mark: FetchTokenCanInterpretGoogleResponse
-:white_check_mark: FetchTokenReturnsNullForDeniedAccess
-:white_check_mark: FetchTokenThrowsWithWrongState
-:white_check_mark: RefreshTokenCanInterpretGoogleResponse
-```
-### :white_check_mark: VanillaCloudStorageClientTest.SecureStringExtensionsTest
-```
-:white_check_mark: AreEqualsWorksCorrectly
-:white_check_mark: CorrectlyConvertsSecureStringToString
-:white_check_mark: CorrectlyConvertsSecureStringToUnicodeBytes
-:white_check_mark: CorrectlyConvertsSecureStringToUtf8Bytes
-:white_check_mark: CorrectlyConvertsStringToSecureString
-:white_check_mark: CorrectlyConvertsUnicodeBytesToSecureString
-:white_check_mark: CorrectlyConvertsUtf8BytesToSecureString
-```
-### :white_check_mark: VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest
-```
-:white_check_mark: DecryptAfterDesrializationCanReadAllPropertiesBack
-:white_check_mark: DecryptAfterDesrializationRespectsNullProperties
-:white_check_mark: EncryptBeforeSerializationProtectsAllNecessaryProperties
-:white_check_mark: EncryptBeforeSerializationRespectsNullProperties
-:white_check_mark: SerializedDatacontractCanBeReadBack
-:white_check_mark: SerializedDatacontractDoesNotContainNullProperties
-:white_check_mark: SerializedDatacontractDoesNotContainPlaintextData
-:white_check_mark: SerializedJsonCanBeReadBack
-:white_check_mark: SerializedJsonDoesNotContainNullProperties
-:white_check_mark: SerializedJsonDoesNotContainPlaintextData
-:white_check_mark: SerializedXmlCanBeReadBack
-:white_check_mark: SerializedXmlDoesNotContainNullProperties
-:white_check_mark: SerializedXmlDoesNotContainPlaintextData
+|[VanillaCloudStorageClientTest.CloudStorageCredentialsTest](#r0s0)|6 ✅|||30ms|
+|[VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest](#r0s1)|2 ✅||3 ⚪|101ms|
+|[VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest](#r0s2)|4 ✅||3 ⚪|166ms|
+|[VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest](#r0s3)|2 ✅|||7ms|
+|[VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest](#r0s4)|1 ✅||3 ⚪|40ms|
+|[VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest](#r0s5)|1 ✅||3 ⚪|15ms|
+|[VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest](#r0s6)|5 ✅|||16ms|
+|[VanillaCloudStorageClientTest.CloudStorageTokenTest](#r0s7)|9 ✅|||0ms|
+|[VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest](#r0s8)|3 ✅|||3ms|
+|[VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest](#r0s9)|9 ✅|||12ms|
+|[VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest](#r0s10)|5 ✅|||13ms|
+|[VanillaCloudStorageClientTest.SecureStringExtensionsTest](#r0s11)|7 ✅|||0ms|
+|[VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest](#r0s12)|13 ✅|||43ms|
+### ✅ VanillaCloudStorageClientTest.CloudStorageCredentialsTest
+```
+✅ AreEqualWorksWithDifferentPassword
+✅ AreEqualWorksWithSameContent
+✅ CorrectlyConvertsSecureStringToString
+✅ CorrectlyConvertsStringToSecureString
+✅ ValidateAcceptsValidCredentials
+✅ ValidateRejectsInvalidCredentials
+```
+### ✅ VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest
+```
+✅ FileLifecycleWorks
+⚪ ReallyDoFetchToken
+⚪ ReallyDoOpenAuthorizationPageInBrowser
+⚪ ReallyDoRefreshToken
+✅ ThrowsAccessDeniedExceptionWithInvalidToken
+```
+### ✅ VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest
+```
+✅ FileLifecycleWorks
+✅ SanitizeCredentials_ChangesInvalidPrefix
+✅ SecureSslConnectionWorks
+✅ ThrowsWithHttpInsteadOfFtp
+⚪ ThrowsWithInvalidPassword
+⚪ ThrowsWithInvalidUrl
+⚪ ThrowsWithInvalidUsername
+```
+### ✅ VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest
+```
+✅ ChoosesCorrectUrlForGmxComEmail
+✅ ChoosesCorrectUrlForGmxNetEmail
+```
+### ✅ VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest
+```
+✅ FileLifecycleWorks
+⚪ ReallyDoFetchToken
+⚪ ReallyDoOpenAuthorizationPageInBrowser
+⚪ ReallyDoRefreshToken
+```
+### ✅ VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest
+```
+✅ FileLifecycleWorks
+⚪ ReallyDoFetchToken
+⚪ ReallyDoOpenAuthorizationPageInBrowser
+⚪ ReallyDoRefreshToken
+```
+### ✅ VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest
+```
+✅ FileLifecycleWorks
+✅ ParseGmxWebdavResponseCorrectly
+✅ ParseStratoWebdavResponseCorrectly
+✅ ThrowsWithInvalidPath
+✅ ThrowsWithInvalidUsername
+```
+### ✅ VanillaCloudStorageClientTest.CloudStorageTokenTest
+```
+✅ AreEqualWorksWithNullDate
+✅ AreEqualWorksWithSameContent
+✅ NeedsRefreshReturnsFalseForTokenFlow
+✅ NeedsRefreshReturnsFalseIfNotExpired
+✅ NeedsRefreshReturnsTrueIfExpired
+✅ NeedsRefreshReturnsTrueIfNoExpirationDate
+✅ SetExpiryDateBySecondsWorks
+✅ SetExpiryDateBySecondsWorksWithNull
+✅ SetExpiryDateBySecondsWorksWithVeryShortPeriod
+```
+### ✅ VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest
+```
+✅ ParsesAllErrorCodesCorrectly
+✅ ParsesNullErrorCodeCorrectly
+✅ ParsesUnknownErrorCodeCorrectly
+```
+### ✅ VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest
+```
+✅ BuildAuthorizationRequestUrlEscapesParameters
+✅ BuildAuthorizationRequestUrlLeavesOutOptionalParameters
+✅ BuildAuthorizationRequestUrlThrowsWithMissingRedirectUrlForTokenFlow
+✅ BuildAuthorizationRequestUrlUsesAllParameters
+✅ BuildAuthorizationRequestUrlUsesCodeVerifier
+✅ ParseRealWorldDropboxRejectResponse
+✅ ParseRealWorldDropboxSuccessResponse
+✅ ParseRealWorldGoogleRejectResponse
+✅ ParseRealWorldGoogleSuccessResponse
+```
+### ✅ VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest
+```
+✅ BuildOAuth2AuthorizationRequestUrlWorks
+✅ FetchTokenCanInterpretGoogleResponse
+✅ FetchTokenReturnsNullForDeniedAccess
+✅ FetchTokenThrowsWithWrongState
+✅ RefreshTokenCanInterpretGoogleResponse
+```
+### ✅ VanillaCloudStorageClientTest.SecureStringExtensionsTest
+```
+✅ AreEqualsWorksCorrectly
+✅ CorrectlyConvertsSecureStringToString
+✅ CorrectlyConvertsSecureStringToUnicodeBytes
+✅ CorrectlyConvertsSecureStringToUtf8Bytes
+✅ CorrectlyConvertsStringToSecureString
+✅ CorrectlyConvertsUnicodeBytesToSecureString
+✅ CorrectlyConvertsUtf8BytesToSecureString
+```
+### ✅ VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest
+```
+✅ DecryptAfterDesrializationCanReadAllPropertiesBack
+✅ DecryptAfterDesrializationRespectsNullProperties
+✅ EncryptBeforeSerializationProtectsAllNecessaryProperties
+✅ EncryptBeforeSerializationRespectsNullProperties
+✅ SerializedDatacontractCanBeReadBack
+✅ SerializedDatacontractDoesNotContainNullProperties
+✅ SerializedDatacontractDoesNotContainPlaintextData
+✅ SerializedJsonCanBeReadBack
+✅ SerializedJsonDoesNotContainNullProperties
+✅ SerializedJsonDoesNotContainPlaintextData
+✅ SerializedXmlCanBeReadBack
+✅ SerializedXmlDoesNotContainNullProperties
+✅ SerializedXmlDoesNotContainPlaintextData
```
\ No newline at end of file
diff --git a/__tests__/__outputs__/swift-xunit.md b/__tests__/__outputs__/swift-xunit.md
index aff1f4f..d3bfc2b 100644
--- a/__tests__/__outputs__/swift-xunit.md
+++ b/__tests__/__outputs__/swift-xunit.md
@@ -1,16 +1,16 @@

|Report|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|fixtures/swift-xunit.xml|2:white_check_mark:|1:x:||220ms|
-## :x: fixtures/swift-xunit.xml
+|fixtures/swift-xunit.xml|2 ✅|1 ❌||220ms|
+## ❌ fixtures/swift-xunit.xml
**3** tests were completed in **220ms** with **2** passed, **1** failed and **0** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
-|[TestResults](#r0s0)|2:white_check_mark:|1:x:||220ms|
-### :x: TestResults
+|[TestResults](#r0s0)|2 ✅|1 ❌||220ms|
+### ❌ TestResults
```
AcmeLibTests.AcmeLibTests
- :white_check_mark: test_always_pass
- :white_check_mark: test_always_skip
- :x: test_always_fail
+ ✅ test_always_pass
+ ✅ test_always_skip
+ ❌ test_always_fail
```
\ No newline at end of file
diff --git a/dist/index.js b/dist/index.js
index 4178503..7902034 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -1678,9 +1678,9 @@ function getTestRunsReport(testRuns, options) {
.map(tr => {
const time = (0, markdown_utils_1.formatTime)(tr.time);
const name = tr.path;
- const passed = tr.passed > 0 ? `${tr.passed}${markdown_utils_1.Icon.success}` : '';
- const failed = tr.failed > 0 ? `${tr.failed}${markdown_utils_1.Icon.fail}` : '';
- const skipped = tr.skipped > 0 ? `${tr.skipped}${markdown_utils_1.Icon.skip}` : '';
+ const passed = tr.passed > 0 ? `${tr.passed} ${markdown_utils_1.Icon.success}` : '';
+ const failed = tr.failed > 0 ? `${tr.failed} ${markdown_utils_1.Icon.fail}` : '';
+ const skipped = tr.skipped > 0 ? `${tr.skipped} ${markdown_utils_1.Icon.skip}` : '';
return [name, passed, failed, skipped, time];
});
const resultsTable = (0, markdown_utils_1.table)(['Report', 'Passed', 'Failed', 'Skipped', 'Time'], [markdown_utils_1.Align.Left, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right], ...tableData);
@@ -1715,9 +1715,9 @@ function getSuitesReport(tr, runIndex, options) {
const skipLink = options.listTests === 'none' || (options.listTests === 'failed' && s.result !== 'failed');
const tsAddr = options.baseUrl + makeSuiteSlug(runIndex, suiteIndex).link;
const tsNameLink = skipLink ? tsName : (0, markdown_utils_1.link)(tsName, tsAddr);
- const passed = s.passed > 0 ? `${s.passed}${markdown_utils_1.Icon.success}` : '';
- const failed = s.failed > 0 ? `${s.failed}${markdown_utils_1.Icon.fail}` : '';
- const skipped = s.skipped > 0 ? `${s.skipped}${markdown_utils_1.Icon.skip}` : '';
+ const passed = s.passed > 0 ? `${s.passed} ${markdown_utils_1.Icon.success}` : '';
+ const failed = s.failed > 0 ? `${s.failed} ${markdown_utils_1.Icon.fail}` : '';
+ const skipped = s.skipped > 0 ? `${s.skipped} ${markdown_utils_1.Icon.skip}` : '';
return [tsNameLink, passed, failed, skipped, tsTime];
}));
sections.push(suitesTable);
@@ -2148,9 +2148,9 @@ var Align;
Align["None"] = "---";
})(Align || (exports.Align = Align = {}));
exports.Icon = {
- skip: ':warning:',
- success: ':white_check_mark:',
- fail: ':x:'
+ skip: '⚪', // ':white_circle:'
+ success: '✅', // ':white_check_mark:'
+ fail: '❌' // ':x:'
};
function link(title, address) {
return `[${title}](${address})`;
diff --git a/src/report/get-report.ts b/src/report/get-report.ts
index aa53eef..99bf270 100644
--- a/src/report/get-report.ts
+++ b/src/report/get-report.ts
@@ -155,9 +155,9 @@ function getTestRunsReport(testRuns: TestRunResult[], options: ReportOptions): s
.map(tr => {
const time = formatTime(tr.time)
const name = tr.path
- const passed = tr.passed > 0 ? `${tr.passed}${Icon.success}` : ''
- const failed = tr.failed > 0 ? `${tr.failed}${Icon.fail}` : ''
- const skipped = tr.skipped > 0 ? `${tr.skipped}${Icon.skip}` : ''
+ const passed = tr.passed > 0 ? `${tr.passed} ${Icon.success}` : ''
+ const failed = tr.failed > 0 ? `${tr.failed} ${Icon.fail}` : ''
+ const skipped = tr.skipped > 0 ? `${tr.skipped} ${Icon.skip}` : ''
return [name, passed, failed, skipped, time]
})
@@ -207,9 +207,9 @@ function getSuitesReport(tr: TestRunResult, runIndex: number, options: ReportOpt
const skipLink = options.listTests === 'none' || (options.listTests === 'failed' && s.result !== 'failed')
const tsAddr = options.baseUrl + makeSuiteSlug(runIndex, suiteIndex).link
const tsNameLink = skipLink ? tsName : link(tsName, tsAddr)
- const passed = s.passed > 0 ? `${s.passed}${Icon.success}` : ''
- const failed = s.failed > 0 ? `${s.failed}${Icon.fail}` : ''
- const skipped = s.skipped > 0 ? `${s.skipped}${Icon.skip}` : ''
+ const passed = s.passed > 0 ? `${s.passed} ${Icon.success}` : ''
+ const failed = s.failed > 0 ? `${s.failed} ${Icon.fail}` : ''
+ const skipped = s.skipped > 0 ? `${s.skipped} ${Icon.skip}` : ''
return [tsNameLink, passed, failed, skipped, tsTime]
})
)
diff --git a/src/utils/markdown-utils.ts b/src/utils/markdown-utils.ts
index 495d388..74db595 100644
--- a/src/utils/markdown-utils.ts
+++ b/src/utils/markdown-utils.ts
@@ -6,9 +6,9 @@ export enum Align {
}
export const Icon = {
- skip: ':warning:',
- success: ':white_check_mark:',
- fail: ':x:'
+ skip: '⚪', // ':white_circle:'
+ success: '✅', // ':white_check_mark:'
+ fail: '❌' // ':x:'
}
export function link(title: string, address: string): string {