@cucumber/cucumber 12.9.0 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -3
- package/bin/cucumber.js +2 -1
- package/lib/api/convert_configuration.d.ts +3 -4
- package/lib/api/convert_configuration.js +9 -11
- package/lib/api/emit_support_code_messages.d.ts +3 -3
- package/lib/api/emit_support_code_messages.js +16 -65
- package/lib/api/formatters.d.ts +7 -7
- package/lib/api/formatters.js +5 -2
- package/lib/api/gherkin.d.ts +3 -3
- package/lib/api/gherkin.js +2 -4
- package/lib/api/index.d.ts +2 -2
- package/lib/api/index.js +1 -1
- package/lib/api/load_configuration.d.ts +2 -2
- package/lib/api/load_configuration.js +4 -5
- package/lib/api/load_sources.d.ts +2 -2
- package/lib/api/load_sources.js +2 -2
- package/lib/api/load_support.d.ts +2 -2
- package/lib/api/load_support.js +3 -3
- package/lib/api/plugins.d.ts +2 -2
- package/lib/api/plugins.js +2 -2
- package/lib/api/run_cucumber.d.ts +3 -3
- package/lib/api/run_cucumber.js +19 -3
- package/lib/api/support.d.ts +3 -3
- package/lib/api/support.js +5 -5
- package/lib/api/test_helpers.d.ts +1 -1
- package/lib/api/test_helpers.js +8 -10
- package/lib/api/types.d.ts +9 -5
- package/lib/api/types.js +1 -1
- package/lib/api/wrapper.d.mts +5 -0
- package/lib/api/wrapper.mjs +6 -6
- package/lib/assemble/assemble_test_cases.d.ts +4 -4
- package/lib/assemble/assemble_test_cases.js +2 -6
- package/lib/assemble/index.js +1 -1
- package/lib/assemble/types.d.ts +1 -1
- package/lib/assemble/types.js +1 -1
- package/lib/cli/i18n.js +5 -3
- package/lib/cli/index.d.ts +1 -1
- package/lib/cli/index.js +2 -2
- package/lib/cli/install_validator.js +4 -3
- package/lib/cli/run.js +7 -6
- package/lib/cli/validate_node_engine_version.js +2 -4
- package/lib/configuration/argv_parser.d.ts +1 -1
- package/lib/configuration/argv_parser.js +7 -7
- package/lib/configuration/check_schema.d.ts +1 -1
- package/lib/configuration/check_schema.js +17 -6
- package/lib/configuration/default_configuration.d.ts +1 -1
- package/lib/configuration/default_configuration.js +2 -1
- package/lib/configuration/from_file.d.ts +2 -2
- package/lib/configuration/from_file.js +6 -6
- package/lib/configuration/helpers.js +1 -1
- package/lib/configuration/index.js +1 -1
- package/lib/configuration/locate_file.js +3 -3
- package/lib/configuration/merge_configurations.d.ts +1 -1
- package/lib/configuration/merge_configurations.js +2 -10
- package/lib/configuration/parse_configuration.d.ts +2 -2
- package/lib/configuration/parse_configuration.js +3 -11
- package/lib/configuration/split_format_descriptor.d.ts +1 -2
- package/lib/configuration/split_format_descriptor.js +11 -71
- package/lib/configuration/types.d.ts +26 -3
- package/lib/configuration/types.js +1 -1
- package/lib/configuration/validate_configuration.d.ts +2 -2
- package/lib/configuration/validate_configuration.js +5 -3
- package/lib/environment/console_logger.d.ts +2 -2
- package/lib/environment/console_logger.js +1 -1
- package/lib/environment/index.js +1 -1
- package/lib/environment/make_environment.d.ts +1 -1
- package/lib/environment/make_environment.js +1 -1
- package/lib/environment/types.d.ts +1 -1
- package/lib/environment/types.js +1 -1
- package/lib/filter/filter_plugin.d.ts +1 -1
- package/lib/filter/filter_plugin.js +1 -1
- package/lib/filter/index.d.ts +1 -1
- package/lib/filter/index.js +2 -2
- package/lib/filter/order_pickles.d.ts +2 -2
- package/lib/filter/order_pickles.js +1 -1
- package/lib/filter/types.d.ts +1 -1
- package/lib/filter/types.js +1 -1
- package/lib/filter_stack_trace.d.ts +1 -1
- package/lib/filter_stack_trace.js +1 -1
- package/lib/formatter/builder.d.ts +8 -7
- package/lib/formatter/builder.js +6 -7
- package/lib/formatter/builtin/html.js +2 -2
- package/lib/formatter/builtin/index.d.ts +4 -4
- package/lib/formatter/builtin/index.js +14 -13
- package/lib/formatter/builtin/message.js +2 -2
- package/lib/formatter/builtin/pretty.d.ts +6 -0
- package/lib/formatter/builtin/pretty.js +19 -0
- package/lib/formatter/builtin/progress-bar.d.ts +6 -0
- package/lib/formatter/builtin/progress-bar.js +22 -0
- package/lib/formatter/builtin/progress.d.ts +6 -0
- package/lib/formatter/builtin/progress.js +18 -0
- package/lib/formatter/builtin/resolve_terminal_options.d.ts +3 -0
- package/lib/formatter/builtin/resolve_terminal_options.js +15 -0
- package/lib/formatter/builtin/summary.d.ts +6 -0
- package/lib/formatter/builtin/summary.js +15 -0
- package/lib/formatter/create_stream.d.ts +2 -2
- package/lib/formatter/create_stream.js +4 -7
- package/lib/formatter/find_class_or_plugin.js +1 -1
- package/lib/formatter/get_color_fns.d.ts +3 -3
- package/lib/formatter/get_color_fns.js +23 -52
- package/lib/formatter/helpers/duration_helpers.d.ts +1 -1
- package/lib/formatter/helpers/duration_helpers.js +1 -1
- package/lib/formatter/helpers/event_data_collector.d.ts +15 -15
- package/lib/formatter/helpers/event_data_collector.js +17 -44
- package/lib/formatter/helpers/formatters.d.ts +1 -1
- package/lib/formatter/helpers/formatters.js +1 -3
- package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
- package/lib/formatter/helpers/gherkin_document_parser.js +20 -18
- package/lib/formatter/helpers/index.d.ts +3 -3
- package/lib/formatter/helpers/index.js +8 -8
- package/lib/formatter/helpers/issue_helpers.d.ts +10 -10
- package/lib/formatter/helpers/issue_helpers.js +2 -2
- package/lib/formatter/helpers/keyword_type.js +2 -2
- package/lib/formatter/helpers/location_helpers.d.ts +1 -1
- package/lib/formatter/helpers/location_helpers.js +1 -1
- package/lib/formatter/helpers/pickle_parser.d.ts +10 -10
- package/lib/formatter/helpers/pickle_parser.js +8 -9
- package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
- package/lib/formatter/helpers/step_argument_formatter.js +1 -1
- package/lib/formatter/helpers/summary_helpers.d.ts +4 -4
- package/lib/formatter/helpers/summary_helpers.js +19 -48
- package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +4 -4
- package/lib/formatter/helpers/test_case_attempt_formatter.js +16 -49
- package/lib/formatter/helpers/test_case_attempt_parser.d.ts +9 -9
- package/lib/formatter/helpers/test_case_attempt_parser.js +12 -45
- package/lib/formatter/helpers/usage_helpers/index.d.ts +6 -6
- package/lib/formatter/helpers/usage_helpers/index.js +13 -49
- package/lib/formatter/import_code.js +2 -2
- package/lib/formatter/index.d.ts +25 -13
- package/lib/formatter/index.js +2 -2
- package/lib/formatter/json_formatter.d.ts +22 -22
- package/lib/formatter/json_formatter.js +11 -49
- package/lib/formatter/progress_formatter.d.ts +7 -3
- package/lib/formatter/progress_formatter.js +11 -41
- package/lib/formatter/rerun_formatter.d.ts +1 -1
- package/lib/formatter/rerun_formatter.js +4 -37
- package/lib/formatter/resolve_implementation.d.ts +1 -1
- package/lib/formatter/resolve_implementation.js +2 -2
- package/lib/formatter/snippets_formatter.d.ts +1 -1
- package/lib/formatter/snippets_formatter.js +4 -37
- package/lib/formatter/step_definition_snippet_builder/index.d.ts +6 -6
- package/lib/formatter/step_definition_snippet_builder/index.js +3 -3
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +1 -1
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +3 -5
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +1 -1
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +1 -1
- package/lib/formatter/summary_formatter.d.ts +7 -4
- package/lib/formatter/summary_formatter.js +6 -3
- package/lib/formatter/usage_formatter.d.ts +1 -1
- package/lib/formatter/usage_formatter.js +6 -39
- package/lib/formatter/usage_json_formatter.d.ts +1 -1
- package/lib/formatter/usage_json_formatter.js +3 -3
- package/lib/index.d.ts +9 -14
- package/lib/index.js +17 -25
- package/lib/models/data_table.d.ts +2 -2
- package/lib/models/data_table.js +9 -5
- package/lib/models/definition.d.ts +5 -5
- package/lib/models/definition.js +1 -1
- package/lib/models/gherkin_step_keyword.js +1 -1
- package/lib/models/step_definition.d.ts +3 -3
- package/lib/models/step_definition.js +1 -1
- package/lib/models/test_case_hook_definition.d.ts +3 -3
- package/lib/models/test_case_hook_definition.js +1 -1
- package/lib/models/test_run_hook_definition.d.ts +1 -1
- package/lib/models/test_run_hook_definition.js +1 -1
- package/lib/models/test_step_hook_definition.d.ts +3 -3
- package/lib/models/test_step_hook_definition.js +1 -1
- package/lib/paths/index.js +1 -1
- package/lib/paths/paths.d.ts +3 -3
- package/lib/paths/paths.js +42 -18
- package/lib/paths/types.js +1 -1
- package/lib/pickle_filter.d.ts +9 -8
- package/lib/pickle_filter.js +3 -3
- package/lib/plugin/index.d.ts +1 -1
- package/lib/plugin/index.js +2 -2
- package/lib/plugin/plugin_manager.d.ts +2 -2
- package/lib/plugin/plugin_manager.js +1 -1
- package/lib/plugin/types.d.ts +59 -9
- package/lib/plugin/types.js +1 -1
- package/lib/publish/index.js +1 -1
- package/lib/publish/publish_plugin.d.ts +1 -1
- package/lib/publish/publish_plugin.js +14 -15
- package/lib/publish/types.js +1 -1
- package/lib/runtime/attachment_manager/index.d.ts +3 -3
- package/lib/runtime/attachment_manager/index.js +12 -48
- package/lib/runtime/coordinator.d.ts +16 -8
- package/lib/runtime/coordinator.js +38 -19
- package/lib/runtime/format_error.d.ts +1 -1
- package/lib/runtime/format_error.js +43 -15
- package/lib/runtime/helpers.d.ts +5 -5
- package/lib/runtime/helpers.js +6 -39
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/make_runtime.d.ts +10 -9
- package/lib/runtime/make_runtime.js +5 -6
- package/lib/runtime/make_suggestion.d.ts +2 -2
- package/lib/runtime/make_suggestion.js +1 -1
- package/lib/runtime/parallel/adapter.d.ts +30 -39
- package/lib/runtime/parallel/adapter.js +134 -120
- package/lib/runtime/parallel/test_cases_phase.d.ts +19 -0
- package/lib/runtime/parallel/test_cases_phase.js +63 -0
- package/lib/runtime/parallel/test_run_hooks_phase.d.ts +11 -0
- package/lib/runtime/parallel/test_run_hooks_phase.js +33 -0
- package/lib/runtime/parallel/types.d.ts +38 -22
- package/lib/runtime/parallel/types.js +1 -1
- package/lib/runtime/parallel/worker.mjs +65 -0
- package/lib/runtime/scope/index.js +1 -1
- package/lib/runtime/scope/make_proxy.js +1 -1
- package/lib/runtime/scope/test_case_scope.d.ts +1 -1
- package/lib/runtime/scope/test_case_scope.js +1 -1
- package/lib/runtime/scope/test_run_scope.d.ts +1 -1
- package/lib/runtime/scope/test_run_scope.js +1 -1
- package/lib/runtime/serial/adapter.d.ts +15 -9
- package/lib/runtime/serial/adapter.js +21 -9
- package/lib/runtime/step_runner.d.ts +5 -5
- package/lib/runtime/step_runner.js +7 -40
- package/lib/runtime/stopwatch.d.ts +2 -2
- package/lib/runtime/stopwatch.js +1 -1
- package/lib/runtime/test_case_runner.d.ts +20 -20
- package/lib/runtime/test_case_runner.js +31 -60
- package/lib/runtime/types.d.ts +13 -4
- package/lib/runtime/types.js +1 -1
- package/lib/runtime/worker.d.ts +14 -13
- package/lib/runtime/worker.js +26 -44
- package/lib/sharding/index.js +1 -1
- package/lib/sharding/sharding_plugin.d.ts +1 -1
- package/lib/sharding/sharding_plugin.js +1 -1
- package/lib/step_arguments.d.ts +4 -4
- package/lib/step_arguments.js +1 -1
- package/lib/support_code_library_builder/build_parameter_type.d.ts +1 -1
- package/lib/support_code_library_builder/build_parameter_type.js +5 -3
- package/lib/support_code_library_builder/context.js +1 -1
- package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +1 -1
- package/lib/support_code_library_builder/get_definition_line_and_uri.js +1 -1
- package/lib/support_code_library_builder/index.d.ts +7 -8
- package/lib/support_code_library_builder/index.js +9 -9
- package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +1 -1
- package/lib/support_code_library_builder/parallel_can_assign_helpers.js +3 -4
- package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +2 -2
- package/lib/support_code_library_builder/sourced_parameter_type_registry.js +1 -1
- package/lib/support_code_library_builder/types.d.ts +17 -17
- package/lib/support_code_library_builder/types.js +1 -1
- package/lib/support_code_library_builder/validate_arguments.d.ts +1 -1
- package/lib/support_code_library_builder/validate_arguments.js +1 -1
- package/lib/support_code_library_builder/world.d.ts +2 -2
- package/lib/support_code_library_builder/world.js +2 -2
- package/lib/time.d.ts +2 -2
- package/lib/time.js +6 -39
- package/lib/try_require.js +3 -2
- package/lib/types/index.js +1 -1
- package/lib/uncaught_exception_manager.js +1 -1
- package/lib/user_code_runner.d.ts +1 -1
- package/lib/user_code_runner.js +3 -3
- package/lib/value_checker.js +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +3 -3
- package/lib/wrapper.d.mts +43 -0
- package/lib/wrapper.mjs +37 -45
- package/package.json +50 -75
- package/lib/api/convert_configuration.js.map +0 -1
- package/lib/api/emit_support_code_messages.js.map +0 -1
- package/lib/api/formatters.js.map +0 -1
- package/lib/api/gherkin.js.map +0 -1
- package/lib/api/index.js.map +0 -1
- package/lib/api/load_configuration.js.map +0 -1
- package/lib/api/load_sources.js.map +0 -1
- package/lib/api/load_support.js.map +0 -1
- package/lib/api/plugins.js.map +0 -1
- package/lib/api/run_cucumber.js.map +0 -1
- package/lib/api/support.js.map +0 -1
- package/lib/api/test_helpers.js.map +0 -1
- package/lib/api/types.js.map +0 -1
- package/lib/assemble/assemble_test_cases.js.map +0 -1
- package/lib/assemble/index.js.map +0 -1
- package/lib/assemble/types.js.map +0 -1
- package/lib/cli/i18n.js.map +0 -1
- package/lib/cli/index.js.map +0 -1
- package/lib/cli/install_validator.js.map +0 -1
- package/lib/cli/run.js.map +0 -1
- package/lib/cli/validate_node_engine_version.js.map +0 -1
- package/lib/configuration/argv_parser.js.map +0 -1
- package/lib/configuration/check_schema.js.map +0 -1
- package/lib/configuration/default_configuration.js.map +0 -1
- package/lib/configuration/from_file.js.map +0 -1
- package/lib/configuration/helpers.js.map +0 -1
- package/lib/configuration/index.js.map +0 -1
- package/lib/configuration/locate_file.js.map +0 -1
- package/lib/configuration/merge_configurations.js.map +0 -1
- package/lib/configuration/parse_configuration.js.map +0 -1
- package/lib/configuration/split_format_descriptor.js.map +0 -1
- package/lib/configuration/types.js.map +0 -1
- package/lib/configuration/validate_configuration.js.map +0 -1
- package/lib/environment/console_logger.js.map +0 -1
- package/lib/environment/index.js.map +0 -1
- package/lib/environment/make_environment.js.map +0 -1
- package/lib/environment/types.js.map +0 -1
- package/lib/filter/filter_plugin.js.map +0 -1
- package/lib/filter/index.js.map +0 -1
- package/lib/filter/order_pickles.js.map +0 -1
- package/lib/filter/types.js.map +0 -1
- package/lib/filter_stack_trace.js.map +0 -1
- package/lib/formatter/builder.js.map +0 -1
- package/lib/formatter/builtin/html.js.map +0 -1
- package/lib/formatter/builtin/index.js.map +0 -1
- package/lib/formatter/builtin/message.js.map +0 -1
- package/lib/formatter/create_stream.js.map +0 -1
- package/lib/formatter/find_class_or_plugin.js.map +0 -1
- package/lib/formatter/get_color_fns.js.map +0 -1
- package/lib/formatter/helpers/duration_helpers.js.map +0 -1
- package/lib/formatter/helpers/event_data_collector.js.map +0 -1
- package/lib/formatter/helpers/formatters.js.map +0 -1
- package/lib/formatter/helpers/gherkin_document_parser.js.map +0 -1
- package/lib/formatter/helpers/index.js.map +0 -1
- package/lib/formatter/helpers/issue_helpers.js.map +0 -1
- package/lib/formatter/helpers/keyword_type.js.map +0 -1
- package/lib/formatter/helpers/location_helpers.js.map +0 -1
- package/lib/formatter/helpers/pickle_parser.js.map +0 -1
- package/lib/formatter/helpers/step_argument_formatter.js.map +0 -1
- package/lib/formatter/helpers/summary_helpers.js.map +0 -1
- package/lib/formatter/helpers/test_case_attempt_formatter.js.map +0 -1
- package/lib/formatter/helpers/test_case_attempt_parser.js.map +0 -1
- package/lib/formatter/helpers/usage_helpers/index.js.map +0 -1
- package/lib/formatter/import_code.js.map +0 -1
- package/lib/formatter/index.js.map +0 -1
- package/lib/formatter/json_formatter.js.map +0 -1
- package/lib/formatter/progress_bar_formatter.d.ts +0 -18
- package/lib/formatter/progress_bar_formatter.js +0 -103
- package/lib/formatter/progress_bar_formatter.js.map +0 -1
- package/lib/formatter/progress_formatter.js.map +0 -1
- package/lib/formatter/rerun_formatter.js.map +0 -1
- package/lib/formatter/resolve_implementation.js.map +0 -1
- package/lib/formatter/snippets_formatter.js.map +0 -1
- package/lib/formatter/step_definition_snippet_builder/index.js.map +0 -1
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js.map +0 -1
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js.map +0 -1
- package/lib/formatter/summary_formatter.js.map +0 -1
- package/lib/formatter/usage_formatter.js.map +0 -1
- package/lib/formatter/usage_json_formatter.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/models/data_table.js.map +0 -1
- package/lib/models/definition.js.map +0 -1
- package/lib/models/gherkin_step_keyword.js.map +0 -1
- package/lib/models/step_definition.js.map +0 -1
- package/lib/models/test_case_hook_definition.js.map +0 -1
- package/lib/models/test_run_hook_definition.js.map +0 -1
- package/lib/models/test_step_hook_definition.js.map +0 -1
- package/lib/paths/index.js.map +0 -1
- package/lib/paths/paths.js.map +0 -1
- package/lib/paths/types.js.map +0 -1
- package/lib/pickle_filter.js.map +0 -1
- package/lib/plugin/index.js.map +0 -1
- package/lib/plugin/plugin_manager.js.map +0 -1
- package/lib/plugin/types.js.map +0 -1
- package/lib/publish/index.js.map +0 -1
- package/lib/publish/publish_plugin.js.map +0 -1
- package/lib/publish/types.js.map +0 -1
- package/lib/runtime/attachment_manager/index.js.map +0 -1
- package/lib/runtime/coordinator.js.map +0 -1
- package/lib/runtime/format_error.js.map +0 -1
- package/lib/runtime/helpers.js.map +0 -1
- package/lib/runtime/index.js.map +0 -1
- package/lib/runtime/make_runtime.js.map +0 -1
- package/lib/runtime/make_suggestion.js.map +0 -1
- package/lib/runtime/parallel/adapter.js.map +0 -1
- package/lib/runtime/parallel/run_worker.js +0 -25
- package/lib/runtime/parallel/run_worker.js.map +0 -1
- package/lib/runtime/parallel/types.js.map +0 -1
- package/lib/runtime/parallel/worker.d.ts +0 -25
- package/lib/runtime/parallel/worker.js +0 -83
- package/lib/runtime/parallel/worker.js.map +0 -1
- package/lib/runtime/scope/index.js.map +0 -1
- package/lib/runtime/scope/make_proxy.js.map +0 -1
- package/lib/runtime/scope/test_case_scope.js.map +0 -1
- package/lib/runtime/scope/test_run_scope.js.map +0 -1
- package/lib/runtime/serial/adapter.js.map +0 -1
- package/lib/runtime/step_runner.js.map +0 -1
- package/lib/runtime/stopwatch.js.map +0 -1
- package/lib/runtime/test_case_runner.js.map +0 -1
- package/lib/runtime/types.js.map +0 -1
- package/lib/runtime/worker.js.map +0 -1
- package/lib/sharding/index.js.map +0 -1
- package/lib/sharding/sharding_plugin.js.map +0 -1
- package/lib/step_arguments.js.map +0 -1
- package/lib/support_code_library_builder/build_parameter_type.js.map +0 -1
- package/lib/support_code_library_builder/context.js.map +0 -1
- package/lib/support_code_library_builder/get_definition_line_and_uri.js.map +0 -1
- package/lib/support_code_library_builder/index.js.map +0 -1
- package/lib/support_code_library_builder/parallel_can_assign_helpers.js.map +0 -1
- package/lib/support_code_library_builder/sourced_parameter_type_registry.js.map +0 -1
- package/lib/support_code_library_builder/types.js.map +0 -1
- package/lib/support_code_library_builder/validate_arguments.js.map +0 -1
- package/lib/support_code_library_builder/world.js.map +0 -1
- package/lib/time.js.map +0 -1
- package/lib/try_require.js.map +0 -1
- package/lib/tsconfig.node.tsbuildinfo +0 -1
- package/lib/types/index.js.map +0 -1
- package/lib/uncaught_exception_manager.js.map +0 -1
- package/lib/user_code_runner.js.map +0 -1
- package/lib/value_checker.js.map +0 -1
- package/lib/version.js.map +0 -1
- /package/lib/runtime/parallel/{run_worker.d.ts → worker.d.mts} +0 -0
|
@@ -16,4 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./test_case_scope"), exports);
|
|
18
18
|
__exportStar(require("./test_run_scope"), exports);
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVudGltZS9zY29wZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQWlDO0FBQ2pDLG1EQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVzdF9jYXNlX3Njb3BlJ1xuZXhwb3J0ICogZnJvbSAnLi90ZXN0X3J1bl9zY29wZSdcbiJdfQ==
|
|
@@ -38,4 +38,4 @@ function makeProxy(getThing) {
|
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9wcm94eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW50aW1lL3Njb3BlL21ha2VfcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4QkF1Q0M7QUF2Q0QsU0FBZ0IsU0FBUyxDQUFJLFFBQW1CO0lBQzlDLE9BQU8sSUFBSSxLQUFLLENBQ2QsRUFBRSxFQUNGO1FBQ0UsY0FBYyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVTtZQUNwQyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ2pFLENBQUM7UUFDRCxjQUFjLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDeEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQzFDLENBQUM7UUFDRCxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDYixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDdEQsQ0FBQztRQUNELHdCQUF3QixDQUFDLENBQUMsRUFBRSxRQUFRO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQy9ELENBQUM7UUFDRCxjQUFjLENBQUMsQ0FBQztZQUNkLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzNDLENBQUM7UUFDRCxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUc7WUFDUixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDckMsQ0FBQztRQUNELFlBQVksQ0FBQyxDQUFDO1lBQ1osT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDekMsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO1lBQ1AsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDcEMsQ0FBQztRQUNELGlCQUFpQixDQUFDLENBQUM7WUFDakIsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUM5QyxDQUFDO1FBQ0QsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSztZQUNwQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzdELENBQUM7UUFDRCxjQUFjLENBQUMsQ0FBQyxFQUFFLEtBQUs7WUFDckIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ2xELENBQUM7S0FDRixDQUNHLENBQUE7QUFDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG1ha2VQcm94eTxUPihnZXRUaGluZzogKCkgPT4gYW55KTogVCB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAge30sXG4gICAge1xuICAgICAgZGVmaW5lUHJvcGVydHkoXywgcHJvcGVydHksIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoZ2V0VGhpbmcoKSwgcHJvcGVydHksIGF0dHJpYnV0ZXMpXG4gICAgICB9LFxuICAgICAgZGVsZXRlUHJvcGVydHkoXywgcHJvcGVydHkpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KGdldFRoaW5nKCksIHByb3BlcnR5KVxuICAgICAgfSxcbiAgICAgIGdldChfLCBwcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQoZ2V0VGhpbmcoKSwgcHJvcGVydHksIGdldFRoaW5nKCkpXG4gICAgICB9LFxuICAgICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sIHByb3BlcnR5KSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnZXRUaGluZygpLCBwcm9wZXJ0eSlcbiAgICAgIH0sXG4gICAgICBnZXRQcm90b3R5cGVPZihfKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldFByb3RvdHlwZU9mKGdldFRoaW5nKCkpXG4gICAgICB9LFxuICAgICAgaGFzKF8sIGtleSkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXMoZ2V0VGhpbmcoKSwga2V5KVxuICAgICAgfSxcbiAgICAgIGlzRXh0ZW5zaWJsZShfKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmlzRXh0ZW5zaWJsZShnZXRUaGluZygpKVxuICAgICAgfSxcbiAgICAgIG93bktleXMoXykge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKGdldFRoaW5nKCkpXG4gICAgICB9LFxuICAgICAgcHJldmVudEV4dGVuc2lvbnMoXykge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhnZXRUaGluZygpKVxuICAgICAgfSxcbiAgICAgIHNldChfLCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KGdldFRoaW5nKCksIHByb3BlcnR5LCB2YWx1ZSwgZ2V0VGhpbmcoKSlcbiAgICAgIH0sXG4gICAgICBzZXRQcm90b3R5cGVPZihfLCBwcm90bykge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXRQcm90b3R5cGVPZihnZXRUaGluZygpLCBwcm90bylcbiAgICAgIH0sXG4gICAgfVxuICApIGFzIFRcbn1cbiJdfQ==
|
|
@@ -26,4 +26,4 @@ function getWorld() {
|
|
|
26
26
|
* otherwise).
|
|
27
27
|
*/
|
|
28
28
|
exports.worldProxy = (0, make_proxy_1.makeProxy)(getWorld);
|
|
29
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jYXNlX3Njb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bnRpbWUvc2NvcGUvdGVzdF9jYXNlX3Njb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLGdEQUtDO0FBZkQsdURBQW9EO0FBRXBELDZDQUF3QztBQU14QyxNQUFNLGFBQWEsR0FBRyxJQUFJLG9DQUFpQixFQUFzQixDQUFBO0FBRTFELEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsS0FBeUIsRUFDekIsUUFBNEI7SUFFNUIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsU0FBUyxRQUFRO0lBQ2YsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUdBQWlHLENBQ2xHLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsS0FBK0IsQ0FBQTtBQUM5QyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ1UsUUFBQSxVQUFVLEdBQUcsSUFBQSxzQkFBUyxFQUFTLFFBQVEsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNMb2NhbFN0b3JhZ2UgfSBmcm9tICdub2RlOmFzeW5jX2hvb2tzJ1xuaW1wb3J0IHR5cGUgeyBJV29ybGQgfSBmcm9tICcuLi8uLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3dvcmxkJ1xuaW1wb3J0IHsgbWFrZVByb3h5IH0gZnJvbSAnLi9tYWtlX3Byb3h5J1xuXG5pbnRlcmZhY2UgVGVzdENhc2VTY29wZVN0b3JlPFBhcmFtZXRlcnNUeXBlID0gYW55PiB7XG4gIHdvcmxkOiBJV29ybGQ8UGFyYW1ldGVyc1R5cGU+XG59XG5cbmNvbnN0IHRlc3RDYXNlU2NvcGUgPSBuZXcgQXN5bmNMb2NhbFN0b3JhZ2U8VGVzdENhc2VTY29wZVN0b3JlPigpXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5JblRlc3RDYXNlU2NvcGU8UmVzcG9uc2VUeXBlPihcbiAgc3RvcmU6IFRlc3RDYXNlU2NvcGVTdG9yZSxcbiAgY2FsbGJhY2s6ICgpID0+IFJlc3BvbnNlVHlwZVxuKSB7XG4gIHJldHVybiB0ZXN0Q2FzZVNjb3BlLnJ1bihzdG9yZSwgY2FsbGJhY2spXG59XG5cbmZ1bmN0aW9uIGdldFdvcmxkPFBhcmFtZXRlcnNUeXBlID0gYW55PigpOiBJV29ybGQ8UGFyYW1ldGVyc1R5cGU+IHtcbiAgY29uc3Qgc3RvcmUgPSB0ZXN0Q2FzZVNjb3BlLmdldFN0b3JlKClcbiAgaWYgKCFzdG9yZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gYWNjZXNzIGB3b3JsZGAgZnJvbSBpbmNvcnJlY3Qgc2NvcGU7IG9ubHkgYXBwbGljYWJsZSB0byBzdGVwcyBhbmQgY2FzZS1sZXZlbCBob29rcydcbiAgICApXG4gIH1cbiAgcmV0dXJuIHN0b3JlLndvcmxkIGFzIElXb3JsZDxQYXJhbWV0ZXJzVHlwZT5cbn1cblxuLyoqXG4gKiBBIHByb3h5IHRvIHRoZSBXb3JsZCBpbnN0YW5jZSBmb3IgdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgdGVzdCBjYXNlXG4gKlxuICogQGJldGFcbiAqIEByZW1hcmtzXG4gKiBVc2VmdWwgZm9yIGdldHRpbmcgYSBoYW5kbGUgb24gdGhlIFdvcmxkIHdoZW4gdXNpbmcgYXJyb3cgZnVuY3Rpb25zIGFuZCB0aHVzXG4gKiBiZWluZyB1bmFibGUgdG8gcmVseSBvbiB0aGUgdmFsdWUgb2YgYHRoaXNgLiBPbmx5IGNhbGxhYmxlIGZyb20gdGhlIGJvZHkgb2YgYVxuICogc3RlcCBvciBhIGBCZWZvcmVgLCBgQWZ0ZXJgLCBgQmVmb3JlU3RlcGAgb3IgYEFmdGVyU3RlcGAgaG9vayAod2lsbCB0aHJvd1xuICogb3RoZXJ3aXNlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHdvcmxkUHJveHkgPSBtYWtlUHJveHk8SVdvcmxkPihnZXRXb3JsZClcbiJdfQ==
|
|
@@ -25,4 +25,4 @@ function getContext() {
|
|
|
25
25
|
* `BeforeAll` or `AfterAll` hook (will throw otherwise).
|
|
26
26
|
*/
|
|
27
27
|
exports.contextProxy = (0, make_proxy_1.makeProxy)(getContext);
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9ydW5fc2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVudGltZS9zY29wZS90ZXN0X3J1bl9zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSw4Q0FLQztBQWZELHVEQUFvRDtBQUVwRCw2Q0FBd0M7QUFNeEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxvQ0FBaUIsRUFBcUIsQ0FBQTtBQUV4RCxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLEtBQXdCLEVBQ3hCLFFBQTRCO0lBRTVCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVELFNBQVMsVUFBVTtJQUNqQixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDckMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYix3RkFBd0YsQ0FDekYsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxPQUFtQyxDQUFBO0FBQ2xELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNVLFFBQUEsWUFBWSxHQUFHLElBQUEsc0JBQVMsRUFBVyxVQUFVLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSAnbm9kZTphc3luY19ob29rcydcbmltcG9ydCB0eXBlIHsgSUNvbnRleHQgfSBmcm9tICcuLi8uLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL2NvbnRleHQnXG5pbXBvcnQgeyBtYWtlUHJveHkgfSBmcm9tICcuL21ha2VfcHJveHknXG5cbmludGVyZmFjZSBUZXN0UnVuU2NvcGVTdG9yZTxQYXJhbWV0ZXJzVHlwZSA9IGFueT4ge1xuICBjb250ZXh0OiBJQ29udGV4dDxQYXJhbWV0ZXJzVHlwZT5cbn1cblxuY29uc3QgdGVzdFJ1blNjb3BlID0gbmV3IEFzeW5jTG9jYWxTdG9yYWdlPFRlc3RSdW5TY29wZVN0b3JlPigpXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5JblRlc3RSdW5TY29wZTxSZXNwb25zZVR5cGU+KFxuICBzdG9yZTogVGVzdFJ1blNjb3BlU3RvcmUsXG4gIGNhbGxiYWNrOiAoKSA9PiBSZXNwb25zZVR5cGVcbikge1xuICByZXR1cm4gdGVzdFJ1blNjb3BlLnJ1bihzdG9yZSwgY2FsbGJhY2spXG59XG5cbmZ1bmN0aW9uIGdldENvbnRleHQ8UGFyYW1ldGVyc1R5cGUgPSBhbnk+KCk6IElDb250ZXh0PFBhcmFtZXRlcnNUeXBlPiB7XG4gIGNvbnN0IHN0b3JlID0gdGVzdFJ1blNjb3BlLmdldFN0b3JlKClcbiAgaWYgKCFzdG9yZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gYWNjZXNzIGBjb250ZXh0YCBmcm9tIGluY29ycmVjdCBzY29wZTsgb25seSBhcHBsaWNhYmxlIHRvIHJ1bi1sZXZlbCBob29rcydcbiAgICApXG4gIH1cbiAgcmV0dXJuIHN0b3JlLmNvbnRleHQgYXMgSUNvbnRleHQ8UGFyYW1ldGVyc1R5cGU+XG59XG5cbi8qKlxuICogQSBwcm94eSB0byB0aGUgY29udGV4dCBmb3IgdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgdGVzdCBydW4uXG4gKlxuICogQGJldGFcbiAqIEByZW1hcmtzXG4gKiBVc2VmdWwgZm9yIGdldHRpbmcgYSBoYW5kbGUgb24gdGhlIGNvbnRleHQgd2hlbiB1c2luZyBhcnJvdyBmdW5jdGlvbnMgYW5kIHRodXNcbiAqIGJlaW5nIHVuYWJsZSB0byByZWx5IG9uIHRoZSB2YWx1ZSBvZiBgdGhpc2AuIE9ubHkgY2FsbGFibGUgZnJvbSB0aGUgYm9keSBvZiBhXG4gKiBgQmVmb3JlQWxsYCBvciBgQWZ0ZXJBbGxgIGhvb2sgKHdpbGwgdGhyb3cgb3RoZXJ3aXNlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnRleHRQcm94eSA9IG1ha2VQcm94eTxJQ29udGV4dD4oZ2V0Q29udGV4dClcbiJdfQ==
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import { EventEmitter } from 'node:events';
|
|
2
|
-
import { IdGenerator } from '@cucumber/messages';
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
1
|
+
import type { EventEmitter } from 'node:events';
|
|
2
|
+
import type { IdGenerator } from '@cucumber/messages';
|
|
3
|
+
import type { AssembledTestCase } from '../../assemble';
|
|
4
|
+
import type StepDefinitionSnippetBuilder from '../../formatter/step_definition_snippet_builder';
|
|
5
|
+
import type { SupportCodeLibrary } from '../../support_code_library_builder/types';
|
|
6
|
+
import type { RuntimeOptions } from '../index';
|
|
7
|
+
import type { RuntimeAdapter } from '../types';
|
|
8
|
+
/**
|
|
9
|
+
* A simple adapter that executes all work in serial on the main thread
|
|
10
|
+
*/
|
|
8
11
|
export declare class InProcessAdapter implements RuntimeAdapter {
|
|
9
12
|
private readonly worker;
|
|
10
|
-
private failing;
|
|
11
13
|
constructor(testRunStartedId: string, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, options: RuntimeOptions, supportCodeLibrary: SupportCodeLibrary, snippetBuilder: StepDefinitionSnippetBuilder);
|
|
12
|
-
|
|
14
|
+
setup(): Promise<void>;
|
|
15
|
+
teardown(): Promise<void>;
|
|
16
|
+
runBeforeAllHooks(): Promise<boolean>;
|
|
17
|
+
runTestCases(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
|
|
18
|
+
runAfterAllHooks(): Promise<boolean>;
|
|
13
19
|
}
|
|
@@ -2,23 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InProcessAdapter = void 0;
|
|
4
4
|
const worker_1 = require("../worker");
|
|
5
|
+
/**
|
|
6
|
+
* A simple adapter that executes all work in serial on the main thread
|
|
7
|
+
*/
|
|
5
8
|
class InProcessAdapter {
|
|
6
9
|
worker;
|
|
7
|
-
failing = false;
|
|
8
10
|
constructor(testRunStartedId, eventBroadcaster, newId, options, supportCodeLibrary, snippetBuilder) {
|
|
9
11
|
this.worker = new worker_1.Worker(testRunStartedId, undefined, eventBroadcaster, newId, options, supportCodeLibrary, snippetBuilder);
|
|
10
12
|
}
|
|
11
|
-
async
|
|
12
|
-
|
|
13
|
+
async setup() {
|
|
14
|
+
// no-op for serial runtime
|
|
15
|
+
}
|
|
16
|
+
async teardown() {
|
|
17
|
+
// no-op for serial runtime
|
|
18
|
+
}
|
|
19
|
+
async runBeforeAllHooks() {
|
|
20
|
+
return await this.worker.runBeforeAllHooks();
|
|
21
|
+
}
|
|
22
|
+
async runTestCases(assembledTestCases) {
|
|
23
|
+
let failing = false;
|
|
13
24
|
for (const item of assembledTestCases) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this.failing = true;
|
|
25
|
+
if (!(await this.worker.runTestCase(item, failing))) {
|
|
26
|
+
failing = true;
|
|
17
27
|
}
|
|
18
28
|
}
|
|
19
|
-
|
|
20
|
-
|
|
29
|
+
return !failing;
|
|
30
|
+
}
|
|
31
|
+
async runAfterAllHooks() {
|
|
32
|
+
return await this.worker.runAfterAllHooks();
|
|
21
33
|
}
|
|
22
34
|
}
|
|
23
35
|
exports.InProcessAdapter = InProcessAdapter;
|
|
24
|
-
//# sourceMappingURL=
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW50aW1lL3NlcmlhbC9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLHNDQUFrQztBQUVsQzs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBQ1YsTUFBTSxDQUFRO0lBRS9CLFlBQ0UsZ0JBQXdCLEVBQ3hCLGdCQUE4QixFQUM5QixLQUF3QixFQUN4QixPQUF1QixFQUN2QixrQkFBc0MsRUFDdEMsY0FBNEM7UUFFNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FDdEIsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsS0FBSyxFQUNMLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsY0FBYyxDQUNmLENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCwyQkFBMkI7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osMkJBQTJCO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUE7SUFDOUMsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsa0JBQW9EO1FBQ3JFLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUNuQixLQUFLLE1BQU0sSUFBSSxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLE9BQU8sQ0FBQTtJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQjtRQUNwQixPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO0lBQzdDLENBQUM7Q0FDRjtBQS9DRCw0Q0ErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ25vZGU6ZXZlbnRzJ1xuaW1wb3J0IHR5cGUgeyBJZEdlbmVyYXRvciB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB0eXBlIHsgQXNzZW1ibGVkVGVzdENhc2UgfSBmcm9tICcuLi8uLi9hc3NlbWJsZSdcbmltcG9ydCB0eXBlIFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXIgZnJvbSAnLi4vLi4vZm9ybWF0dGVyL3N0ZXBfZGVmaW5pdGlvbl9zbmlwcGV0X2J1aWxkZXInXG5pbXBvcnQgdHlwZSB7IFN1cHBvcnRDb2RlTGlicmFyeSB9IGZyb20gJy4uLy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVPcHRpb25zIH0gZnJvbSAnLi4vaW5kZXgnXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBXb3JrZXIgfSBmcm9tICcuLi93b3JrZXInXG5cbi8qKlxuICogQSBzaW1wbGUgYWRhcHRlciB0aGF0IGV4ZWN1dGVzIGFsbCB3b3JrIGluIHNlcmlhbCBvbiB0aGUgbWFpbiB0aHJlYWRcbiAqL1xuZXhwb3J0IGNsYXNzIEluUHJvY2Vzc0FkYXB0ZXIgaW1wbGVtZW50cyBSdW50aW1lQWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2VyOiBXb3JrZXJcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0ZXN0UnVuU3RhcnRlZElkOiBzdHJpbmcsXG4gICAgZXZlbnRCcm9hZGNhc3RlcjogRXZlbnRFbWl0dGVyLFxuICAgIG5ld0lkOiBJZEdlbmVyYXRvci5OZXdJZCxcbiAgICBvcHRpb25zOiBSdW50aW1lT3B0aW9ucyxcbiAgICBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICBzbmlwcGV0QnVpbGRlcjogU3RlcERlZmluaXRpb25TbmlwcGV0QnVpbGRlclxuICApIHtcbiAgICB0aGlzLndvcmtlciA9IG5ldyBXb3JrZXIoXG4gICAgICB0ZXN0UnVuU3RhcnRlZElkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICAgIG5ld0lkLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICAgIHNuaXBwZXRCdWlsZGVyXG4gICAgKVxuICB9XG5cbiAgYXN5bmMgc2V0dXAoKSB7XG4gICAgLy8gbm8tb3AgZm9yIHNlcmlhbCBydW50aW1lXG4gIH1cblxuICBhc3luYyB0ZWFyZG93bigpIHtcbiAgICAvLyBuby1vcCBmb3Igc2VyaWFsIHJ1bnRpbWVcbiAgfVxuXG4gIGFzeW5jIHJ1bkJlZm9yZUFsbEhvb2tzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndvcmtlci5ydW5CZWZvcmVBbGxIb29rcygpXG4gIH1cblxuICBhc3luYyBydW5UZXN0Q2FzZXMoYXNzZW1ibGVkVGVzdENhc2VzOiBSZWFkb25seUFycmF5PEFzc2VtYmxlZFRlc3RDYXNlPikge1xuICAgIGxldCBmYWlsaW5nID0gZmFsc2VcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXNzZW1ibGVkVGVzdENhc2VzKSB7XG4gICAgICBpZiAoIShhd2FpdCB0aGlzLndvcmtlci5ydW5UZXN0Q2FzZShpdGVtLCBmYWlsaW5nKSkpIHtcbiAgICAgICAgZmFpbGluZyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICFmYWlsaW5nXG4gIH1cblxuICBhc3luYyBydW5BZnRlckFsbEhvb2tzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndvcmtlci5ydW5BZnRlckFsbEhvb2tzKClcbiAgfVxufVxuIl19
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { type PickleStep, type TestStepResult } from '@cucumber/messages';
|
|
2
|
+
import type { IDefinition } from '../models/definition';
|
|
3
|
+
import type { ITestCaseHookParameter } from '../support_code_library_builder/types';
|
|
4
4
|
export interface IRunOptions {
|
|
5
5
|
defaultTimeout: number;
|
|
6
6
|
filterStackTraces: boolean;
|
|
7
7
|
hookParameter: ITestCaseHookParameter;
|
|
8
|
-
step:
|
|
8
|
+
step: PickleStep;
|
|
9
9
|
stepDefinition: IDefinition;
|
|
10
10
|
world: any;
|
|
11
11
|
}
|
|
12
12
|
export interface RunStepResult {
|
|
13
|
-
result:
|
|
13
|
+
result: TestStepResult;
|
|
14
14
|
error?: any;
|
|
15
15
|
}
|
|
16
16
|
export declare function run({ defaultTimeout, filterStackTraces, hookParameter, step, stepDefinition, world, }: IRunOptions): Promise<RunStepResult>;
|
|
@@ -1,48 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
6
|
exports.run = run;
|
|
40
|
-
const
|
|
7
|
+
const messages_1 = require("@cucumber/messages");
|
|
41
8
|
const user_code_runner_1 = __importDefault(require("../user_code_runner"));
|
|
42
9
|
const value_checker_1 = require("../value_checker");
|
|
10
|
+
const format_error_1 = require("./format_error");
|
|
43
11
|
const scope_1 = require("./scope");
|
|
44
12
|
const stopwatch_1 = require("./stopwatch");
|
|
45
|
-
const format_error_1 = require("./format_error");
|
|
46
13
|
async function run({ defaultTimeout, filterStackTraces, hookParameter, step, stepDefinition, world, }) {
|
|
47
14
|
const stopwatch = (0, stopwatch_1.create)().start();
|
|
48
15
|
let error, result, invocationData;
|
|
@@ -78,16 +45,16 @@ async function run({ defaultTimeout, filterStackTraces, hookParameter, step, ste
|
|
|
78
45
|
let status;
|
|
79
46
|
let details = {};
|
|
80
47
|
if (result === 'skipped') {
|
|
81
|
-
status =
|
|
48
|
+
status = messages_1.TestStepResultStatus.SKIPPED;
|
|
82
49
|
}
|
|
83
50
|
else if (result === 'pending') {
|
|
84
|
-
status =
|
|
51
|
+
status = messages_1.TestStepResultStatus.PENDING;
|
|
85
52
|
}
|
|
86
53
|
else if ((0, value_checker_1.doesHaveValue)(error)) {
|
|
87
|
-
status =
|
|
54
|
+
status = messages_1.TestStepResultStatus.FAILED;
|
|
88
55
|
}
|
|
89
56
|
else {
|
|
90
|
-
status =
|
|
57
|
+
status = messages_1.TestStepResultStatus.PASSED;
|
|
91
58
|
}
|
|
92
59
|
if ((0, value_checker_1.doesHaveValue)(error)) {
|
|
93
60
|
details = (0, format_error_1.formatError)(error, filterStackTraces);
|
|
@@ -102,4 +69,4 @@ async function run({ defaultTimeout, filterStackTraces, hookParameter, step, ste
|
|
|
102
69
|
};
|
|
103
70
|
}
|
|
104
71
|
exports.default = { run };
|
|
105
|
-
//# sourceMappingURL=
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcF9ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9zdGVwX3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVCQSxrQkFtRUM7QUExRkQsaURBQStGO0FBRy9GLDJFQUFnRDtBQUNoRCxvREFBa0Y7QUFDbEYsaURBQTRDO0FBQzVDLG1DQUE0QztBQUM1QywyQ0FBb0M7QUFnQjdCLEtBQUssVUFBVSxHQUFHLENBQUMsRUFDeEIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsSUFBSSxFQUNKLGNBQWMsRUFDZCxLQUFLLEdBQ087SUFDWixNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFNLEdBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNsQyxJQUFJLEtBQVUsRUFBRSxNQUFXLEVBQUUsY0FBMEMsQ0FBQTtJQUV2RSxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QyxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQUMsdUJBQXVCLENBQUM7Z0JBQzVELGFBQWE7Z0JBQ2IsSUFBSTtnQkFDSixLQUFLO2FBQ04sQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLEtBQUssR0FBRyxHQUFHLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSSxJQUFBLGdDQUFnQixFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFFNUYsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUMxRCwwQkFBYyxDQUFDLEdBQUcsQ0FBQztnQkFDakIsU0FBUyxFQUFFLGNBQWMsQ0FBQyxVQUFVO2dCQUNwQyxFQUFFLEVBQUUsY0FBYyxDQUFDLElBQUk7Z0JBQ3ZCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLHFCQUFxQjthQUN0QixDQUFDLENBQ0gsQ0FBQTtZQUNELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBQ2xCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzVDLElBQUksTUFBNEIsQ0FBQTtJQUNoQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDaEIsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLCtCQUFvQixDQUFDLE9BQU8sQ0FBQTtJQUN2QyxDQUFDO1NBQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxHQUFHLCtCQUFvQixDQUFDLE9BQU8sQ0FBQTtJQUN2QyxDQUFDO1NBQU0sSUFBSSxJQUFBLDZCQUFhLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEdBQUcsK0JBQW9CLENBQUMsTUFBTSxDQUFBO0lBQ3RDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxHQUFHLCtCQUFvQixDQUFDLE1BQU0sQ0FBQTtJQUN0QyxDQUFDO0lBRUQsSUFBSSxJQUFBLDZCQUFhLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLEdBQUcsSUFBQSwwQkFBVyxFQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFO1lBQ04sUUFBUTtZQUNSLE1BQU07WUFDTixHQUFHLE9BQU87U0FDWDtRQUNELEtBQUs7S0FDTixDQUFBO0FBQ0gsQ0FBQztBQUVELGtCQUFlLEVBQUUsR0FBRyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBpY2tsZVN0ZXAsIHR5cGUgVGVzdFN0ZXBSZXN1bHQsIFRlc3RTdGVwUmVzdWx0U3RhdHVzIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBJRGVmaW5pdGlvbiwgSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMvZGVmaW5pdGlvbidcbmltcG9ydCB0eXBlIHsgSVRlc3RDYXNlSG9va1BhcmFtZXRlciB9IGZyb20gJy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgVXNlckNvZGVSdW5uZXIgZnJvbSAnLi4vdXNlcl9jb2RlX3J1bm5lcidcbmltcG9ydCB7IGRvZXNIYXZlVmFsdWUsIGRvZXNOb3RIYXZlVmFsdWUsIHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnLi4vdmFsdWVfY2hlY2tlcidcbmltcG9ydCB7IGZvcm1hdEVycm9yIH0gZnJvbSAnLi9mb3JtYXRfZXJyb3InXG5pbXBvcnQgeyBydW5JblRlc3RDYXNlU2NvcGUgfSBmcm9tICcuL3Njb3BlJ1xuaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAnLi9zdG9wd2F0Y2gnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJ1bk9wdGlvbnMge1xuICBkZWZhdWx0VGltZW91dDogbnVtYmVyXG4gIGZpbHRlclN0YWNrVHJhY2VzOiBib29sZWFuXG4gIGhvb2tQYXJhbWV0ZXI6IElUZXN0Q2FzZUhvb2tQYXJhbWV0ZXJcbiAgc3RlcDogUGlja2xlU3RlcFxuICBzdGVwRGVmaW5pdGlvbjogSURlZmluaXRpb25cbiAgd29ybGQ6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1blN0ZXBSZXN1bHQge1xuICByZXN1bHQ6IFRlc3RTdGVwUmVzdWx0XG4gIGVycm9yPzogYW55XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW4oe1xuICBkZWZhdWx0VGltZW91dCxcbiAgZmlsdGVyU3RhY2tUcmFjZXMsXG4gIGhvb2tQYXJhbWV0ZXIsXG4gIHN0ZXAsXG4gIHN0ZXBEZWZpbml0aW9uLFxuICB3b3JsZCxcbn06IElSdW5PcHRpb25zKTogUHJvbWlzZTxSdW5TdGVwUmVzdWx0PiB7XG4gIGNvbnN0IHN0b3B3YXRjaCA9IGNyZWF0ZSgpLnN0YXJ0KClcbiAgbGV0IGVycm9yOiBhbnksIHJlc3VsdDogYW55LCBpbnZvY2F0aW9uRGF0YTogSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2VcblxuICB0cnkge1xuICAgIGF3YWl0IHJ1bkluVGVzdENhc2VTY29wZSh7IHdvcmxkIH0sIGFzeW5jICgpID0+IHtcbiAgICAgIGludm9jYXRpb25EYXRhID0gYXdhaXQgc3RlcERlZmluaXRpb24uZ2V0SW52b2NhdGlvblBhcmFtZXRlcnMoe1xuICAgICAgICBob29rUGFyYW1ldGVyLFxuICAgICAgICBzdGVwLFxuICAgICAgICB3b3JsZCxcbiAgICAgIH0pXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgZXJyb3IgPSBlcnJcbiAgfVxuXG4gIGlmIChkb2VzTm90SGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIGNvbnN0IHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IHZhbHVlT3JEZWZhdWx0KHN0ZXBEZWZpbml0aW9uLm9wdGlvbnMudGltZW91dCwgZGVmYXVsdFRpbWVvdXQpXG5cbiAgICBpZiAoaW52b2NhdGlvbkRhdGEudmFsaWRDb2RlTGVuZ3Rocy5pbmNsdWRlcyhzdGVwRGVmaW5pdGlvbi5jb2RlLmxlbmd0aCkpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBydW5JblRlc3RDYXNlU2NvcGUoeyB3b3JsZCB9LCBhc3luYyAoKSA9PlxuICAgICAgICBVc2VyQ29kZVJ1bm5lci5ydW4oe1xuICAgICAgICAgIGFyZ3NBcnJheTogaW52b2NhdGlvbkRhdGEucGFyYW1ldGVycyxcbiAgICAgICAgICBmbjogc3RlcERlZmluaXRpb24uY29kZSxcbiAgICAgICAgICB0aGlzQXJnOiB3b3JsZCxcbiAgICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBlcnJvciA9IGRhdGEuZXJyb3JcbiAgICAgIHJlc3VsdCA9IGRhdGEucmVzdWx0XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gaW52b2NhdGlvbkRhdGEuZ2V0SW52YWxpZENvZGVMZW5ndGhNZXNzYWdlKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IHN0b3B3YXRjaC5zdG9wKCkuZHVyYXRpb24oKVxuICBsZXQgc3RhdHVzOiBUZXN0U3RlcFJlc3VsdFN0YXR1c1xuICBsZXQgZGV0YWlscyA9IHt9XG4gIGlmIChyZXN1bHQgPT09ICdza2lwcGVkJykge1xuICAgIHN0YXR1cyA9IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRURcbiAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICdwZW5kaW5nJykge1xuICAgIHN0YXR1cyA9IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBFTkRJTkdcbiAgfSBlbHNlIGlmIChkb2VzSGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIHN0YXR1cyA9IFRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRFxuICB9IGVsc2Uge1xuICAgIHN0YXR1cyA9IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRFxuICB9XG5cbiAgaWYgKGRvZXNIYXZlVmFsdWUoZXJyb3IpKSB7XG4gICAgZGV0YWlscyA9IGZvcm1hdEVycm9yKGVycm9yLCBmaWx0ZXJTdGFja1RyYWNlcylcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVzdWx0OiB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIHN0YXR1cyxcbiAgICAgIC4uLmRldGFpbHMsXG4gICAgfSxcbiAgICBlcnJvcixcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHJ1biB9XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Duration } from '@cucumber/messages';
|
|
1
|
+
import { type Duration } from '@cucumber/messages';
|
|
2
2
|
/**
|
|
3
3
|
* A utility for timing test run operations and returning duration and
|
|
4
4
|
* timestamp objects in messages-compatible formats
|
|
@@ -9,4 +9,4 @@ export interface IStopwatch {
|
|
|
9
9
|
duration: () => Duration;
|
|
10
10
|
}
|
|
11
11
|
export declare const create: (base?: Duration) => IStopwatch;
|
|
12
|
-
export declare const timestamp: () => import("@cucumber/messages").Timestamp;
|
|
12
|
+
export declare const timestamp: () => import("@cucumber/messages", { with: { "resolution-mode": "import" } }).Timestamp;
|
package/lib/runtime/stopwatch.js
CHANGED
|
@@ -32,4 +32,4 @@ const create = (base) => new StopwatchImpl(base);
|
|
|
32
32
|
exports.create = create;
|
|
33
33
|
const timestamp = () => messages_1.TimeConversion.millisecondsSinceEpochToTimestamp(time_1.default.Date.now());
|
|
34
34
|
exports.timestamp = timestamp;
|
|
35
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcHdhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvc3RvcHdhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlEQUFrRTtBQUNsRSxtREFBNkI7QUFZN0IsTUFBTSxhQUFhO0lBR0c7SUFGWixPQUFPLENBQVE7SUFFdkIsWUFBb0IsT0FBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFBekMsU0FBSSxHQUFKLElBQUksQ0FBcUM7SUFBRyxDQUFDO0lBRWpFLEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDeEMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO1FBQ3hCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDbEIsQ0FBQztRQUNELE9BQU8seUJBQWMsQ0FBQyxZQUFZLENBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQ1QseUJBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDaEYsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQUVNLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBZSxFQUFjLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUFqRSxRQUFBLE1BQU0sVUFBMkQ7QUFFdkUsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMseUJBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxjQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFBdEYsUUFBQSxTQUFTLGFBQTZFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEdXJhdGlvbiwgVGltZUNvbnZlcnNpb24gfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgbWV0aG9kcyBmcm9tICcuLi90aW1lJ1xuXG4vKipcbiAqIEEgdXRpbGl0eSBmb3IgdGltaW5nIHRlc3QgcnVuIG9wZXJhdGlvbnMgYW5kIHJldHVybmluZyBkdXJhdGlvbiBhbmRcbiAqIHRpbWVzdGFtcCBvYmplY3RzIGluIG1lc3NhZ2VzLWNvbXBhdGlibGUgZm9ybWF0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElTdG9wd2F0Y2gge1xuICBzdGFydDogKCkgPT4gSVN0b3B3YXRjaFxuICBzdG9wOiAoKSA9PiBJU3RvcHdhdGNoXG4gIGR1cmF0aW9uOiAoKSA9PiBEdXJhdGlvblxufVxuXG5jbGFzcyBTdG9wd2F0Y2hJbXBsIGltcGxlbWVudHMgSVN0b3B3YXRjaCB7XG4gIHByaXZhdGUgc3RhcnRlZDogbnVtYmVyXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYXNlOiBEdXJhdGlvbiA9IHsgc2Vjb25kczogMCwgbmFub3M6IDAgfSkge31cblxuICBzdGFydCgpOiBJU3RvcHdhdGNoIHtcbiAgICB0aGlzLnN0YXJ0ZWQgPSBtZXRob2RzLnBlcmZvcm1hbmNlLm5vdygpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHN0b3AoKTogSVN0b3B3YXRjaCB7XG4gICAgdGhpcy5iYXNlID0gdGhpcy5kdXJhdGlvbigpXG4gICAgdGhpcy5zdGFydGVkID0gdW5kZWZpbmVkXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGR1cmF0aW9uKCk6IER1cmF0aW9uIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuc3RhcnRlZCAhPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmJhc2VcbiAgICB9XG4gICAgcmV0dXJuIFRpbWVDb252ZXJzaW9uLmFkZER1cmF0aW9ucyhcbiAgICAgIHRoaXMuYmFzZSxcbiAgICAgIFRpbWVDb252ZXJzaW9uLm1pbGxpc2Vjb25kc1RvRHVyYXRpb24obWV0aG9kcy5wZXJmb3JtYW5jZS5ub3coKSAtIHRoaXMuc3RhcnRlZClcbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZSA9IChiYXNlPzogRHVyYXRpb24pOiBJU3RvcHdhdGNoID0+IG5ldyBTdG9wd2F0Y2hJbXBsKGJhc2UpXG5cbmV4cG9ydCBjb25zdCB0aW1lc3RhbXAgPSAoKSA9PiBUaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNTaW5jZUVwb2NoVG9UaW1lc3RhbXAobWV0aG9kcy5EYXRlLm5vdygpKVxuIl19
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import { EventEmitter } from 'node:events';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import TestCaseHookDefinition from '../models/test_case_hook_definition';
|
|
7
|
-
import TestStepHookDefinition from '../models/test_step_hook_definition';
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import { RunStepResult } from './step_runner';
|
|
1
|
+
import type { EventEmitter } from 'node:events';
|
|
2
|
+
import { type GherkinDocument, type IdGenerator, type Pickle, type PickleStep, type TestCase, type TestStep, type TestStepResult, TestStepResultStatus } from '@cucumber/messages';
|
|
3
|
+
import type { JsonObject } from 'type-fest';
|
|
4
|
+
import type StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
|
|
5
|
+
import type { IDefinition } from '../models/definition';
|
|
6
|
+
import type TestCaseHookDefinition from '../models/test_case_hook_definition';
|
|
7
|
+
import type TestStepHookDefinition from '../models/test_step_hook_definition';
|
|
8
|
+
import type { ITestCaseHookParameter, SupportCodeLibrary } from '../support_code_library_builder/types';
|
|
9
|
+
import { type RunStepResult } from './step_runner';
|
|
11
10
|
export interface INewTestCaseRunnerOptions {
|
|
12
11
|
workerId?: string;
|
|
13
12
|
eventBroadcaster: EventEmitter;
|
|
14
|
-
gherkinDocument:
|
|
13
|
+
gherkinDocument: GherkinDocument;
|
|
15
14
|
newId: IdGenerator.NewId;
|
|
16
|
-
pickle:
|
|
17
|
-
testCase:
|
|
15
|
+
pickle: Pickle;
|
|
16
|
+
testCase: TestCase;
|
|
18
17
|
retries: number;
|
|
19
18
|
skip: boolean;
|
|
20
19
|
filterStackTraces: boolean;
|
|
@@ -44,14 +43,15 @@ export default class TestCaseRunner {
|
|
|
44
43
|
resetTestProgressData(): void;
|
|
45
44
|
getBeforeStepHookDefinitions(): TestStepHookDefinition[];
|
|
46
45
|
getAfterStepHookDefinitions(): TestStepHookDefinition[];
|
|
47
|
-
getWorstStepResult():
|
|
48
|
-
invokeStep(step:
|
|
46
|
+
getWorstStepResult(): TestStepResult;
|
|
47
|
+
invokeStep(step: PickleStep, stepDefinition: IDefinition, hookParameter?: ITestCaseHookParameter): Promise<RunStepResult>;
|
|
49
48
|
isSkippingSteps(): boolean;
|
|
49
|
+
isExplicitlySkipped(): boolean;
|
|
50
50
|
shouldSkipHook(isBeforeHook: boolean): boolean;
|
|
51
|
-
aroundTestStep(testStepId: string, runStepFn: () => Promise<
|
|
52
|
-
run(): Promise<
|
|
51
|
+
aroundTestStep(testStepId: string, runStepFn: () => Promise<TestStepResult>): Promise<void>;
|
|
52
|
+
run(): Promise<TestStepResultStatus>;
|
|
53
53
|
runAttempt(attempt: number, moreAttemptsRemaining: boolean): Promise<boolean>;
|
|
54
|
-
runHook(hookDefinition: TestCaseHookDefinition, hookParameter: ITestCaseHookParameter, isBeforeHook: boolean): Promise<
|
|
55
|
-
runStepHooks(stepHooks: TestStepHookDefinition[], pickleStep:
|
|
56
|
-
runStep(pickleStep:
|
|
54
|
+
runHook(hookDefinition: TestCaseHookDefinition, hookParameter: ITestCaseHookParameter, isBeforeHook: boolean): Promise<TestStepResult>;
|
|
55
|
+
runStepHooks(stepHooks: TestStepHookDefinition[], pickleStep: PickleStep, stepResult?: RunStepResult): Promise<TestStepResult[]>;
|
|
56
|
+
runStep(pickleStep: PickleStep, testStep: TestStep): Promise<RunStepResult>;
|
|
57
57
|
}
|
|
@@ -1,49 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const messages = __importStar(require("@cucumber/messages"));
|
|
40
6
|
const messages_1 = require("@cucumber/messages");
|
|
41
7
|
const value_checker_1 = require("../value_checker");
|
|
42
|
-
const stopwatch_1 = require("./stopwatch");
|
|
43
|
-
const step_runner_1 = __importDefault(require("./step_runner"));
|
|
44
8
|
const attachment_manager_1 = __importDefault(require("./attachment_manager"));
|
|
45
|
-
const helpers_1 = require("./helpers");
|
|
46
9
|
const make_suggestion_1 = require("./make_suggestion");
|
|
10
|
+
const step_runner_1 = __importDefault(require("./step_runner"));
|
|
11
|
+
const stopwatch_1 = require("./stopwatch");
|
|
47
12
|
class TestCaseRunner {
|
|
48
13
|
workerId;
|
|
49
14
|
attachmentManager;
|
|
@@ -115,10 +80,8 @@ class TestCaseRunner {
|
|
|
115
80
|
getWorstStepResult() {
|
|
116
81
|
if (this.testStepResults.length === 0) {
|
|
117
82
|
return {
|
|
118
|
-
status: this.skip
|
|
119
|
-
|
|
120
|
-
: messages.TestStepResultStatus.PASSED,
|
|
121
|
-
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
83
|
+
status: this.skip ? messages_1.TestStepResultStatus.SKIPPED : messages_1.TestStepResultStatus.PASSED,
|
|
84
|
+
duration: messages_1.TimeConversion.millisecondsToDuration(0),
|
|
122
85
|
};
|
|
123
86
|
}
|
|
124
87
|
return (0, messages_1.getWorstTestStepResult)(this.testStepResults);
|
|
@@ -134,7 +97,10 @@ class TestCaseRunner {
|
|
|
134
97
|
});
|
|
135
98
|
}
|
|
136
99
|
isSkippingSteps() {
|
|
137
|
-
return
|
|
100
|
+
return this.getWorstStepResult().status !== messages_1.TestStepResultStatus.PASSED;
|
|
101
|
+
}
|
|
102
|
+
isExplicitlySkipped() {
|
|
103
|
+
return !this.skip && this.getWorstStepResult().status === messages_1.TestStepResultStatus.SKIPPED;
|
|
138
104
|
}
|
|
139
105
|
shouldSkipHook(isBeforeHook) {
|
|
140
106
|
return this.skip || (this.isSkippingSteps() && isBeforeHook);
|
|
@@ -202,8 +168,8 @@ class TestCaseRunner {
|
|
|
202
168
|
hookParameter.result = this.getWorstStepResult();
|
|
203
169
|
hookParameter.error = error;
|
|
204
170
|
hookParameter.willBeRetried =
|
|
205
|
-
this.getWorstStepResult().status ===
|
|
206
|
-
|
|
171
|
+
this.getWorstStepResult().status === messages_1.TestStepResultStatus.FAILED &&
|
|
172
|
+
moreAttemptsRemaining;
|
|
207
173
|
}
|
|
208
174
|
return await this.runHook(findHookDefinition(testStep.hookId, this.supportCodeLibrary), hookParameter, !didWeRunStepsYet);
|
|
209
175
|
}
|
|
@@ -216,8 +182,7 @@ class TestCaseRunner {
|
|
|
216
182
|
}
|
|
217
183
|
});
|
|
218
184
|
}
|
|
219
|
-
const willBeRetried = this.getWorstStepResult().status ===
|
|
220
|
-
messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
|
|
185
|
+
const willBeRetried = this.getWorstStepResult().status === messages_1.TestStepResultStatus.FAILED && moreAttemptsRemaining;
|
|
221
186
|
const testCaseFinished = {
|
|
222
187
|
testCaseFinished: {
|
|
223
188
|
testCaseStartedId: this.currentTestCaseStartedId,
|
|
@@ -231,8 +196,8 @@ class TestCaseRunner {
|
|
|
231
196
|
async runHook(hookDefinition, hookParameter, isBeforeHook) {
|
|
232
197
|
if (this.shouldSkipHook(isBeforeHook)) {
|
|
233
198
|
return {
|
|
234
|
-
status:
|
|
235
|
-
duration:
|
|
199
|
+
status: messages_1.TestStepResultStatus.SKIPPED,
|
|
200
|
+
duration: messages_1.TimeConversion.millisecondsToDuration(0),
|
|
236
201
|
};
|
|
237
202
|
}
|
|
238
203
|
const { result } = await this.invokeStep(null, hookDefinition, hookParameter);
|
|
@@ -256,6 +221,14 @@ class TestCaseRunner {
|
|
|
256
221
|
return stepHooksResult;
|
|
257
222
|
}
|
|
258
223
|
async runStep(pickleStep, testStep) {
|
|
224
|
+
if (this.isExplicitlySkipped()) {
|
|
225
|
+
return {
|
|
226
|
+
result: {
|
|
227
|
+
status: messages_1.TestStepResultStatus.SKIPPED,
|
|
228
|
+
duration: messages_1.TimeConversion.millisecondsToDuration(0),
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
259
232
|
const stepDefinitions = testStep.stepDefinitionIds.map((stepDefinitionId) => {
|
|
260
233
|
return findStepDefinition(stepDefinitionId, this.supportCodeLibrary);
|
|
261
234
|
});
|
|
@@ -269,33 +242,31 @@ class TestCaseRunner {
|
|
|
269
242
|
});
|
|
270
243
|
return {
|
|
271
244
|
result: {
|
|
272
|
-
status:
|
|
273
|
-
duration:
|
|
245
|
+
status: messages_1.TestStepResultStatus.UNDEFINED,
|
|
246
|
+
duration: messages_1.TimeConversion.millisecondsToDuration(0),
|
|
274
247
|
},
|
|
275
248
|
};
|
|
276
249
|
}
|
|
277
250
|
else if (stepDefinitions.length > 1) {
|
|
278
251
|
return {
|
|
279
252
|
result: {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
253
|
+
status: messages_1.TestStepResultStatus.AMBIGUOUS,
|
|
254
|
+
duration: messages_1.TimeConversion.millisecondsToDuration(0),
|
|
283
255
|
},
|
|
284
256
|
};
|
|
285
257
|
}
|
|
286
258
|
else if (this.isSkippingSteps()) {
|
|
287
259
|
return {
|
|
288
260
|
result: {
|
|
289
|
-
status:
|
|
290
|
-
duration:
|
|
261
|
+
status: messages_1.TestStepResultStatus.SKIPPED,
|
|
262
|
+
duration: messages_1.TimeConversion.millisecondsToDuration(0),
|
|
291
263
|
},
|
|
292
264
|
};
|
|
293
265
|
}
|
|
294
266
|
let stepResult;
|
|
295
267
|
let error;
|
|
296
268
|
let stepResults = await this.runStepHooks(this.getBeforeStepHookDefinitions(), pickleStep);
|
|
297
|
-
if ((0, messages_1.getWorstTestStepResult)(stepResults).status !==
|
|
298
|
-
messages.TestStepResultStatus.FAILED) {
|
|
269
|
+
if ((0, messages_1.getWorstTestStepResult)(stepResults).status !== messages_1.TestStepResultStatus.FAILED) {
|
|
299
270
|
stepResult = await this.invokeStep(pickleStep, stepDefinitions[0]);
|
|
300
271
|
stepResults.push(stepResult.result);
|
|
301
272
|
error = stepResult.error;
|
|
@@ -303,9 +274,9 @@ class TestCaseRunner {
|
|
|
303
274
|
const afterStepHookResults = await this.runStepHooks(this.getAfterStepHookDefinitions(), pickleStep, stepResult);
|
|
304
275
|
stepResults = stepResults.concat(afterStepHookResults);
|
|
305
276
|
const finalStepResult = (0, messages_1.getWorstTestStepResult)(stepResults);
|
|
306
|
-
let finalDuration =
|
|
277
|
+
let finalDuration = messages_1.TimeConversion.millisecondsToDuration(0);
|
|
307
278
|
for (const result of stepResults) {
|
|
308
|
-
finalDuration =
|
|
279
|
+
finalDuration = messages_1.TimeConversion.addDurations(finalDuration, result.duration);
|
|
309
280
|
}
|
|
310
281
|
finalStepResult.duration = finalDuration;
|
|
311
282
|
return {
|
|
@@ -324,4 +295,4 @@ function findHookDefinition(id, supportCodeLibrary) {
|
|
|
324
295
|
function findStepDefinition(id, supportCodeLibrary) {
|
|
325
296
|
return supportCodeLibrary.stepDefinitions.find((definition) => definition.id === id);
|
|
326
297
|
}
|
|
327
|
-
//# sourceMappingURL=test_case_runner.js.map
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jYXNlX3J1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL3Rlc3RfY2FzZV9ydW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxpREFZMkI7QUFhM0Isb0RBQWtFO0FBQ2xFLDhFQUFvRDtBQUNwRCx1REFBa0Q7QUFDbEQsZ0VBQThEO0FBQzlELDJDQUF1QztBQWlCdkMsTUFBcUIsY0FBYztJQUNoQixRQUFRLENBQW9CO0lBQzVCLGlCQUFpQixDQUFtQjtJQUM3Qyx3QkFBd0IsQ0FBUTtJQUNoQyxpQkFBaUIsQ0FBUTtJQUNoQixnQkFBZ0IsQ0FBYztJQUM5QixlQUFlLENBQWlCO0lBQ2hDLEtBQUssQ0FBbUI7SUFDeEIsTUFBTSxDQUFRO0lBQ2QsUUFBUSxDQUFVO0lBQ2xCLFdBQVcsQ0FBUTtJQUNuQixJQUFJLENBQVM7SUFDYixpQkFBaUIsQ0FBUztJQUMxQixrQkFBa0IsQ0FBb0I7SUFDdEMsY0FBYyxDQUE4QjtJQUNyRCxlQUFlLENBQWtCO0lBQ2pDLEtBQUssQ0FBSztJQUNELGVBQWUsQ0FBWTtJQUU1QyxZQUFZLEVBQ1YsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxHQUFHLENBQUMsRUFDWCxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsY0FBYyxHQUNZO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLDRCQUFpQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7WUFDM0UsSUFBSSxJQUFBLGdDQUFnQixFQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0dBQXNHLENBQ3ZHLENBQUE7WUFDSCxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQWE7Z0JBQzNCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsSUFBSTtvQkFDVixlQUFlLEVBQUUsS0FBSyxDQUFDLFFBQVE7b0JBQy9CLFNBQVMsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDNUIsUUFBUTtvQkFDUixpQkFBaUIsRUFBRSxJQUFJLENBQUMsd0JBQXdCO29CQUNoRCxVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtvQkFDbEMsU0FBUyxFQUFFLElBQUEscUJBQVMsR0FBRTtpQkFDdkI7YUFDRixDQUFBO1lBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDcEQsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUE7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUE7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFBO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQTtRQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQTtRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtRQUNwQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtJQUM5QixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1lBQzdDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDbEUsR0FBRyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUM1RCxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzlELFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUMxQixDQUFDLENBQUE7UUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUE7SUFDM0IsQ0FBQztJQUVELDRCQUE0QjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUNyRixjQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUM5QyxDQUFBO0lBQ0gsQ0FBQztJQUVELDJCQUEyQjtRQUN6QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEI7YUFDeEQsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNSLE9BQU8sRUFBRTthQUNULE1BQU0sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzlFLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPO2dCQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywrQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLCtCQUFvQixDQUFDLE1BQU07Z0JBQzlFLFFBQVEsRUFBRSx5QkFBYyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQzthQUNuRCxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBQSxpQ0FBc0IsRUFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsSUFBZ0IsRUFDaEIsY0FBMkIsRUFDM0IsYUFBc0M7UUFFdEMsT0FBTyxNQUFNLHFCQUFVLENBQUMsR0FBRyxDQUFDO1lBQzFCLGNBQWMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYztZQUN0RCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3pDLGFBQWE7WUFDYixJQUFJO1lBQ0osY0FBYztZQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsTUFBTSxLQUFLLCtCQUFvQixDQUFDLE1BQU0sQ0FBQTtJQUN6RSxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE1BQU0sS0FBSywrQkFBb0IsQ0FBQyxPQUFPLENBQUE7SUFDeEYsQ0FBQztJQUVELGNBQWMsQ0FBQyxZQUFxQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksWUFBWSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQ2xCLFVBQWtCLEVBQ2xCLFNBQXdDO1FBRXhDLE1BQU0sZUFBZSxHQUFhO1lBQ2hDLGVBQWUsRUFBRTtnQkFDZixpQkFBaUIsRUFBRSxJQUFJLENBQUMsd0JBQXdCO2dCQUNoRCxVQUFVO2dCQUNWLFNBQVMsRUFBRSxJQUFBLHFCQUFTLEdBQUU7YUFDdkI7U0FDRixDQUFBO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUE7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQTtRQUNuQyxNQUFNLGNBQWMsR0FBRyxNQUFNLFNBQVMsRUFBRSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDekMsTUFBTSxnQkFBZ0IsR0FBYTtZQUNqQyxnQkFBZ0IsRUFBRTtnQkFDaEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtnQkFDaEQsVUFBVTtnQkFDVixjQUFjO2dCQUNkLFNBQVMsRUFBRSxJQUFBLHFCQUFTLEdBQUU7YUFDdkI7U0FDRixDQUFBO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUCxLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzVELE1BQU0scUJBQXFCLEdBQUcsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1lBRTVELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUscUJBQXFCLENBQUMsQ0FBQTtZQUUzRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ25CLE1BQUs7WUFDUCxDQUFDO1lBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDOUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsTUFBTSxDQUFBO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWUsRUFBRSxxQkFBOEI7UUFDOUQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM1QyxNQUFNLGVBQWUsR0FBYTtZQUNoQyxlQUFlLEVBQUU7Z0JBQ2YsT0FBTztnQkFDUCxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM1QixFQUFFLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtnQkFDakMsU0FBUyxFQUFFLElBQUEscUJBQVMsR0FBRTthQUN2QjtTQUNGLENBQUE7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixlQUFlLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQTtRQUN2RCx3REFBd0Q7UUFDeEQsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7UUFDNUIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2pCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDaEQsSUFBSSxJQUFBLDZCQUFhLEVBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ25DLE1BQU0sYUFBYSxHQUEyQjt3QkFDNUMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO3dCQUNyQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ25CLGlCQUFpQixFQUFFLElBQUksQ0FBQyx3QkFBd0I7cUJBQ2pELENBQUE7b0JBQ0QsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO3dCQUNyQixhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO3dCQUNoRCxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTt3QkFDM0IsYUFBYSxDQUFDLGFBQWE7NEJBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE1BQU0sS0FBSywrQkFBb0IsQ0FBQyxNQUFNO2dDQUNoRSxxQkFBcUIsQ0FBQTtvQkFDekIsQ0FBQztvQkFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FDdkIsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFDNUQsYUFBYSxFQUNiLENBQUMsZ0JBQWdCLENBQ2xCLENBQUE7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDdkMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLFlBQVksQ0FDeEQsQ0FBQTtvQkFDRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO29CQUMvRCxnQkFBZ0IsR0FBRyxJQUFJLENBQUE7b0JBQ3ZCLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFBO29CQUM1QixPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUE7Z0JBQzlCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsTUFBTSxLQUFLLCtCQUFvQixDQUFDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQTtRQUMzRixNQUFNLGdCQUFnQixHQUFhO1lBQ2pDLGdCQUFnQixFQUFFO2dCQUNoQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsd0JBQXdCO2dCQUNoRCxTQUFTLEVBQUUsSUFBQSxxQkFBUyxHQUFFO2dCQUN0QixhQUFhO2FBQ2Q7U0FDRixDQUFBO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtRQUV4RCxPQUFPLGFBQWEsQ0FBQTtJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FDWCxjQUFzQyxFQUN0QyxhQUFxQyxFQUNyQyxZQUFxQjtRQUVyQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPO2dCQUNMLE1BQU0sRUFBRSwrQkFBb0IsQ0FBQyxPQUFPO2dCQUNwQyxRQUFRLEVBQUUseUJBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7YUFDbkQsQ0FBQTtRQUNILENBQUM7UUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFDN0UsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FDaEIsU0FBbUMsRUFDbkMsVUFBc0IsRUFDdEIsVUFBMEI7UUFFMUIsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFBO1FBQzFCLE1BQU0sYUFBYSxHQUEyQjtZQUM1QyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFVBQVU7WUFDVixpQkFBaUIsRUFBRSxJQUFJLENBQUMsd0JBQXdCO1lBQ2hELFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ2xDLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTTtZQUMxQixLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUs7U0FDekIsQ0FBQTtRQUNELEtBQUssTUFBTSxrQkFBa0IsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUMzQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQUMsQ0FBQTtZQUNqRixlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzlCLENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFzQixFQUFFLFFBQWtCO1FBQ3RELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztZQUMvQixPQUFPO2dCQUNMLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsK0JBQW9CLENBQUMsT0FBTztvQkFDcEMsUUFBUSxFQUFFLHlCQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO2lCQUNuRDthQUNGLENBQUE7UUFDSCxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDMUUsT0FBTyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUN0RSxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDckMsVUFBVSxFQUFFLElBQUEsZ0NBQWMsRUFBQztvQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7b0JBQ25DLFVBQVU7aUJBQ1gsQ0FBQzthQUNnQixDQUFDLENBQUE7WUFDckIsT0FBTztnQkFDTCxNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLCtCQUFvQixDQUFDLFNBQVM7b0JBQ3RDLFFBQVEsRUFBRSx5QkFBYyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztpQkFDbkQ7YUFDRixDQUFBO1FBQ0gsQ0FBQzthQUFNLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPO2dCQUNMLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsK0JBQW9CLENBQUMsU0FBUztvQkFDdEMsUUFBUSxFQUFFLHlCQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO2lCQUNuRDthQUNGLENBQUE7UUFDSCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUNsQyxPQUFPO2dCQUNMLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsK0JBQW9CLENBQUMsT0FBTztvQkFDcEMsUUFBUSxFQUFFLHlCQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO2lCQUNuRDthQUNGLENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxVQUFlLENBQUE7UUFDbkIsSUFBSSxLQUFVLENBQUE7UUFDZCxJQUFJLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDMUYsSUFBSSxJQUFBLGlDQUFzQixFQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sS0FBSywrQkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvRSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNsRSxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtRQUMxQixDQUFDO1FBQ0QsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQ2xELElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUNsQyxVQUFVLEVBQ1YsVUFBVSxDQUNYLENBQUE7UUFDRCxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBRXRELE1BQU0sZUFBZSxHQUFHLElBQUEsaUNBQXNCLEVBQUMsV0FBVyxDQUFDLENBQUE7UUFDM0QsSUFBSSxhQUFhLEdBQUcseUJBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM1RCxLQUFLLE1BQU0sTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLGFBQWEsR0FBRyx5QkFBYyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzdFLENBQUM7UUFDRCxlQUFlLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQTtRQUN4QyxPQUFPO1lBQ0wsTUFBTSxFQUFFLGVBQWU7WUFDdkIsS0FBSztTQUNOLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFoVkQsaUNBZ1ZDO0FBRUQsU0FBUyxrQkFBa0IsQ0FDekIsRUFBVSxFQUNWLGtCQUFzQztJQUV0QyxPQUFPO1FBQ0wsR0FBRyxrQkFBa0IsQ0FBQyw2QkFBNkI7UUFDbkQsR0FBRyxrQkFBa0IsQ0FBQyw0QkFBNEI7S0FDbkQsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDOUMsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsRUFBVSxFQUFFLGtCQUFzQztJQUM1RSxPQUFPLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnbm9kZTpldmVudHMnXG5pbXBvcnQge1xuICB0eXBlIEVudmVsb3BlLFxuICB0eXBlIEdoZXJraW5Eb2N1bWVudCxcbiAgZ2V0V29yc3RUZXN0U3RlcFJlc3VsdCxcbiAgdHlwZSBJZEdlbmVyYXRvcixcbiAgdHlwZSBQaWNrbGUsXG4gIHR5cGUgUGlja2xlU3RlcCxcbiAgdHlwZSBUZXN0Q2FzZSxcbiAgdHlwZSBUZXN0U3RlcCxcbiAgdHlwZSBUZXN0U3RlcFJlc3VsdCxcbiAgVGVzdFN0ZXBSZXN1bHRTdGF0dXMsXG4gIFRpbWVDb252ZXJzaW9uLFxufSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IEpzb25PYmplY3QgfSBmcm9tICd0eXBlLWZlc3QnXG5pbXBvcnQgdHlwZSBTdGVwRGVmaW5pdGlvblNuaXBwZXRCdWlsZGVyIGZyb20gJy4uL2Zvcm1hdHRlci9zdGVwX2RlZmluaXRpb25fc25pcHBldF9idWlsZGVyJ1xuaW1wb3J0IHR5cGUgeyBJRGVmaW5pdGlvbiB9IGZyb20gJy4uL21vZGVscy9kZWZpbml0aW9uJ1xuaW1wb3J0IHR5cGUgU3RlcERlZmluaXRpb24gZnJvbSAnLi4vbW9kZWxzL3N0ZXBfZGVmaW5pdGlvbidcbmltcG9ydCB0eXBlIFRlc3RDYXNlSG9va0RlZmluaXRpb24gZnJvbSAnLi4vbW9kZWxzL3Rlc3RfY2FzZV9ob29rX2RlZmluaXRpb24nXG5pbXBvcnQgdHlwZSBUZXN0U3RlcEhvb2tEZWZpbml0aW9uIGZyb20gJy4uL21vZGVscy90ZXN0X3N0ZXBfaG9va19kZWZpbml0aW9uJ1xuaW1wb3J0IHR5cGUge1xuICBJVGVzdENhc2VIb29rUGFyYW1ldGVyLFxuICBJVGVzdFN0ZXBIb29rUGFyYW1ldGVyLFxuICBTdXBwb3J0Q29kZUxpYnJhcnksXG59IGZyb20gJy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IElXb3JsZE9wdGlvbnMgfSBmcm9tICcuLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3dvcmxkJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSwgZG9lc05vdEhhdmVWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgQXR0YWNobWVudE1hbmFnZXIgZnJvbSAnLi9hdHRhY2htZW50X21hbmFnZXInXG5pbXBvcnQgeyBtYWtlU3VnZ2VzdGlvbiB9IGZyb20gJy4vbWFrZV9zdWdnZXN0aW9uJ1xuaW1wb3J0IFN0ZXBSdW5uZXIsIHsgdHlwZSBSdW5TdGVwUmVzdWx0IH0gZnJvbSAnLi9zdGVwX3J1bm5lcidcbmltcG9ydCB7IHRpbWVzdGFtcCB9IGZyb20gJy4vc3RvcHdhdGNoJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElOZXdUZXN0Q2FzZVJ1bm5lck9wdGlvbnMge1xuICB3b3JrZXJJZD86IHN0cmluZ1xuICBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXJcbiAgZ2hlcmtpbkRvY3VtZW50OiBHaGVya2luRG9jdW1lbnRcbiAgbmV3SWQ6IElkR2VuZXJhdG9yLk5ld0lkXG4gIHBpY2tsZTogUGlja2xlXG4gIHRlc3RDYXNlOiBUZXN0Q2FzZVxuICByZXRyaWVzOiBudW1iZXJcbiAgc2tpcDogYm9vbGVhblxuICBmaWx0ZXJTdGFja1RyYWNlczogYm9vbGVhblxuICBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeVxuICB3b3JsZFBhcmFtZXRlcnM6IEpzb25PYmplY3RcbiAgc25pcHBldEJ1aWxkZXI6IFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXJcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdENhc2VSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtlcklkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSByZWFkb25seSBhdHRhY2htZW50TWFuYWdlcjogQXR0YWNobWVudE1hbmFnZXJcbiAgcHJpdmF0ZSBjdXJyZW50VGVzdENhc2VTdGFydGVkSWQ6IHN0cmluZ1xuICBwcml2YXRlIGN1cnJlbnRUZXN0U3RlcElkOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXJcbiAgcHJpdmF0ZSByZWFkb25seSBnaGVya2luRG9jdW1lbnQ6IEdoZXJraW5Eb2N1bWVudFxuICBwcml2YXRlIHJlYWRvbmx5IG5ld0lkOiBJZEdlbmVyYXRvci5OZXdJZFxuICBwcml2YXRlIHJlYWRvbmx5IHBpY2tsZTogUGlja2xlXG4gIHByaXZhdGUgcmVhZG9ubHkgdGVzdENhc2U6IFRlc3RDYXNlXG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4QXR0ZW1wdHM6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IHNraXA6IGJvb2xlYW5cbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTdGFja1RyYWNlczogYm9vbGVhblxuICBwcml2YXRlIHJlYWRvbmx5IHN1cHBvcnRDb2RlTGlicmFyeTogU3VwcG9ydENvZGVMaWJyYXJ5XG4gIHByaXZhdGUgcmVhZG9ubHkgc25pcHBldEJ1aWxkZXI6IFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXJcbiAgcHJpdmF0ZSB0ZXN0U3RlcFJlc3VsdHM6IFRlc3RTdGVwUmVzdWx0W11cbiAgcHJpdmF0ZSB3b3JsZDogYW55XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ybGRQYXJhbWV0ZXJzOiBKc29uT2JqZWN0XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIHdvcmtlcklkLFxuICAgIGV2ZW50QnJvYWRjYXN0ZXIsXG4gICAgZ2hlcmtpbkRvY3VtZW50LFxuICAgIG5ld0lkLFxuICAgIHBpY2tsZSxcbiAgICB0ZXN0Q2FzZSxcbiAgICByZXRyaWVzID0gMCxcbiAgICBza2lwLFxuICAgIGZpbHRlclN0YWNrVHJhY2VzLFxuICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICB3b3JsZFBhcmFtZXRlcnMsXG4gICAgc25pcHBldEJ1aWxkZXIsXG4gIH06IElOZXdUZXN0Q2FzZVJ1bm5lck9wdGlvbnMpIHtcbiAgICB0aGlzLndvcmtlcklkID0gd29ya2VySWRcbiAgICB0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyID0gbmV3IEF0dGFjaG1lbnRNYW5hZ2VyKCh7IGRhdGEsIG1lZGlhLCBmaWxlTmFtZSB9KSA9PiB7XG4gICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZSh0aGlzLmN1cnJlbnRUZXN0U3RlcElkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ0Nhbm5vdCBhdHRhY2ggd2hlbiBhIHN0ZXAvaG9vayBpcyBub3QgcnVubmluZy4gRW5zdXJlIHlvdXIgc3RlcC9ob29rIHdhaXRzIGZvciB0aGUgYXR0YWNoIHRvIGZpbmlzaC4nXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dGFjaG1lbnQ6IEVudmVsb3BlID0ge1xuICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgICBjb250ZW50RW5jb2Rpbmc6IG1lZGlhLmVuY29kaW5nLFxuICAgICAgICAgIG1lZGlhVHlwZTogbWVkaWEuY29udGVudFR5cGUsXG4gICAgICAgICAgZmlsZU5hbWUsXG4gICAgICAgICAgdGVzdENhc2VTdGFydGVkSWQ6IHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkLFxuICAgICAgICAgIHRlc3RTdGVwSWQ6IHRoaXMuY3VycmVudFRlc3RTdGVwSWQsXG4gICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXAoKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICAgIHRoaXMuZXZlbnRCcm9hZGNhc3Rlci5lbWl0KCdlbnZlbG9wZScsIGF0dGFjaG1lbnQpXG4gICAgfSlcbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIgPSBldmVudEJyb2FkY2FzdGVyXG4gICAgdGhpcy5naGVya2luRG9jdW1lbnQgPSBnaGVya2luRG9jdW1lbnRcbiAgICB0aGlzLm1heEF0dGVtcHRzID0gMSArIChza2lwID8gMCA6IHJldHJpZXMpXG4gICAgdGhpcy5uZXdJZCA9IG5ld0lkXG4gICAgdGhpcy5waWNrbGUgPSBwaWNrbGVcbiAgICB0aGlzLnRlc3RDYXNlID0gdGVzdENhc2VcbiAgICB0aGlzLnNraXAgPSBza2lwXG4gICAgdGhpcy5maWx0ZXJTdGFja1RyYWNlcyA9IGZpbHRlclN0YWNrVHJhY2VzXG4gICAgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkgPSBzdXBwb3J0Q29kZUxpYnJhcnlcbiAgICB0aGlzLndvcmxkUGFyYW1ldGVycyA9IHdvcmxkUGFyYW1ldGVyc1xuICAgIHRoaXMuc25pcHBldEJ1aWxkZXIgPSBzbmlwcGV0QnVpbGRlclxuICAgIHRoaXMucmVzZXRUZXN0UHJvZ3Jlc3NEYXRhKClcbiAgfVxuXG4gIHJlc2V0VGVzdFByb2dyZXNzRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLndvcmxkID0gbmV3IHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LldvcmxkKHtcbiAgICAgIGF0dGFjaDogdGhpcy5hdHRhY2htZW50TWFuYWdlci5jcmVhdGUuYmluZCh0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyKSxcbiAgICAgIGxvZzogdGhpcy5hdHRhY2htZW50TWFuYWdlci5sb2cuYmluZCh0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyKSxcbiAgICAgIGxpbms6IHRoaXMuYXR0YWNobWVudE1hbmFnZXIubGluay5iaW5kKHRoaXMuYXR0YWNobWVudE1hbmFnZXIpLFxuICAgICAgcGFyYW1ldGVyczogc3RydWN0dXJlZENsb25lKHRoaXMud29ybGRQYXJhbWV0ZXJzKSxcbiAgICB9IHNhdGlzZmllcyBJV29ybGRPcHRpb25zKVxuICAgIHRoaXMudGVzdFN0ZXBSZXN1bHRzID0gW11cbiAgfVxuXG4gIGdldEJlZm9yZVN0ZXBIb29rRGVmaW5pdGlvbnMoKTogVGVzdFN0ZXBIb29rRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkuYmVmb3JlVGVzdFN0ZXBIb29rRGVmaW5pdGlvbnMuZmlsdGVyKChob29rRGVmaW5pdGlvbikgPT5cbiAgICAgIGhvb2tEZWZpbml0aW9uLmFwcGxpZXNUb1Rlc3RDYXNlKHRoaXMucGlja2xlKVxuICAgIClcbiAgfVxuXG4gIGdldEFmdGVyU3RlcEhvb2tEZWZpbml0aW9ucygpOiBUZXN0U3RlcEhvb2tEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5hZnRlclRlc3RTdGVwSG9va0RlZmluaXRpb25zXG4gICAgICAuc2xpY2UoMClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5maWx0ZXIoKGhvb2tEZWZpbml0aW9uKSA9PiBob29rRGVmaW5pdGlvbi5hcHBsaWVzVG9UZXN0Q2FzZSh0aGlzLnBpY2tsZSkpXG4gIH1cblxuICBnZXRXb3JzdFN0ZXBSZXN1bHQoKTogVGVzdFN0ZXBSZXN1bHQge1xuICAgIGlmICh0aGlzLnRlc3RTdGVwUmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogdGhpcy5za2lwID8gVGVzdFN0ZXBSZXN1bHRTdGF0dXMuU0tJUFBFRCA6IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRCxcbiAgICAgICAgZHVyYXRpb246IFRpbWVDb252ZXJzaW9uLm1pbGxpc2Vjb25kc1RvRHVyYXRpb24oMCksXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBnZXRXb3JzdFRlc3RTdGVwUmVzdWx0KHRoaXMudGVzdFN0ZXBSZXN1bHRzKVxuICB9XG5cbiAgYXN5bmMgaW52b2tlU3RlcChcbiAgICBzdGVwOiBQaWNrbGVTdGVwLFxuICAgIHN0ZXBEZWZpbml0aW9uOiBJRGVmaW5pdGlvbixcbiAgICBob29rUGFyYW1ldGVyPzogSVRlc3RDYXNlSG9va1BhcmFtZXRlclxuICApOiBQcm9taXNlPFJ1blN0ZXBSZXN1bHQ+IHtcbiAgICByZXR1cm4gYXdhaXQgU3RlcFJ1bm5lci5ydW4oe1xuICAgICAgZGVmYXVsdFRpbWVvdXQ6IHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LmRlZmF1bHRUaW1lb3V0LFxuICAgICAgZmlsdGVyU3RhY2tUcmFjZXM6IHRoaXMuZmlsdGVyU3RhY2tUcmFjZXMsXG4gICAgICBob29rUGFyYW1ldGVyLFxuICAgICAgc3RlcCxcbiAgICAgIHN0ZXBEZWZpbml0aW9uLFxuICAgICAgd29ybGQ6IHRoaXMud29ybGQsXG4gICAgfSlcbiAgfVxuXG4gIGlzU2tpcHBpbmdTdGVwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRXb3JzdFN0ZXBSZXN1bHQoKS5zdGF0dXMgIT09IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRFxuICB9XG5cbiAgaXNFeHBsaWNpdGx5U2tpcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2tpcCAmJiB0aGlzLmdldFdvcnN0U3RlcFJlc3VsdCgpLnN0YXR1cyA9PT0gVGVzdFN0ZXBSZXN1bHRTdGF0dXMuU0tJUFBFRFxuICB9XG5cbiAgc2hvdWxkU2tpcEhvb2soaXNCZWZvcmVIb29rOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2tpcCB8fCAodGhpcy5pc1NraXBwaW5nU3RlcHMoKSAmJiBpc0JlZm9yZUhvb2spXG4gIH1cblxuICBhc3luYyBhcm91bmRUZXN0U3RlcChcbiAgICB0ZXN0U3RlcElkOiBzdHJpbmcsXG4gICAgcnVuU3RlcEZuOiAoKSA9PiBQcm9taXNlPFRlc3RTdGVwUmVzdWx0PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0ZXN0U3RlcFN0YXJ0ZWQ6IEVudmVsb3BlID0ge1xuICAgICAgdGVzdFN0ZXBTdGFydGVkOiB7XG4gICAgICAgIHRlc3RDYXNlU3RhcnRlZElkOiB0aGlzLmN1cnJlbnRUZXN0Q2FzZVN0YXJ0ZWRJZCxcbiAgICAgICAgdGVzdFN0ZXBJZCxcbiAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXAoKSxcbiAgICAgIH0sXG4gICAgfVxuICAgIHRoaXMuZXZlbnRCcm9hZGNhc3Rlci5lbWl0KCdlbnZlbG9wZScsIHRlc3RTdGVwU3RhcnRlZClcbiAgICB0aGlzLmN1cnJlbnRUZXN0U3RlcElkID0gdGVzdFN0ZXBJZFxuICAgIGNvbnN0IHRlc3RTdGVwUmVzdWx0ID0gYXdhaXQgcnVuU3RlcEZuKClcbiAgICB0aGlzLmN1cnJlbnRUZXN0U3RlcElkID0gbnVsbFxuICAgIHRoaXMudGVzdFN0ZXBSZXN1bHRzLnB1c2godGVzdFN0ZXBSZXN1bHQpXG4gICAgY29uc3QgdGVzdFN0ZXBGaW5pc2hlZDogRW52ZWxvcGUgPSB7XG4gICAgICB0ZXN0U3RlcEZpbmlzaGVkOiB7XG4gICAgICAgIHRlc3RDYXNlU3RhcnRlZElkOiB0aGlzLmN1cnJlbnRUZXN0Q2FzZVN0YXJ0ZWRJZCxcbiAgICAgICAgdGVzdFN0ZXBJZCxcbiAgICAgICAgdGVzdFN0ZXBSZXN1bHQsXG4gICAgICAgIHRpbWVzdGFtcDogdGltZXN0YW1wKCksXG4gICAgICB9LFxuICAgIH1cbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIuZW1pdCgnZW52ZWxvcGUnLCB0ZXN0U3RlcEZpbmlzaGVkKVxuICB9XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8VGVzdFN0ZXBSZXN1bHRTdGF0dXM+IHtcbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgYXR0ZW1wdCA8IHRoaXMubWF4QXR0ZW1wdHM7IGF0dGVtcHQrKykge1xuICAgICAgY29uc3QgbW9yZUF0dGVtcHRzUmVtYWluaW5nID0gYXR0ZW1wdCArIDEgPCB0aGlzLm1heEF0dGVtcHRzXG5cbiAgICAgIGNvbnN0IHdpbGxCZVJldHJpZWQgPSBhd2FpdCB0aGlzLnJ1bkF0dGVtcHQoYXR0ZW1wdCwgbW9yZUF0dGVtcHRzUmVtYWluaW5nKVxuXG4gICAgICBpZiAoIXdpbGxCZVJldHJpZWQpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVzZXRUZXN0UHJvZ3Jlc3NEYXRhKClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0V29yc3RTdGVwUmVzdWx0KCkuc3RhdHVzXG4gIH1cblxuICBhc3luYyBydW5BdHRlbXB0KGF0dGVtcHQ6IG51bWJlciwgbW9yZUF0dGVtcHRzUmVtYWluaW5nOiBib29sZWFuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQgPSB0aGlzLm5ld0lkKClcbiAgICBjb25zdCB0ZXN0Q2FzZVN0YXJ0ZWQ6IEVudmVsb3BlID0ge1xuICAgICAgdGVzdENhc2VTdGFydGVkOiB7XG4gICAgICAgIGF0dGVtcHQsXG4gICAgICAgIHRlc3RDYXNlSWQ6IHRoaXMudGVzdENhc2UuaWQsXG4gICAgICAgIGlkOiB0aGlzLmN1cnJlbnRUZXN0Q2FzZVN0YXJ0ZWRJZCxcbiAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXAoKSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmICh0aGlzLndvcmtlcklkKSB7XG4gICAgICB0ZXN0Q2FzZVN0YXJ0ZWQudGVzdENhc2VTdGFydGVkLndvcmtlcklkID0gdGhpcy53b3JrZXJJZFxuICAgIH1cbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIuZW1pdCgnZW52ZWxvcGUnLCB0ZXN0Q2FzZVN0YXJ0ZWQpXG4gICAgLy8gdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBhIGhvb2sgaXMgYSBCZWZvcmUgb3IgQWZ0ZXJcbiAgICBsZXQgZGlkV2VSdW5TdGVwc1lldCA9IGZhbHNlXG4gICAgbGV0IGVycm9yID0gZmFsc2VcbiAgICBmb3IgKGNvbnN0IHRlc3RTdGVwIG9mIHRoaXMudGVzdENhc2UudGVzdFN0ZXBzKSB7XG4gICAgICBhd2FpdCB0aGlzLmFyb3VuZFRlc3RTdGVwKHRlc3RTdGVwLmlkLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChkb2VzSGF2ZVZhbHVlKHRlc3RTdGVwLmhvb2tJZCkpIHtcbiAgICAgICAgICBjb25zdCBob29rUGFyYW1ldGVyOiBJVGVzdENhc2VIb29rUGFyYW1ldGVyID0ge1xuICAgICAgICAgICAgZ2hlcmtpbkRvY3VtZW50OiB0aGlzLmdoZXJraW5Eb2N1bWVudCxcbiAgICAgICAgICAgIHBpY2tsZTogdGhpcy5waWNrbGUsXG4gICAgICAgICAgICB0ZXN0Q2FzZVN0YXJ0ZWRJZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkaWRXZVJ1blN0ZXBzWWV0KSB7XG4gICAgICAgICAgICBob29rUGFyYW1ldGVyLnJlc3VsdCA9IHRoaXMuZ2V0V29yc3RTdGVwUmVzdWx0KClcbiAgICAgICAgICAgIGhvb2tQYXJhbWV0ZXIuZXJyb3IgPSBlcnJvclxuICAgICAgICAgICAgaG9va1BhcmFtZXRlci53aWxsQmVSZXRyaWVkID1cbiAgICAgICAgICAgICAgdGhpcy5nZXRXb3JzdFN0ZXBSZXN1bHQoKS5zdGF0dXMgPT09IFRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRCAmJlxuICAgICAgICAgICAgICBtb3JlQXR0ZW1wdHNSZW1haW5pbmdcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucnVuSG9vayhcbiAgICAgICAgICAgIGZpbmRIb29rRGVmaW5pdGlvbih0ZXN0U3RlcC5ob29rSWQsIHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5KSxcbiAgICAgICAgICAgIGhvb2tQYXJhbWV0ZXIsXG4gICAgICAgICAgICAhZGlkV2VSdW5TdGVwc1lldFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBwaWNrbGVTdGVwID0gdGhpcy5waWNrbGUuc3RlcHMuZmluZChcbiAgICAgICAgICAgIChwaWNrbGVTdGVwKSA9PiBwaWNrbGVTdGVwLmlkID09PSB0ZXN0U3RlcC5waWNrbGVTdGVwSWRcbiAgICAgICAgICApXG4gICAgICAgICAgY29uc3QgdGVzdFN0ZXBSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1blN0ZXAocGlja2xlU3RlcCwgdGVzdFN0ZXApXG4gICAgICAgICAgZGlkV2VSdW5TdGVwc1lldCA9IHRydWVcbiAgICAgICAgICBlcnJvciA9IHRlc3RTdGVwUmVzdWx0LmVycm9yXG4gICAgICAgICAgcmV0dXJuIHRlc3RTdGVwUmVzdWx0LnJlc3VsdFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHdpbGxCZVJldHJpZWQgPVxuICAgICAgdGhpcy5nZXRXb3JzdFN0ZXBSZXN1bHQoKS5zdGF0dXMgPT09IFRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRCAmJiBtb3JlQXR0ZW1wdHNSZW1haW5pbmdcbiAgICBjb25zdCB0ZXN0Q2FzZUZpbmlzaGVkOiBFbnZlbG9wZSA9IHtcbiAgICAgIHRlc3RDYXNlRmluaXNoZWQ6IHtcbiAgICAgICAgdGVzdENhc2VTdGFydGVkSWQ6IHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkLFxuICAgICAgICB0aW1lc3RhbXA6IHRpbWVzdGFtcCgpLFxuICAgICAgICB3aWxsQmVSZXRyaWVkLFxuICAgICAgfSxcbiAgICB9XG4gICAgdGhpcy5ldmVudEJyb2FkY2FzdGVyLmVtaXQoJ2VudmVsb3BlJywgdGVzdENhc2VGaW5pc2hlZClcblxuICAgIHJldHVybiB3aWxsQmVSZXRyaWVkXG4gIH1cblxuICBhc3luYyBydW5Ib29rKFxuICAgIGhvb2tEZWZpbml0aW9uOiBUZXN0Q2FzZUhvb2tEZWZpbml0aW9uLFxuICAgIGhvb2tQYXJhbWV0ZXI6IElUZXN0Q2FzZUhvb2tQYXJhbWV0ZXIsXG4gICAgaXNCZWZvcmVIb29rOiBib29sZWFuXG4gICk6IFByb21pc2U8VGVzdFN0ZXBSZXN1bHQ+IHtcbiAgICBpZiAodGhpcy5zaG91bGRTa2lwSG9vayhpc0JlZm9yZUhvb2spKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRUQsXG4gICAgICAgIGR1cmF0aW9uOiBUaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7IHJlc3VsdCB9ID0gYXdhaXQgdGhpcy5pbnZva2VTdGVwKG51bGwsIGhvb2tEZWZpbml0aW9uLCBob29rUGFyYW1ldGVyKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGFzeW5jIHJ1blN0ZXBIb29rcyhcbiAgICBzdGVwSG9va3M6IFRlc3RTdGVwSG9va0RlZmluaXRpb25bXSxcbiAgICBwaWNrbGVTdGVwOiBQaWNrbGVTdGVwLFxuICAgIHN0ZXBSZXN1bHQ/OiBSdW5TdGVwUmVzdWx0XG4gICk6IFByb21pc2U8VGVzdFN0ZXBSZXN1bHRbXT4ge1xuICAgIGNvbnN0IHN0ZXBIb29rc1Jlc3VsdCA9IFtdXG4gICAgY29uc3QgaG9va1BhcmFtZXRlcjogSVRlc3RTdGVwSG9va1BhcmFtZXRlciA9IHtcbiAgICAgIGdoZXJraW5Eb2N1bWVudDogdGhpcy5naGVya2luRG9jdW1lbnQsXG4gICAgICBwaWNrbGU6IHRoaXMucGlja2xlLFxuICAgICAgcGlja2xlU3RlcCxcbiAgICAgIHRlc3RDYXNlU3RhcnRlZElkOiB0aGlzLmN1cnJlbnRUZXN0Q2FzZVN0YXJ0ZWRJZCxcbiAgICAgIHRlc3RTdGVwSWQ6IHRoaXMuY3VycmVudFRlc3RTdGVwSWQsXG4gICAgICByZXN1bHQ6IHN0ZXBSZXN1bHQ/LnJlc3VsdCxcbiAgICAgIGVycm9yOiBzdGVwUmVzdWx0Py5lcnJvcixcbiAgICB9XG4gICAgZm9yIChjb25zdCBzdGVwSG9va0RlZmluaXRpb24gb2Ygc3RlcEhvb2tzKSB7XG4gICAgICBjb25zdCB7IHJlc3VsdCB9ID0gYXdhaXQgdGhpcy5pbnZva2VTdGVwKG51bGwsIHN0ZXBIb29rRGVmaW5pdGlvbiwgaG9va1BhcmFtZXRlcilcbiAgICAgIHN0ZXBIb29rc1Jlc3VsdC5wdXNoKHJlc3VsdClcbiAgICB9XG4gICAgcmV0dXJuIHN0ZXBIb29rc1Jlc3VsdFxuICB9XG5cbiAgYXN5bmMgcnVuU3RlcChwaWNrbGVTdGVwOiBQaWNrbGVTdGVwLCB0ZXN0U3RlcDogVGVzdFN0ZXApOiBQcm9taXNlPFJ1blN0ZXBSZXN1bHQ+IHtcbiAgICBpZiAodGhpcy5pc0V4cGxpY2l0bHlTa2lwcGVkKCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgIHN0YXR1czogVGVzdFN0ZXBSZXN1bHRTdGF0dXMuU0tJUFBFRCxcbiAgICAgICAgICBkdXJhdGlvbjogVGltZUNvbnZlcnNpb24ubWlsbGlzZWNvbmRzVG9EdXJhdGlvbigwKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc3RlcERlZmluaXRpb25zID0gdGVzdFN0ZXAuc3RlcERlZmluaXRpb25JZHMubWFwKChzdGVwRGVmaW5pdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gZmluZFN0ZXBEZWZpbml0aW9uKHN0ZXBEZWZpbml0aW9uSWQsIHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5KVxuICAgIH0pXG4gICAgaWYgKHN0ZXBEZWZpbml0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXZlbnRCcm9hZGNhc3Rlci5lbWl0KCdlbnZlbG9wZScsIHtcbiAgICAgICAgc3VnZ2VzdGlvbjogbWFrZVN1Z2dlc3Rpb24oe1xuICAgICAgICAgIG5ld0lkOiB0aGlzLm5ld0lkLFxuICAgICAgICAgIHNuaXBwZXRCdWlsZGVyOiB0aGlzLnNuaXBwZXRCdWlsZGVyLFxuICAgICAgICAgIHBpY2tsZVN0ZXAsXG4gICAgICAgIH0pLFxuICAgICAgfSBzYXRpc2ZpZXMgRW52ZWxvcGUpXG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICBzdGF0dXM6IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlVOREVGSU5FRCxcbiAgICAgICAgICBkdXJhdGlvbjogVGltZUNvbnZlcnNpb24ubWlsbGlzZWNvbmRzVG9EdXJhdGlvbigwKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0ZXBEZWZpbml0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICBzdGF0dXM6IFRlc3RTdGVwUmVzdWx0U3RhdHVzLkFNQklHVU9VUyxcbiAgICAgICAgICBkdXJhdGlvbjogVGltZUNvbnZlcnNpb24ubWlsbGlzZWNvbmRzVG9EdXJhdGlvbigwKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNTa2lwcGluZ1N0ZXBzKCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgIHN0YXR1czogVGVzdFN0ZXBSZXN1bHRTdGF0dXMuU0tJUFBFRCxcbiAgICAgICAgICBkdXJhdGlvbjogVGltZUNvbnZlcnNpb24ubWlsbGlzZWNvbmRzVG9EdXJhdGlvbigwKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgc3RlcFJlc3VsdDogYW55XG4gICAgbGV0IGVycm9yOiBhbnlcbiAgICBsZXQgc3RlcFJlc3VsdHMgPSBhd2FpdCB0aGlzLnJ1blN0ZXBIb29rcyh0aGlzLmdldEJlZm9yZVN0ZXBIb29rRGVmaW5pdGlvbnMoKSwgcGlja2xlU3RlcClcbiAgICBpZiAoZ2V0V29yc3RUZXN0U3RlcFJlc3VsdChzdGVwUmVzdWx0cykuc3RhdHVzICE9PSBUZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQpIHtcbiAgICAgIHN0ZXBSZXN1bHQgPSBhd2FpdCB0aGlzLmludm9rZVN0ZXAocGlja2xlU3RlcCwgc3RlcERlZmluaXRpb25zWzBdKVxuICAgICAgc3RlcFJlc3VsdHMucHVzaChzdGVwUmVzdWx0LnJlc3VsdClcbiAgICAgIGVycm9yID0gc3RlcFJlc3VsdC5lcnJvclxuICAgIH1cbiAgICBjb25zdCBhZnRlclN0ZXBIb29rUmVzdWx0cyA9IGF3YWl0IHRoaXMucnVuU3RlcEhvb2tzKFxuICAgICAgdGhpcy5nZXRBZnRlclN0ZXBIb29rRGVmaW5pdGlvbnMoKSxcbiAgICAgIHBpY2tsZVN0ZXAsXG4gICAgICBzdGVwUmVzdWx0XG4gICAgKVxuICAgIHN0ZXBSZXN1bHRzID0gc3RlcFJlc3VsdHMuY29uY2F0KGFmdGVyU3RlcEhvb2tSZXN1bHRzKVxuXG4gICAgY29uc3QgZmluYWxTdGVwUmVzdWx0ID0gZ2V0V29yc3RUZXN0U3RlcFJlc3VsdChzdGVwUmVzdWx0cylcbiAgICBsZXQgZmluYWxEdXJhdGlvbiA9IFRpbWVDb252ZXJzaW9uLm1pbGxpc2Vjb25kc1RvRHVyYXRpb24oMClcbiAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiBzdGVwUmVzdWx0cykge1xuICAgICAgZmluYWxEdXJhdGlvbiA9IFRpbWVDb252ZXJzaW9uLmFkZER1cmF0aW9ucyhmaW5hbER1cmF0aW9uLCByZXN1bHQuZHVyYXRpb24pXG4gICAgfVxuICAgIGZpbmFsU3RlcFJlc3VsdC5kdXJhdGlvbiA9IGZpbmFsRHVyYXRpb25cbiAgICByZXR1cm4ge1xuICAgICAgcmVzdWx0OiBmaW5hbFN0ZXBSZXN1bHQsXG4gICAgICBlcnJvcixcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEhvb2tEZWZpbml0aW9uKFxuICBpZDogc3RyaW5nLFxuICBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeVxuKTogVGVzdENhc2VIb29rRGVmaW5pdGlvbiB7XG4gIHJldHVybiBbXG4gICAgLi4uc3VwcG9ydENvZGVMaWJyYXJ5LmJlZm9yZVRlc3RDYXNlSG9va0RlZmluaXRpb25zLFxuICAgIC4uLnN1cHBvcnRDb2RlTGlicmFyeS5hZnRlclRlc3RDYXNlSG9va0RlZmluaXRpb25zLFxuICBdLmZpbmQoKGRlZmluaXRpb24pID0+IGRlZmluaXRpb24uaWQgPT09IGlkKVxufVxuXG5mdW5jdGlvbiBmaW5kU3RlcERlZmluaXRpb24oaWQ6IHN0cmluZywgc3VwcG9ydENvZGVMaWJyYXJ5OiBTdXBwb3J0Q29kZUxpYnJhcnkpOiBTdGVwRGVmaW5pdGlvbiB7XG4gIHJldHVybiBzdXBwb3J0Q29kZUxpYnJhcnkuc3RlcERlZmluaXRpb25zLmZpbmQoKGRlZmluaXRpb24pID0+IGRlZmluaXRpb24uaWQgPT09IGlkKVxufVxuIl19
|
package/lib/runtime/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Exception } from '@cucumber/messages';
|
|
2
|
+
import type { JsonObject } from 'type-fest';
|
|
3
|
+
import type { AssembledTestCase } from '../assemble';
|
|
3
4
|
export interface RuntimeOptions {
|
|
4
5
|
dryRun: boolean;
|
|
5
6
|
failFast: boolean;
|
|
@@ -9,9 +10,17 @@ export interface RuntimeOptions {
|
|
|
9
10
|
strict: boolean;
|
|
10
11
|
worldParameters: JsonObject;
|
|
11
12
|
}
|
|
13
|
+
export interface RuntimeResult {
|
|
14
|
+
success: boolean;
|
|
15
|
+
exception?: Exception;
|
|
16
|
+
}
|
|
12
17
|
export interface Runtime {
|
|
13
|
-
run: () => Promise<
|
|
18
|
+
run: () => Promise<RuntimeResult>;
|
|
14
19
|
}
|
|
15
20
|
export interface RuntimeAdapter {
|
|
16
|
-
|
|
21
|
+
setup(): Promise<void>;
|
|
22
|
+
runBeforeAllHooks(): Promise<boolean>;
|
|
23
|
+
runTestCases(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
|
|
24
|
+
runAfterAllHooks(): Promise<boolean>;
|
|
25
|
+
teardown(): Promise<void>;
|
|
17
26
|
}
|
package/lib/runtime/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeGNlcHRpb24gfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IEpzb25PYmplY3QgfSBmcm9tICd0eXBlLWZlc3QnXG5pbXBvcnQgdHlwZSB7IEFzc2VtYmxlZFRlc3RDYXNlIH0gZnJvbSAnLi4vYXNzZW1ibGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZU9wdGlvbnMge1xuICBkcnlSdW46IGJvb2xlYW5cbiAgZmFpbEZhc3Q6IGJvb2xlYW5cbiAgZmlsdGVyU3RhY2t0cmFjZXM6IGJvb2xlYW5cbiAgcmV0cnk6IG51bWJlclxuICByZXRyeVRhZ0ZpbHRlcjogc3RyaW5nXG4gIHN0cmljdDogYm9vbGVhblxuICB3b3JsZFBhcmFtZXRlcnM6IEpzb25PYmplY3Rcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lUmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhblxuICBleGNlcHRpb24/OiBFeGNlcHRpb25cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lIHtcbiAgcnVuOiAoKSA9PiBQcm9taXNlPFJ1bnRpbWVSZXN1bHQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZUFkYXB0ZXIge1xuICBzZXR1cCgpOiBQcm9taXNlPHZvaWQ+XG4gIHJ1bkJlZm9yZUFsbEhvb2tzKCk6IFByb21pc2U8Ym9vbGVhbj5cbiAgcnVuVGVzdENhc2VzKGFzc2VtYmxlZFRlc3RDYXNlczogUmVhZG9ubHlBcnJheTxBc3NlbWJsZWRUZXN0Q2FzZT4pOiBQcm9taXNlPGJvb2xlYW4+XG4gIHJ1bkFmdGVyQWxsSG9va3MoKTogUHJvbWlzZTxib29sZWFuPlxuICB0ZWFyZG93bigpOiBQcm9taXNlPHZvaWQ+XG59XG4iXX0=
|