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 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20passed%2C%204%20failed%2C%201%20skipped-critical) |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 @@ ![Tests failed](https://img.shields.io/badge/tests-5%20passed%2C%205%20failed%2C%201%20skipped-critical) |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 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20passed%2C%204%20failed%2C%201%20skipped-critical) |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 @@ ![Tests failed](https://img.shields.io/badge/tests-4207%20passed%2C%202%20failed%2C%2030%20skipped-critical) |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 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20passed%2C%204%20failed%2C%201%20skipped-critical) |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 @@ ![Tests failed](https://img.shields.io/badge/tests-268%20passed%2C%201%20failed-critical) |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 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20failed%2C%201%20skipped-critical) |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 @@ ![Tests failed](https://img.shields.io/badge/tests-793%20passed%2C%201%20failed%2C%2014%20skipped-critical) |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 @@ ![Tests failed](https://img.shields.io/badge/tests-2%20passed%2C%201%20failed-critical) |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 {