@cucumber/cucumber 12.9.0 → 13.0.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 +13 -28
- 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 +17 -1
- 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/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 +7 -6
- 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 +3 -5
- 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 +2 -2
- package/lib/formatter/helpers/event_data_collector.js +4 -6
- 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 +1 -1
- 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 +5 -5
- 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 +2 -2
- package/lib/formatter/helpers/pickle_parser.js +8 -9
- package/lib/formatter/helpers/step_argument_formatter.d.ts +1 -1
- package/lib/formatter/helpers/step_argument_formatter.js +1 -1
- package/lib/formatter/helpers/summary_helpers.d.ts +2 -2
- package/lib/formatter/helpers/summary_helpers.js +8 -4
- package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +4 -4
- package/lib/formatter/helpers/test_case_attempt_formatter.js +5 -5
- package/lib/formatter/helpers/test_case_attempt_parser.d.ts +4 -4
- package/lib/formatter/helpers/test_case_attempt_parser.js +4 -9
- package/lib/formatter/helpers/usage_helpers/index.d.ts +3 -3
- package/lib/formatter/helpers/usage_helpers/index.js +5 -6
- 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 +2 -2
- package/lib/formatter/json_formatter.js +9 -14
- package/lib/formatter/progress_formatter.d.ts +4 -1
- package/lib/formatter/progress_formatter.js +4 -1
- package/lib/formatter/rerun_formatter.d.ts +1 -1
- package/lib/formatter/rerun_formatter.js +2 -2
- 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 +2 -2
- package/lib/formatter/step_definition_snippet_builder/index.d.ts +4 -4
- 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 +6 -3
- package/lib/formatter/summary_formatter.js +6 -3
- package/lib/formatter/usage_formatter.d.ts +1 -1
- package/lib/formatter/usage_formatter.js +4 -4
- package/lib/formatter/usage_json_formatter.d.ts +1 -1
- package/lib/formatter/usage_json_formatter.js +3 -3
- package/lib/index.d.ts +6 -11
- package/lib/index.js +13 -20
- package/lib/models/data_table.d.ts +1 -1
- package/lib/models/data_table.js +9 -5
- package/lib/models/definition.d.ts +4 -4
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +1 -1
- package/lib/runtime/attachment_manager/index.js +3 -6
- package/lib/runtime/coordinator.d.ts +13 -6
- package/lib/runtime/coordinator.js +26 -18
- package/lib/runtime/format_error.d.ts +1 -1
- package/lib/runtime/format_error.js +43 -15
- package/lib/runtime/helpers.d.ts +2 -2
- package/lib/runtime/helpers.js +2 -2
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/make_runtime.d.ts +10 -9
- package/lib/runtime/make_runtime.js +4 -5
- package/lib/runtime/make_suggestion.d.ts +2 -2
- package/lib/runtime/make_suggestion.js +1 -1
- package/lib/runtime/parallel/adapter.d.ts +27 -39
- package/lib/runtime/parallel/adapter.js +124 -122
- 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 +2 -2
- package/lib/runtime/step_runner.js +2 -2
- package/lib/runtime/stopwatch.d.ts +1 -1
- package/lib/runtime/stopwatch.js +1 -1
- package/lib/runtime/test_case_runner.d.ts +10 -9
- package/lib/runtime/test_case_runner.js +20 -12
- package/lib/runtime/types.d.ts +7 -3
- 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 +1 -1
- 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 -7
- 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 +8 -8
- 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.js +2 -2
- 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 +2 -2
- package/lib/wrapper.mjs +1 -5
- package/package.json +40 -63
- 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
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import { register } from 'node:module';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import { workerData } from 'node:worker_threads';
|
|
5
|
+
import { IdGenerator } from '@cucumber/messages';
|
|
6
|
+
import FormatterBuilder from '../../formatter/builder.js';
|
|
7
|
+
import supportCodeLibraryBuilder from '../../support_code_library_builder/index.js';
|
|
8
|
+
import tryRequire from '../../try_require.js';
|
|
9
|
+
import { Worker } from '../worker.js';
|
|
10
|
+
const { cwd, testRunStartedId, supportCodeCoordinates, supportCodeIds, options, snippetOptions, port, } = workerData;
|
|
11
|
+
const newId = IdGenerator.uuid();
|
|
12
|
+
supportCodeLibraryBuilder.default.reset(cwd, newId, supportCodeCoordinates);
|
|
13
|
+
supportCodeCoordinates.requireModules.map((module) => tryRequire.default(module));
|
|
14
|
+
supportCodeCoordinates.requirePaths.map((module) => tryRequire.default(module));
|
|
15
|
+
for (const specifier of supportCodeCoordinates.loaders) {
|
|
16
|
+
register(specifier, pathToFileURL('./'));
|
|
17
|
+
}
|
|
18
|
+
for (const path of supportCodeCoordinates.importPaths) {
|
|
19
|
+
await import(pathToFileURL(path).toString());
|
|
20
|
+
}
|
|
21
|
+
const supportCodeLibrary = supportCodeLibraryBuilder.default.finalize(supportCodeIds);
|
|
22
|
+
const snippetBuilder = await FormatterBuilder.default.getStepDefinitionSnippetBuilder({
|
|
23
|
+
cwd,
|
|
24
|
+
snippetInterface: snippetOptions.snippetInterface,
|
|
25
|
+
snippetSyntax: snippetOptions.snippetSyntax,
|
|
26
|
+
supportCodeLibrary,
|
|
27
|
+
});
|
|
28
|
+
const eventBroadcaster = new EventEmitter();
|
|
29
|
+
eventBroadcaster.on('envelope', (envelope) => port.postMessage({
|
|
30
|
+
type: 'ENVELOPE',
|
|
31
|
+
envelope,
|
|
32
|
+
}));
|
|
33
|
+
const worker = new Worker(testRunStartedId, process.env.CUCUMBER_WORKER_ID, eventBroadcaster, IdGenerator.uuid(), options, supportCodeLibrary, snippetBuilder);
|
|
34
|
+
port.on('message', (command) => {
|
|
35
|
+
switch (command.type) {
|
|
36
|
+
case 'BEFOREALL_HOOKS':
|
|
37
|
+
worker.runBeforeAllHooks().then((success) => {
|
|
38
|
+
port.postMessage({
|
|
39
|
+
type: 'FINISHED',
|
|
40
|
+
success,
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
break;
|
|
44
|
+
case 'TEST_CASE':
|
|
45
|
+
worker.runTestCase(command.assembledTestCase, command.failing).then((success) => {
|
|
46
|
+
port.postMessage({
|
|
47
|
+
type: 'FINISHED',
|
|
48
|
+
success,
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
break;
|
|
52
|
+
case 'AFTERALL_HOOKS':
|
|
53
|
+
worker.runAfterAllHooks().then((success) => {
|
|
54
|
+
port.postMessage({
|
|
55
|
+
type: 'FINISHED',
|
|
56
|
+
success,
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
port.postMessage({
|
|
63
|
+
type: 'READY',
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW50aW1lL3BhcmFsbGVsL3dvcmtlci5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ2hELE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDL0QsT0FBTyxnQkFBZ0IsTUFBTSw0QkFBNEIsQ0FBQTtBQUN6RCxPQUFPLHlCQUF5QixNQUFNLDZDQUE2QyxDQUFBO0FBQ25GLE9BQU8sVUFBVSxNQUFNLHNCQUFzQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFHckMsTUFBTSxFQUNKLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCxPQUFPLEVBQ1AsY0FBYyxFQUNkLElBQUksR0FDTCxHQUFHLFVBQXdCLENBQUE7QUFDNUIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFBO0FBRWhDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxDQUFBO0FBQzNFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtBQUNqRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7QUFDL0UsS0FBSyxNQUFNLFNBQVMsSUFBSSxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2RCxRQUFRLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzFDLENBQUM7QUFDRCxLQUFLLE1BQU0sSUFBSSxJQUFJLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RELE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFDRCxNQUFNLGtCQUFrQixHQUFHLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUE7QUFDckYsTUFBTSxjQUFjLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUM7SUFDcEYsR0FBRztJQUNILGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxnQkFBZ0I7SUFDakQsYUFBYSxFQUFFLGNBQWMsQ0FBQyxhQUFhO0lBQzNDLGtCQUFrQjtDQUNuQixDQUFDLENBQUE7QUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7QUFDM0MsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRSxDQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ2YsSUFBSSxFQUFFLFVBQVU7SUFDaEIsUUFBUTtDQUNhLENBQUMsQ0FDekIsQ0FBQTtBQUVELE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUN2QixnQkFBZ0IsRUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFDOUIsZ0JBQWdCLEVBQ2hCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFDbEIsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixjQUFjLENBQ2YsQ0FBQTtBQUVELElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBc0IsRUFBRSxFQUFFO0lBQzVDLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLEtBQUssaUJBQWlCO1lBQ3BCLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDO29CQUNmLElBQUksRUFBRSxVQUFVO29CQUNoQixPQUFPO2lCQUNjLENBQUMsQ0FBQTtZQUMxQixDQUFDLENBQUMsQ0FBQTtZQUNGLE1BQUs7UUFDUCxLQUFLLFdBQVc7WUFDZCxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzlFLElBQUksQ0FBQyxXQUFXLENBQUM7b0JBQ2YsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLE9BQU87aUJBQ2MsQ0FBQyxDQUFBO1lBQzFCLENBQUMsQ0FBQyxDQUFBO1lBQ0YsTUFBSztRQUNQLEtBQUssZ0JBQWdCO1lBQ25CLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDO29CQUNmLElBQUksRUFBRSxVQUFVO29CQUNoQixPQUFPO2lCQUNjLENBQUMsQ0FBQTtZQUMxQixDQUFDLENBQUMsQ0FBQTtZQUNGLE1BQUs7SUFDVCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRixJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ2YsSUFBSSxFQUFFLE9BQU87Q0FDUSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdub2RlOmV2ZW50cydcbmltcG9ydCB7IHJlZ2lzdGVyIH0gZnJvbSAnbm9kZTptb2R1bGUnXG5pbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSAnbm9kZTp1cmwnXG5pbXBvcnQgeyB3b3JrZXJEYXRhIH0gZnJvbSAnbm9kZTp3b3JrZXJfdGhyZWFkcydcbmltcG9ydCB7IHR5cGUgRW52ZWxvcGUsIElkR2VuZXJhdG9yIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IEZvcm1hdHRlckJ1aWxkZXIgZnJvbSAnLi4vLi4vZm9ybWF0dGVyL2J1aWxkZXIuanMnXG5pbXBvcnQgc3VwcG9ydENvZGVMaWJyYXJ5QnVpbGRlciBmcm9tICcuLi8uLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL2luZGV4LmpzJ1xuaW1wb3J0IHRyeVJlcXVpcmUgZnJvbSAnLi4vLi4vdHJ5X3JlcXVpcmUuanMnXG5pbXBvcnQgeyBXb3JrZXIgfSBmcm9tICcuLi93b3JrZXIuanMnXG5pbXBvcnQgdHlwZSB7IFdvcmtlckNvbW1hbmQsIFdvcmtlckRhdGEsIFdvcmtlckV2ZW50IH0gZnJvbSAnLi90eXBlcy5qcydcblxuY29uc3Qge1xuICBjd2QsXG4gIHRlc3RSdW5TdGFydGVkSWQsXG4gIHN1cHBvcnRDb2RlQ29vcmRpbmF0ZXMsXG4gIHN1cHBvcnRDb2RlSWRzLFxuICBvcHRpb25zLFxuICBzbmlwcGV0T3B0aW9ucyxcbiAgcG9ydCxcbn0gPSB3b3JrZXJEYXRhIGFzIFdvcmtlckRhdGFcbmNvbnN0IG5ld0lkID0gSWRHZW5lcmF0b3IudXVpZCgpXG5cbnN1cHBvcnRDb2RlTGlicmFyeUJ1aWxkZXIuZGVmYXVsdC5yZXNldChjd2QsIG5ld0lkLCBzdXBwb3J0Q29kZUNvb3JkaW5hdGVzKVxuc3VwcG9ydENvZGVDb29yZGluYXRlcy5yZXF1aXJlTW9kdWxlcy5tYXAoKG1vZHVsZSkgPT4gdHJ5UmVxdWlyZS5kZWZhdWx0KG1vZHVsZSkpXG5zdXBwb3J0Q29kZUNvb3JkaW5hdGVzLnJlcXVpcmVQYXRocy5tYXAoKG1vZHVsZSkgPT4gdHJ5UmVxdWlyZS5kZWZhdWx0KG1vZHVsZSkpXG5mb3IgKGNvbnN0IHNwZWNpZmllciBvZiBzdXBwb3J0Q29kZUNvb3JkaW5hdGVzLmxvYWRlcnMpIHtcbiAgcmVnaXN0ZXIoc3BlY2lmaWVyLCBwYXRoVG9GaWxlVVJMKCcuLycpKVxufVxuZm9yIChjb25zdCBwYXRoIG9mIHN1cHBvcnRDb2RlQ29vcmRpbmF0ZXMuaW1wb3J0UGF0aHMpIHtcbiAgYXdhaXQgaW1wb3J0KHBhdGhUb0ZpbGVVUkwocGF0aCkudG9TdHJpbmcoKSlcbn1cbmNvbnN0IHN1cHBvcnRDb2RlTGlicmFyeSA9IHN1cHBvcnRDb2RlTGlicmFyeUJ1aWxkZXIuZGVmYXVsdC5maW5hbGl6ZShzdXBwb3J0Q29kZUlkcylcbmNvbnN0IHNuaXBwZXRCdWlsZGVyID0gYXdhaXQgRm9ybWF0dGVyQnVpbGRlci5kZWZhdWx0LmdldFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXIoe1xuICBjd2QsXG4gIHNuaXBwZXRJbnRlcmZhY2U6IHNuaXBwZXRPcHRpb25zLnNuaXBwZXRJbnRlcmZhY2UsXG4gIHNuaXBwZXRTeW50YXg6IHNuaXBwZXRPcHRpb25zLnNuaXBwZXRTeW50YXgsXG4gIHN1cHBvcnRDb2RlTGlicmFyeSxcbn0pXG5cbmNvbnN0IGV2ZW50QnJvYWRjYXN0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKClcbmV2ZW50QnJvYWRjYXN0ZXIub24oJ2VudmVsb3BlJywgKGVudmVsb3BlOiBFbnZlbG9wZSkgPT5cbiAgcG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgdHlwZTogJ0VOVkVMT1BFJyxcbiAgICBlbnZlbG9wZSxcbiAgfSBzYXRpc2ZpZXMgV29ya2VyRXZlbnQpXG4pXG5cbmNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIoXG4gIHRlc3RSdW5TdGFydGVkSWQsXG4gIHByb2Nlc3MuZW52LkNVQ1VNQkVSX1dPUktFUl9JRCxcbiAgZXZlbnRCcm9hZGNhc3RlcixcbiAgSWRHZW5lcmF0b3IudXVpZCgpLFxuICBvcHRpb25zLFxuICBzdXBwb3J0Q29kZUxpYnJhcnksXG4gIHNuaXBwZXRCdWlsZGVyXG4pXG5cbnBvcnQub24oJ21lc3NhZ2UnLCAoY29tbWFuZDogV29ya2VyQ29tbWFuZCkgPT4ge1xuICBzd2l0Y2ggKGNvbW1hbmQudHlwZSkge1xuICAgIGNhc2UgJ0JFRk9SRUFMTF9IT09LUyc6XG4gICAgICB3b3JrZXIucnVuQmVmb3JlQWxsSG9va3MoKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgIHBvcnQucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgIHR5cGU6ICdGSU5JU0hFRCcsXG4gICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgfSBzYXRpc2ZpZXMgV29ya2VyRXZlbnQpXG4gICAgICB9KVxuICAgICAgYnJlYWtcbiAgICBjYXNlICdURVNUX0NBU0UnOlxuICAgICAgd29ya2VyLnJ1blRlc3RDYXNlKGNvbW1hbmQuYXNzZW1ibGVkVGVzdENhc2UsIGNvbW1hbmQuZmFpbGluZykudGhlbigoc3VjY2VzcykgPT4ge1xuICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICB0eXBlOiAnRklOSVNIRUQnLFxuICAgICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgIH0gc2F0aXNmaWVzIFdvcmtlckV2ZW50KVxuICAgICAgfSlcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnQUZURVJBTExfSE9PS1MnOlxuICAgICAgd29ya2VyLnJ1bkFmdGVyQWxsSG9va3MoKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgIHBvcnQucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgIHR5cGU6ICdGSU5JU0hFRCcsXG4gICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgfSBzYXRpc2ZpZXMgV29ya2VyRXZlbnQpXG4gICAgICB9KVxuICAgICAgYnJlYWtcbiAgfVxufSlcblxucG9ydC5wb3N0TWVzc2FnZSh7XG4gIHR5cGU6ICdSRUFEWScsXG59IHNhdGlzZmllcyBXb3JrZXJFdmVudClcbiJdfQ==
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
import * as messages from '@cucumber/messages';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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;
|
|
@@ -40,9 +40,9 @@ exports.run = run;
|
|
|
40
40
|
const messages = __importStar(require("@cucumber/messages"));
|
|
41
41
|
const user_code_runner_1 = __importDefault(require("../user_code_runner"));
|
|
42
42
|
const value_checker_1 = require("../value_checker");
|
|
43
|
+
const format_error_1 = require("./format_error");
|
|
43
44
|
const scope_1 = require("./scope");
|
|
44
45
|
const stopwatch_1 = require("./stopwatch");
|
|
45
|
-
const format_error_1 = require("./format_error");
|
|
46
46
|
async function run({ defaultTimeout, filterStackTraces, hookParameter, step, stepDefinition, world, }) {
|
|
47
47
|
const stopwatch = (0, stopwatch_1.create)().start();
|
|
48
48
|
let error, result, invocationData;
|
|
@@ -102,4 +102,4 @@ async function run({ defaultTimeout, filterStackTraces, hookParameter, step, ste
|
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
104
|
exports.default = { run };
|
|
105
|
-
//# sourceMappingURL=
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcF9ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9zdGVwX3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxrQkFtRUM7QUExRkQsNkRBQThDO0FBRzlDLDJFQUFnRDtBQUNoRCxvREFBa0Y7QUFDbEYsaURBQTRDO0FBQzVDLG1DQUE0QztBQUM1QywyQ0FBb0M7QUFnQjdCLEtBQUssVUFBVSxHQUFHLENBQUMsRUFDeEIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsSUFBSSxFQUNKLGNBQWMsRUFDZCxLQUFLLEdBQ087SUFDWixNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFNLEdBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNsQyxJQUFJLEtBQVUsRUFBRSxNQUFXLEVBQUUsY0FBMEMsQ0FBQTtJQUV2RSxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QyxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQUMsdUJBQXVCLENBQUM7Z0JBQzVELGFBQWE7Z0JBQ2IsSUFBSTtnQkFDSixLQUFLO2FBQ04sQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLEtBQUssR0FBRyxHQUFHLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSSxJQUFBLGdDQUFnQixFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFFNUYsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUMxRCwwQkFBYyxDQUFDLEdBQUcsQ0FBQztnQkFDakIsU0FBUyxFQUFFLGNBQWMsQ0FBQyxVQUFVO2dCQUNwQyxFQUFFLEVBQUUsY0FBYyxDQUFDLElBQUk7Z0JBQ3ZCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLHFCQUFxQjthQUN0QixDQUFDLENBQ0gsQ0FBQTtZQUNELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBQ2xCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzVDLElBQUksTUFBcUMsQ0FBQTtJQUN6QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDaEIsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUE7SUFDaEQsQ0FBQztTQUFNLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFBO0lBQ2hELENBQUM7U0FBTSxJQUFJLElBQUEsNkJBQWEsRUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFBO0lBQy9DLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUE7SUFDL0MsQ0FBQztJQUVELElBQUksSUFBQSw2QkFBYSxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxHQUFHLElBQUEsMEJBQVcsRUFBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLFFBQVE7WUFDUixNQUFNO1lBQ04sR0FBRyxPQUFPO1NBQ1g7UUFDRCxLQUFLO0tBQ04sQ0FBQTtBQUNILENBQUM7QUFFRCxrQkFBZSxFQUFFLEdBQUcsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbWVzc2FnZXMgZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBJRGVmaW5pdGlvbiwgSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMvZGVmaW5pdGlvbidcbmltcG9ydCB0eXBlIHsgSVRlc3RDYXNlSG9va1BhcmFtZXRlciB9IGZyb20gJy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgVXNlckNvZGVSdW5uZXIgZnJvbSAnLi4vdXNlcl9jb2RlX3J1bm5lcidcbmltcG9ydCB7IGRvZXNIYXZlVmFsdWUsIGRvZXNOb3RIYXZlVmFsdWUsIHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnLi4vdmFsdWVfY2hlY2tlcidcbmltcG9ydCB7IGZvcm1hdEVycm9yIH0gZnJvbSAnLi9mb3JtYXRfZXJyb3InXG5pbXBvcnQgeyBydW5JblRlc3RDYXNlU2NvcGUgfSBmcm9tICcuL3Njb3BlJ1xuaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAnLi9zdG9wd2F0Y2gnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJ1bk9wdGlvbnMge1xuICBkZWZhdWx0VGltZW91dDogbnVtYmVyXG4gIGZpbHRlclN0YWNrVHJhY2VzOiBib29sZWFuXG4gIGhvb2tQYXJhbWV0ZXI6IElUZXN0Q2FzZUhvb2tQYXJhbWV0ZXJcbiAgc3RlcDogbWVzc2FnZXMuUGlja2xlU3RlcFxuICBzdGVwRGVmaW5pdGlvbjogSURlZmluaXRpb25cbiAgd29ybGQ6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1blN0ZXBSZXN1bHQge1xuICByZXN1bHQ6IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0XG4gIGVycm9yPzogYW55XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW4oe1xuICBkZWZhdWx0VGltZW91dCxcbiAgZmlsdGVyU3RhY2tUcmFjZXMsXG4gIGhvb2tQYXJhbWV0ZXIsXG4gIHN0ZXAsXG4gIHN0ZXBEZWZpbml0aW9uLFxuICB3b3JsZCxcbn06IElSdW5PcHRpb25zKTogUHJvbWlzZTxSdW5TdGVwUmVzdWx0PiB7XG4gIGNvbnN0IHN0b3B3YXRjaCA9IGNyZWF0ZSgpLnN0YXJ0KClcbiAgbGV0IGVycm9yOiBhbnksIHJlc3VsdDogYW55LCBpbnZvY2F0aW9uRGF0YTogSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2VcblxuICB0cnkge1xuICAgIGF3YWl0IHJ1bkluVGVzdENhc2VTY29wZSh7IHdvcmxkIH0sIGFzeW5jICgpID0+IHtcbiAgICAgIGludm9jYXRpb25EYXRhID0gYXdhaXQgc3RlcERlZmluaXRpb24uZ2V0SW52b2NhdGlvblBhcmFtZXRlcnMoe1xuICAgICAgICBob29rUGFyYW1ldGVyLFxuICAgICAgICBzdGVwLFxuICAgICAgICB3b3JsZCxcbiAgICAgIH0pXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgZXJyb3IgPSBlcnJcbiAgfVxuXG4gIGlmIChkb2VzTm90SGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIGNvbnN0IHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IHZhbHVlT3JEZWZhdWx0KHN0ZXBEZWZpbml0aW9uLm9wdGlvbnMudGltZW91dCwgZGVmYXVsdFRpbWVvdXQpXG5cbiAgICBpZiAoaW52b2NhdGlvbkRhdGEudmFsaWRDb2RlTGVuZ3Rocy5pbmNsdWRlcyhzdGVwRGVmaW5pdGlvbi5jb2RlLmxlbmd0aCkpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBydW5JblRlc3RDYXNlU2NvcGUoeyB3b3JsZCB9LCBhc3luYyAoKSA9PlxuICAgICAgICBVc2VyQ29kZVJ1bm5lci5ydW4oe1xuICAgICAgICAgIGFyZ3NBcnJheTogaW52b2NhdGlvbkRhdGEucGFyYW1ldGVycyxcbiAgICAgICAgICBmbjogc3RlcERlZmluaXRpb24uY29kZSxcbiAgICAgICAgICB0aGlzQXJnOiB3b3JsZCxcbiAgICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBlcnJvciA9IGRhdGEuZXJyb3JcbiAgICAgIHJlc3VsdCA9IGRhdGEucmVzdWx0XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gaW52b2NhdGlvbkRhdGEuZ2V0SW52YWxpZENvZGVMZW5ndGhNZXNzYWdlKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IHN0b3B3YXRjaC5zdG9wKCkuZHVyYXRpb24oKVxuICBsZXQgc3RhdHVzOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1c1xuICBsZXQgZGV0YWlscyA9IHt9XG4gIGlmIChyZXN1bHQgPT09ICdza2lwcGVkJykge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRURcbiAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICdwZW5kaW5nJykge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlBFTkRJTkdcbiAgfSBlbHNlIGlmIChkb2VzSGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRFxuICB9IGVsc2Uge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRFxuICB9XG5cbiAgaWYgKGRvZXNIYXZlVmFsdWUoZXJyb3IpKSB7XG4gICAgZGV0YWlscyA9IGZvcm1hdEVycm9yKGVycm9yLCBmaWx0ZXJTdGFja1RyYWNlcylcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVzdWx0OiB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIHN0YXR1cyxcbiAgICAgIC4uLmRldGFpbHMsXG4gICAgfSxcbiAgICBlcnJvcixcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHJ1biB9XG4iXX0=
|
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,13 +1,13 @@
|
|
|
1
|
-
import { EventEmitter } from 'node:events';
|
|
1
|
+
import type { EventEmitter } from 'node:events';
|
|
2
2
|
import * as messages from '@cucumber/messages';
|
|
3
|
-
import { IdGenerator } from '@cucumber/messages';
|
|
4
|
-
import { JsonObject } from 'type-fest';
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import { RunStepResult } from './step_runner';
|
|
3
|
+
import { type IdGenerator } from '@cucumber/messages';
|
|
4
|
+
import type { JsonObject } from 'type-fest';
|
|
5
|
+
import type StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
|
|
6
|
+
import type { IDefinition } from '../models/definition';
|
|
7
|
+
import type TestCaseHookDefinition from '../models/test_case_hook_definition';
|
|
8
|
+
import type TestStepHookDefinition from '../models/test_step_hook_definition';
|
|
9
|
+
import type { ITestCaseHookParameter, SupportCodeLibrary } from '../support_code_library_builder/types';
|
|
10
|
+
import { type RunStepResult } from './step_runner';
|
|
11
11
|
export interface INewTestCaseRunnerOptions {
|
|
12
12
|
workerId?: string;
|
|
13
13
|
eventBroadcaster: EventEmitter;
|
|
@@ -47,6 +47,7 @@ export default class TestCaseRunner {
|
|
|
47
47
|
getWorstStepResult(): messages.TestStepResult;
|
|
48
48
|
invokeStep(step: messages.PickleStep, stepDefinition: IDefinition, hookParameter?: ITestCaseHookParameter): Promise<RunStepResult>;
|
|
49
49
|
isSkippingSteps(): boolean;
|
|
50
|
+
isExplicitlySkipped(): boolean;
|
|
50
51
|
shouldSkipHook(isBeforeHook: boolean): boolean;
|
|
51
52
|
aroundTestStep(testStepId: string, runStepFn: () => Promise<messages.TestStepResult>): Promise<void>;
|
|
52
53
|
run(): Promise<messages.TestStepResultStatus>;
|
|
@@ -39,11 +39,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
const messages = __importStar(require("@cucumber/messages"));
|
|
40
40
|
const messages_1 = require("@cucumber/messages");
|
|
41
41
|
const value_checker_1 = require("../value_checker");
|
|
42
|
-
const stopwatch_1 = require("./stopwatch");
|
|
43
|
-
const step_runner_1 = __importDefault(require("./step_runner"));
|
|
44
42
|
const attachment_manager_1 = __importDefault(require("./attachment_manager"));
|
|
45
|
-
const helpers_1 = require("./helpers");
|
|
46
43
|
const make_suggestion_1 = require("./make_suggestion");
|
|
44
|
+
const step_runner_1 = __importDefault(require("./step_runner"));
|
|
45
|
+
const stopwatch_1 = require("./stopwatch");
|
|
47
46
|
class TestCaseRunner {
|
|
48
47
|
workerId;
|
|
49
48
|
attachmentManager;
|
|
@@ -134,7 +133,10 @@ class TestCaseRunner {
|
|
|
134
133
|
});
|
|
135
134
|
}
|
|
136
135
|
isSkippingSteps() {
|
|
137
|
-
return
|
|
136
|
+
return this.getWorstStepResult().status !== messages.TestStepResultStatus.PASSED;
|
|
137
|
+
}
|
|
138
|
+
isExplicitlySkipped() {
|
|
139
|
+
return !this.skip && this.getWorstStepResult().status === messages.TestStepResultStatus.SKIPPED;
|
|
138
140
|
}
|
|
139
141
|
shouldSkipHook(isBeforeHook) {
|
|
140
142
|
return this.skip || (this.isSkippingSteps() && isBeforeHook);
|
|
@@ -202,8 +204,8 @@ class TestCaseRunner {
|
|
|
202
204
|
hookParameter.result = this.getWorstStepResult();
|
|
203
205
|
hookParameter.error = error;
|
|
204
206
|
hookParameter.willBeRetried =
|
|
205
|
-
this.getWorstStepResult().status ===
|
|
206
|
-
|
|
207
|
+
this.getWorstStepResult().status === messages.TestStepResultStatus.FAILED &&
|
|
208
|
+
moreAttemptsRemaining;
|
|
207
209
|
}
|
|
208
210
|
return await this.runHook(findHookDefinition(testStep.hookId, this.supportCodeLibrary), hookParameter, !didWeRunStepsYet);
|
|
209
211
|
}
|
|
@@ -216,8 +218,8 @@ class TestCaseRunner {
|
|
|
216
218
|
}
|
|
217
219
|
});
|
|
218
220
|
}
|
|
219
|
-
const willBeRetried = this.getWorstStepResult().status ===
|
|
220
|
-
|
|
221
|
+
const willBeRetried = this.getWorstStepResult().status === messages.TestStepResultStatus.FAILED &&
|
|
222
|
+
moreAttemptsRemaining;
|
|
221
223
|
const testCaseFinished = {
|
|
222
224
|
testCaseFinished: {
|
|
223
225
|
testCaseStartedId: this.currentTestCaseStartedId,
|
|
@@ -256,6 +258,14 @@ class TestCaseRunner {
|
|
|
256
258
|
return stepHooksResult;
|
|
257
259
|
}
|
|
258
260
|
async runStep(pickleStep, testStep) {
|
|
261
|
+
if (this.isExplicitlySkipped()) {
|
|
262
|
+
return {
|
|
263
|
+
result: {
|
|
264
|
+
status: messages.TestStepResultStatus.SKIPPED,
|
|
265
|
+
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
}
|
|
259
269
|
const stepDefinitions = testStep.stepDefinitionIds.map((stepDefinitionId) => {
|
|
260
270
|
return findStepDefinition(stepDefinitionId, this.supportCodeLibrary);
|
|
261
271
|
});
|
|
@@ -277,7 +287,6 @@ class TestCaseRunner {
|
|
|
277
287
|
else if (stepDefinitions.length > 1) {
|
|
278
288
|
return {
|
|
279
289
|
result: {
|
|
280
|
-
message: (0, helpers_1.getAmbiguousStepException)(stepDefinitions),
|
|
281
290
|
status: messages.TestStepResultStatus.AMBIGUOUS,
|
|
282
291
|
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
283
292
|
},
|
|
@@ -294,8 +303,7 @@ class TestCaseRunner {
|
|
|
294
303
|
let stepResult;
|
|
295
304
|
let error;
|
|
296
305
|
let stepResults = await this.runStepHooks(this.getBeforeStepHookDefinitions(), pickleStep);
|
|
297
|
-
if ((0, messages_1.getWorstTestStepResult)(stepResults).status !==
|
|
298
|
-
messages.TestStepResultStatus.FAILED) {
|
|
306
|
+
if ((0, messages_1.getWorstTestStepResult)(stepResults).status !== messages.TestStepResultStatus.FAILED) {
|
|
299
307
|
stepResult = await this.invokeStep(pickleStep, stepDefinitions[0]);
|
|
300
308
|
stepResults.push(stepResult.result);
|
|
301
309
|
error = stepResult.error;
|
|
@@ -324,4 +332,4 @@ function findHookDefinition(id, supportCodeLibrary) {
|
|
|
324
332
|
function findStepDefinition(id, supportCodeLibrary) {
|
|
325
333
|
return supportCodeLibrary.stepDefinitions.find((definition) => definition.id === id);
|
|
326
334
|
}
|
|
327
|
-
//# sourceMappingURL=test_case_runner.js.map
|
|
335
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jYXNlX3J1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL3Rlc3RfY2FzZV9ydW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2REFBOEM7QUFDOUMsaURBQTRGO0FBYTVGLG9EQUFrRTtBQUNsRSw4RUFBb0Q7QUFDcEQsdURBQWtEO0FBQ2xELGdFQUE4RDtBQUM5RCwyQ0FBdUM7QUFpQnZDLE1BQXFCLGNBQWM7SUFDaEIsUUFBUSxDQUFvQjtJQUM1QixpQkFBaUIsQ0FBbUI7SUFDN0Msd0JBQXdCLENBQVE7SUFDaEMsaUJBQWlCLENBQVE7SUFDaEIsZ0JBQWdCLENBQWM7SUFDOUIsZUFBZSxDQUEwQjtJQUN6QyxLQUFLLENBQW1CO0lBQ3hCLE1BQU0sQ0FBaUI7SUFDdkIsUUFBUSxDQUFtQjtJQUMzQixXQUFXLENBQVE7SUFDbkIsSUFBSSxDQUFTO0lBQ2IsaUJBQWlCLENBQVM7SUFDMUIsa0JBQWtCLENBQW9CO0lBQ3RDLGNBQWMsQ0FBOEI7SUFDckQsZUFBZSxDQUEyQjtJQUMxQyxLQUFLLENBQUs7SUFDRCxlQUFlLENBQVk7SUFFNUMsWUFBWSxFQUNWLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLE9BQU8sR0FBRyxDQUFDLEVBQ1gsSUFBSSxFQUNKLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGNBQWMsR0FDWTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSw0QkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQzNFLElBQUksSUFBQSxnQ0FBZ0IsRUFBQyxJQUFJLENBQUMsaUJBQWlC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QixFQUFFLEVBQ2xDLFVBQVUsRUFDVixVQUFVLENBQ1gsQ0FBQTtRQUNELFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFFdEQsTUFBTSxlQUFlLEdBQUcsSUFBQSxpQ0FBc0IsRUFBQyxXQUFXLENBQUMsQ0FBQTtRQUMzRCxJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdEYsQ0FBQztRQUNELGVBQWUsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFBO1FBQ3hDLE9BQU87WUFDTCxNQUFNLEVBQUUsZUFBZTtZQUN2QixLQUFLO1NBQ04sQ0FBQTtJQUNILENBQUM7Q0FDRjtBQXRWRCxpQ0FzVkM7QUFFRCxTQUFTLGtCQUFrQixDQUN6QixFQUFVLEVBQ1Ysa0JBQXNDO0lBRXRDLE9BQU87UUFDTCxHQUFHLGtCQUFrQixDQUFDLDZCQUE2QjtRQUNuRCxHQUFHLGtCQUFrQixDQUFDLDRCQUE0QjtLQUNuRCxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtBQUM5QyxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsa0JBQXNDO0lBQzVFLE9BQU8sa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtBQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdub2RlOmV2ZW50cydcbmltcG9ydCAqIGFzIG1lc3NhZ2VzIGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IHR5cGUgRW52ZWxvcGUsIGdldFdvcnN0VGVzdFN0ZXBSZXN1bHQsIHR5cGUgSWRHZW5lcmF0b3IgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IEpzb25PYmplY3QgfSBmcm9tICd0eXBlLWZlc3QnXG5pbXBvcnQgdHlwZSBTdGVwRGVmaW5pdGlvblNuaXBwZXRCdWlsZGVyIGZyb20gJy4uL2Zvcm1hdHRlci9zdGVwX2RlZmluaXRpb25fc25pcHBldF9idWlsZGVyJ1xuaW1wb3J0IHR5cGUgeyBJRGVmaW5pdGlvbiB9IGZyb20gJy4uL21vZGVscy9kZWZpbml0aW9uJ1xuaW1wb3J0IHR5cGUgU3RlcERlZmluaXRpb24gZnJvbSAnLi4vbW9kZWxzL3N0ZXBfZGVmaW5pdGlvbidcbmltcG9ydCB0eXBlIFRlc3RDYXNlSG9va0RlZmluaXRpb24gZnJvbSAnLi4vbW9kZWxzL3Rlc3RfY2FzZV9ob29rX2RlZmluaXRpb24nXG5pbXBvcnQgdHlwZSBUZXN0U3RlcEhvb2tEZWZpbml0aW9uIGZyb20gJy4uL21vZGVscy90ZXN0X3N0ZXBfaG9va19kZWZpbml0aW9uJ1xuaW1wb3J0IHR5cGUge1xuICBJVGVzdENhc2VIb29rUGFyYW1ldGVyLFxuICBJVGVzdFN0ZXBIb29rUGFyYW1ldGVyLFxuICBTdXBwb3J0Q29kZUxpYnJhcnksXG59IGZyb20gJy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IElXb3JsZE9wdGlvbnMgfSBmcm9tICcuLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3dvcmxkJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSwgZG9lc05vdEhhdmVWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgQXR0YWNobWVudE1hbmFnZXIgZnJvbSAnLi9hdHRhY2htZW50X21hbmFnZXInXG5pbXBvcnQgeyBtYWtlU3VnZ2VzdGlvbiB9IGZyb20gJy4vbWFrZV9zdWdnZXN0aW9uJ1xuaW1wb3J0IFN0ZXBSdW5uZXIsIHsgdHlwZSBSdW5TdGVwUmVzdWx0IH0gZnJvbSAnLi9zdGVwX3J1bm5lcidcbmltcG9ydCB7IHRpbWVzdGFtcCB9IGZyb20gJy4vc3RvcHdhdGNoJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElOZXdUZXN0Q2FzZVJ1bm5lck9wdGlvbnMge1xuICB3b3JrZXJJZD86IHN0cmluZ1xuICBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXJcbiAgZ2hlcmtpbkRvY3VtZW50OiBtZXNzYWdlcy5HaGVya2luRG9jdW1lbnRcbiAgbmV3SWQ6IElkR2VuZXJhdG9yLk5ld0lkXG4gIHBpY2tsZTogbWVzc2FnZXMuUGlja2xlXG4gIHRlc3RDYXNlOiBtZXNzYWdlcy5UZXN0Q2FzZVxuICByZXRyaWVzOiBudW1iZXJcbiAgc2tpcDogYm9vbGVhblxuICBmaWx0ZXJTdGFja1RyYWNlczogYm9vbGVhblxuICBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeVxuICB3b3JsZFBhcmFtZXRlcnM6IEpzb25PYmplY3RcbiAgc25pcHBldEJ1aWxkZXI6IFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXJcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdENhc2VSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtlcklkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSByZWFkb25seSBhdHRhY2htZW50TWFuYWdlcjogQXR0YWNobWVudE1hbmFnZXJcbiAgcHJpdmF0ZSBjdXJyZW50VGVzdENhc2VTdGFydGVkSWQ6IHN0cmluZ1xuICBwcml2YXRlIGN1cnJlbnRUZXN0U3RlcElkOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXJcbiAgcHJpdmF0ZSByZWFkb25seSBnaGVya2luRG9jdW1lbnQ6IG1lc3NhZ2VzLkdoZXJraW5Eb2N1bWVudFxuICBwcml2YXRlIHJlYWRvbmx5IG5ld0lkOiBJZEdlbmVyYXRvci5OZXdJZFxuICBwcml2YXRlIHJlYWRvbmx5IHBpY2tsZTogbWVzc2FnZXMuUGlja2xlXG4gIHByaXZhdGUgcmVhZG9ubHkgdGVzdENhc2U6IG1lc3NhZ2VzLlRlc3RDYXNlXG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4QXR0ZW1wdHM6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IHNraXA6IGJvb2xlYW5cbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTdGFja1RyYWNlczogYm9vbGVhblxuICBwcml2YXRlIHJlYWRvbmx5IHN1cHBvcnRDb2RlTGlicmFyeTogU3VwcG9ydENvZGVMaWJyYXJ5XG4gIHByaXZhdGUgcmVhZG9ubHkgc25pcHBldEJ1aWxkZXI6IFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXJcbiAgcHJpdmF0ZSB0ZXN0U3RlcFJlc3VsdHM6IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0W11cbiAgcHJpdmF0ZSB3b3JsZDogYW55XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ybGRQYXJhbWV0ZXJzOiBKc29uT2JqZWN0XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIHdvcmtlcklkLFxuICAgIGV2ZW50QnJvYWRjYXN0ZXIsXG4gICAgZ2hlcmtpbkRvY3VtZW50LFxuICAgIG5ld0lkLFxuICAgIHBpY2tsZSxcbiAgICB0ZXN0Q2FzZSxcbiAgICByZXRyaWVzID0gMCxcbiAgICBza2lwLFxuICAgIGZpbHRlclN0YWNrVHJhY2VzLFxuICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICB3b3JsZFBhcmFtZXRlcnMsXG4gICAgc25pcHBldEJ1aWxkZXIsXG4gIH06IElOZXdUZXN0Q2FzZVJ1bm5lck9wdGlvbnMpIHtcbiAgICB0aGlzLndvcmtlcklkID0gd29ya2VySWRcbiAgICB0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyID0gbmV3IEF0dGFjaG1lbnRNYW5hZ2VyKCh7IGRhdGEsIG1lZGlhLCBmaWxlTmFtZSB9KSA9PiB7XG4gICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZSh0aGlzLmN1cnJlbnRUZXN0U3RlcElkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ0Nhbm5vdCBhdHRhY2ggd2hlbiBhIHN0ZXAvaG9vayBpcyBub3QgcnVubmluZy4gRW5zdXJlIHlvdXIgc3RlcC9ob29rIHdhaXRzIGZvciB0aGUgYXR0YWNoIHRvIGZpbmlzaC4nXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dGFjaG1lbnQ6IG1lc3NhZ2VzLkVudmVsb3BlID0ge1xuICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgICBjb250ZW50RW5jb2Rpbmc6IG1lZGlhLmVuY29kaW5nLFxuICAgICAgICAgIG1lZGlhVHlwZTogbWVkaWEuY29udGVudFR5cGUsXG4gICAgICAgICAgZmlsZU5hbWUsXG4gICAgICAgICAgdGVzdENhc2VTdGFydGVkSWQ6IHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkLFxuICAgICAgICAgIHRlc3RTdGVwSWQ6IHRoaXMuY3VycmVudFRlc3RTdGVwSWQsXG4gICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXAoKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICAgIHRoaXMuZXZlbnRCcm9hZGNhc3Rlci5lbWl0KCdlbnZlbG9wZScsIGF0dGFjaG1lbnQpXG4gICAgfSlcbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIgPSBldmVudEJyb2FkY2FzdGVyXG4gICAgdGhpcy5naGVya2luRG9jdW1lbnQgPSBnaGVya2luRG9jdW1lbnRcbiAgICB0aGlzLm1heEF0dGVtcHRzID0gMSArIChza2lwID8gMCA6IHJldHJpZXMpXG4gICAgdGhpcy5uZXdJZCA9IG5ld0lkXG4gICAgdGhpcy5waWNrbGUgPSBwaWNrbGVcbiAgICB0aGlzLnRlc3RDYXNlID0gdGVzdENhc2VcbiAgICB0aGlzLnNraXAgPSBza2lwXG4gICAgdGhpcy5maWx0ZXJTdGFja1RyYWNlcyA9IGZpbHRlclN0YWNrVHJhY2VzXG4gICAgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkgPSBzdXBwb3J0Q29kZUxpYnJhcnlcbiAgICB0aGlzLndvcmxkUGFyYW1ldGVycyA9IHdvcmxkUGFyYW1ldGVyc1xuICAgIHRoaXMuc25pcHBldEJ1aWxkZXIgPSBzbmlwcGV0QnVpbGRlclxuICAgIHRoaXMucmVzZXRUZXN0UHJvZ3Jlc3NEYXRhKClcbiAgfVxuXG4gIHJlc2V0VGVzdFByb2dyZXNzRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLndvcmxkID0gbmV3IHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LldvcmxkKHtcbiAgICAgIGF0dGFjaDogdGhpcy5hdHRhY2htZW50TWFuYWdlci5jcmVhdGUuYmluZCh0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyKSxcbiAgICAgIGxvZzogdGhpcy5hdHRhY2htZW50TWFuYWdlci5sb2cuYmluZCh0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyKSxcbiAgICAgIGxpbms6IHRoaXMuYXR0YWNobWVudE1hbmFnZXIubGluay5iaW5kKHRoaXMuYXR0YWNobWVudE1hbmFnZXIpLFxuICAgICAgcGFyYW1ldGVyczogc3RydWN0dXJlZENsb25lKHRoaXMud29ybGRQYXJhbWV0ZXJzKSxcbiAgICB9IHNhdGlzZmllcyBJV29ybGRPcHRpb25zKVxuICAgIHRoaXMudGVzdFN0ZXBSZXN1bHRzID0gW11cbiAgfVxuXG4gIGdldEJlZm9yZVN0ZXBIb29rRGVmaW5pdGlvbnMoKTogVGVzdFN0ZXBIb29rRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkuYmVmb3JlVGVzdFN0ZXBIb29rRGVmaW5pdGlvbnMuZmlsdGVyKChob29rRGVmaW5pdGlvbikgPT5cbiAgICAgIGhvb2tEZWZpbml0aW9uLmFwcGxpZXNUb1Rlc3RDYXNlKHRoaXMucGlja2xlKVxuICAgIClcbiAgfVxuXG4gIGdldEFmdGVyU3RlcEhvb2tEZWZpbml0aW9ucygpOiBUZXN0U3RlcEhvb2tEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5hZnRlclRlc3RTdGVwSG9va0RlZmluaXRpb25zXG4gICAgICAuc2xpY2UoMClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5maWx0ZXIoKGhvb2tEZWZpbml0aW9uKSA9PiBob29rRGVmaW5pdGlvbi5hcHBsaWVzVG9UZXN0Q2FzZSh0aGlzLnBpY2tsZSkpXG4gIH1cblxuICBnZXRXb3JzdFN0ZXBSZXN1bHQoKTogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHQge1xuICAgIGlmICh0aGlzLnRlc3RTdGVwUmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogdGhpcy5za2lwXG4gICAgICAgICAgPyBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5TS0lQUEVEXG4gICAgICAgICAgOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5QQVNTRUQsXG4gICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ2V0V29yc3RUZXN0U3RlcFJlc3VsdCh0aGlzLnRlc3RTdGVwUmVzdWx0cylcbiAgfVxuXG4gIGFzeW5jIGludm9rZVN0ZXAoXG4gICAgc3RlcDogbWVzc2FnZXMuUGlja2xlU3RlcCxcbiAgICBzdGVwRGVmaW5pdGlvbjogSURlZmluaXRpb24sXG4gICAgaG9va1BhcmFtZXRlcj86IElUZXN0Q2FzZUhvb2tQYXJhbWV0ZXJcbiAgKTogUHJvbWlzZTxSdW5TdGVwUmVzdWx0PiB7XG4gICAgcmV0dXJuIGF3YWl0IFN0ZXBSdW5uZXIucnVuKHtcbiAgICAgIGRlZmF1bHRUaW1lb3V0OiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5kZWZhdWx0VGltZW91dCxcbiAgICAgIGZpbHRlclN0YWNrVHJhY2VzOiB0aGlzLmZpbHRlclN0YWNrVHJhY2VzLFxuICAgICAgaG9va1BhcmFtZXRlcixcbiAgICAgIHN0ZXAsXG4gICAgICBzdGVwRGVmaW5pdGlvbixcbiAgICAgIHdvcmxkOiB0aGlzLndvcmxkLFxuICAgIH0pXG4gIH1cblxuICBpc1NraXBwaW5nU3RlcHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V29yc3RTdGVwUmVzdWx0KCkuc3RhdHVzICE9PSBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5QQVNTRURcbiAgfVxuXG4gIGlzRXhwbGljaXRseVNraXBwZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnNraXAgJiYgdGhpcy5nZXRXb3JzdFN0ZXBSZXN1bHQoKS5zdGF0dXMgPT09IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRURcbiAgfVxuXG4gIHNob3VsZFNraXBIb29rKGlzQmVmb3JlSG9vazogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNraXAgfHwgKHRoaXMuaXNTa2lwcGluZ1N0ZXBzKCkgJiYgaXNCZWZvcmVIb29rKVxuICB9XG5cbiAgYXN5bmMgYXJvdW5kVGVzdFN0ZXAoXG4gICAgdGVzdFN0ZXBJZDogc3RyaW5nLFxuICAgIHJ1blN0ZXBGbjogKCkgPT4gUHJvbWlzZTxtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdD5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGVzdFN0ZXBTdGFydGVkOiBtZXNzYWdlcy5FbnZlbG9wZSA9IHtcbiAgICAgIHRlc3RTdGVwU3RhcnRlZDoge1xuICAgICAgICB0ZXN0Q2FzZVN0YXJ0ZWRJZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgIHRlc3RTdGVwSWQsXG4gICAgICAgIHRpbWVzdGFtcDogdGltZXN0YW1wKCksXG4gICAgICB9LFxuICAgIH1cbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIuZW1pdCgnZW52ZWxvcGUnLCB0ZXN0U3RlcFN0YXJ0ZWQpXG4gICAgdGhpcy5jdXJyZW50VGVzdFN0ZXBJZCA9IHRlc3RTdGVwSWRcbiAgICBjb25zdCB0ZXN0U3RlcFJlc3VsdCA9IGF3YWl0IHJ1blN0ZXBGbigpXG4gICAgdGhpcy5jdXJyZW50VGVzdFN0ZXBJZCA9IG51bGxcbiAgICB0aGlzLnRlc3RTdGVwUmVzdWx0cy5wdXNoKHRlc3RTdGVwUmVzdWx0KVxuICAgIGNvbnN0IHRlc3RTdGVwRmluaXNoZWQ6IG1lc3NhZ2VzLkVudmVsb3BlID0ge1xuICAgICAgdGVzdFN0ZXBGaW5pc2hlZDoge1xuICAgICAgICB0ZXN0Q2FzZVN0YXJ0ZWRJZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgIHRlc3RTdGVwSWQsXG4gICAgICAgIHRlc3RTdGVwUmVzdWx0LFxuICAgICAgICB0aW1lc3RhbXA6IHRpbWVzdGFtcCgpLFxuICAgICAgfSxcbiAgICB9XG4gICAgdGhpcy5ldmVudEJyb2FkY2FzdGVyLmVtaXQoJ2VudmVsb3BlJywgdGVzdFN0ZXBGaW5pc2hlZClcbiAgfVxuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzPiB7XG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPCB0aGlzLm1heEF0dGVtcHRzOyBhdHRlbXB0KyspIHtcbiAgICAgIGNvbnN0IG1vcmVBdHRlbXB0c1JlbWFpbmluZyA9IGF0dGVtcHQgKyAxIDwgdGhpcy5tYXhBdHRlbXB0c1xuXG4gICAgICBjb25zdCB3aWxsQmVSZXRyaWVkID0gYXdhaXQgdGhpcy5ydW5BdHRlbXB0KGF0dGVtcHQsIG1vcmVBdHRlbXB0c1JlbWFpbmluZylcblxuICAgICAgaWYgKCF3aWxsQmVSZXRyaWVkKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICB0aGlzLnJlc2V0VGVzdFByb2dyZXNzRGF0YSgpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFdvcnN0U3RlcFJlc3VsdCgpLnN0YXR1c1xuICB9XG5cbiAgYXN5bmMgcnVuQXR0ZW1wdChhdHRlbXB0OiBudW1iZXIsIG1vcmVBdHRlbXB0c1JlbWFpbmluZzogYm9vbGVhbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkID0gdGhpcy5uZXdJZCgpXG4gICAgY29uc3QgdGVzdENhc2VTdGFydGVkOiBtZXNzYWdlcy5FbnZlbG9wZSA9IHtcbiAgICAgIHRlc3RDYXNlU3RhcnRlZDoge1xuICAgICAgICBhdHRlbXB0LFxuICAgICAgICB0ZXN0Q2FzZUlkOiB0aGlzLnRlc3RDYXNlLmlkLFxuICAgICAgICBpZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgIHRpbWVzdGFtcDogdGltZXN0YW1wKCksXG4gICAgICB9LFxuICAgIH1cbiAgICBpZiAodGhpcy53b3JrZXJJZCkge1xuICAgICAgdGVzdENhc2VTdGFydGVkLnRlc3RDYXNlU3RhcnRlZC53b3JrZXJJZCA9IHRoaXMud29ya2VySWRcbiAgICB9XG4gICAgdGhpcy5ldmVudEJyb2FkY2FzdGVyLmVtaXQoJ2VudmVsb3BlJywgdGVzdENhc2VTdGFydGVkKVxuICAgIC8vIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBob29rIGlzIGEgQmVmb3JlIG9yIEFmdGVyXG4gICAgbGV0IGRpZFdlUnVuU3RlcHNZZXQgPSBmYWxzZVxuICAgIGxldCBlcnJvciA9IGZhbHNlXG4gICAgZm9yIChjb25zdCB0ZXN0U3RlcCBvZiB0aGlzLnRlc3RDYXNlLnRlc3RTdGVwcykge1xuICAgICAgYXdhaXQgdGhpcy5hcm91bmRUZXN0U3RlcCh0ZXN0U3RlcC5pZCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoZG9lc0hhdmVWYWx1ZSh0ZXN0U3RlcC5ob29rSWQpKSB7XG4gICAgICAgICAgY29uc3QgaG9va1BhcmFtZXRlcjogSVRlc3RDYXNlSG9va1BhcmFtZXRlciA9IHtcbiAgICAgICAgICAgIGdoZXJraW5Eb2N1bWVudDogdGhpcy5naGVya2luRG9jdW1lbnQsXG4gICAgICAgICAgICBwaWNrbGU6IHRoaXMucGlja2xlLFxuICAgICAgICAgICAgdGVzdENhc2VTdGFydGVkSWQ6IHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkLFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGlkV2VSdW5TdGVwc1lldCkge1xuICAgICAgICAgICAgaG9va1BhcmFtZXRlci5yZXN1bHQgPSB0aGlzLmdldFdvcnN0U3RlcFJlc3VsdCgpXG4gICAgICAgICAgICBob29rUGFyYW1ldGVyLmVycm9yID0gZXJyb3JcbiAgICAgICAgICAgIGhvb2tQYXJhbWV0ZXIud2lsbEJlUmV0cmllZCA9XG4gICAgICAgICAgICAgIHRoaXMuZ2V0V29yc3RTdGVwUmVzdWx0KCkuc3RhdHVzID09PSBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQgJiZcbiAgICAgICAgICAgICAgbW9yZUF0dGVtcHRzUmVtYWluaW5nXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJ1bkhvb2soXG4gICAgICAgICAgICBmaW5kSG9va0RlZmluaXRpb24odGVzdFN0ZXAuaG9va0lkLCB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeSksXG4gICAgICAgICAgICBob29rUGFyYW1ldGVyLFxuICAgICAgICAgICAgIWRpZFdlUnVuU3RlcHNZZXRcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcGlja2xlU3RlcCA9IHRoaXMucGlja2xlLnN0ZXBzLmZpbmQoXG4gICAgICAgICAgICAocGlja2xlU3RlcCkgPT4gcGlja2xlU3RlcC5pZCA9PT0gdGVzdFN0ZXAucGlja2xlU3RlcElkXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnN0IHRlc3RTdGVwUmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5TdGVwKHBpY2tsZVN0ZXAsIHRlc3RTdGVwKVxuICAgICAgICAgIGRpZFdlUnVuU3RlcHNZZXQgPSB0cnVlXG4gICAgICAgICAgZXJyb3IgPSB0ZXN0U3RlcFJlc3VsdC5lcnJvclxuICAgICAgICAgIHJldHVybiB0ZXN0U3RlcFJlc3VsdC5yZXN1bHRcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCB3aWxsQmVSZXRyaWVkID1cbiAgICAgIHRoaXMuZ2V0V29yc3RTdGVwUmVzdWx0KCkuc3RhdHVzID09PSBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQgJiZcbiAgICAgIG1vcmVBdHRlbXB0c1JlbWFpbmluZ1xuICAgIGNvbnN0IHRlc3RDYXNlRmluaXNoZWQ6IG1lc3NhZ2VzLkVudmVsb3BlID0ge1xuICAgICAgdGVzdENhc2VGaW5pc2hlZDoge1xuICAgICAgICB0ZXN0Q2FzZVN0YXJ0ZWRJZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgIHRpbWVzdGFtcDogdGltZXN0YW1wKCksXG4gICAgICAgIHdpbGxCZVJldHJpZWQsXG4gICAgICB9LFxuICAgIH1cbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIuZW1pdCgnZW52ZWxvcGUnLCB0ZXN0Q2FzZUZpbmlzaGVkKVxuXG4gICAgcmV0dXJuIHdpbGxCZVJldHJpZWRcbiAgfVxuXG4gIGFzeW5jIHJ1bkhvb2soXG4gICAgaG9va0RlZmluaXRpb246IFRlc3RDYXNlSG9va0RlZmluaXRpb24sXG4gICAgaG9va1BhcmFtZXRlcjogSVRlc3RDYXNlSG9va1BhcmFtZXRlcixcbiAgICBpc0JlZm9yZUhvb2s6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdD4ge1xuICAgIGlmICh0aGlzLnNob3VsZFNraXBIb29rKGlzQmVmb3JlSG9vaykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuU0tJUFBFRCxcbiAgICAgICAgZHVyYXRpb246IG1lc3NhZ2VzLlRpbWVDb252ZXJzaW9uLm1pbGxpc2Vjb25kc1RvRHVyYXRpb24oMCksXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCB0aGlzLmludm9rZVN0ZXAobnVsbCwgaG9va0RlZmluaXRpb24sIGhvb2tQYXJhbWV0ZXIpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgYXN5bmMgcnVuU3RlcEhvb2tzKFxuICAgIHN0ZXBIb29rczogVGVzdFN0ZXBIb29rRGVmaW5pdGlvbltdLFxuICAgIHBpY2tsZVN0ZXA6IG1lc3NhZ2VzLlBpY2tsZVN0ZXAsXG4gICAgc3RlcFJlc3VsdD86IFJ1blN0ZXBSZXN1bHRcbiAgKTogUHJvbWlzZTxtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFtdPiB7XG4gICAgY29uc3Qgc3RlcEhvb2tzUmVzdWx0ID0gW11cbiAgICBjb25zdCBob29rUGFyYW1ldGVyOiBJVGVzdFN0ZXBIb29rUGFyYW1ldGVyID0ge1xuICAgICAgZ2hlcmtpbkRvY3VtZW50OiB0aGlzLmdoZXJraW5Eb2N1bWVudCxcbiAgICAgIHBpY2tsZTogdGhpcy5waWNrbGUsXG4gICAgICBwaWNrbGVTdGVwLFxuICAgICAgdGVzdENhc2VTdGFydGVkSWQ6IHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkLFxuICAgICAgdGVzdFN0ZXBJZDogdGhpcy5jdXJyZW50VGVzdFN0ZXBJZCxcbiAgICAgIHJlc3VsdDogc3RlcFJlc3VsdD8ucmVzdWx0LFxuICAgICAgZXJyb3I6IHN0ZXBSZXN1bHQ/LmVycm9yLFxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN0ZXBIb29rRGVmaW5pdGlvbiBvZiBzdGVwSG9va3MpIHtcbiAgICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCB0aGlzLmludm9rZVN0ZXAobnVsbCwgc3RlcEhvb2tEZWZpbml0aW9uLCBob29rUGFyYW1ldGVyKVxuICAgICAgc3RlcEhvb2tzUmVzdWx0LnB1c2gocmVzdWx0KVxuICAgIH1cbiAgICByZXR1cm4gc3RlcEhvb2tzUmVzdWx0XG4gIH1cblxuICBhc3luYyBydW5TdGVwKFxuICAgIHBpY2tsZVN0ZXA6IG1lc3NhZ2VzLlBpY2tsZVN0ZXAsXG4gICAgdGVzdFN0ZXA6IG1lc3NhZ2VzLlRlc3RTdGVwXG4gICk6IFByb21pc2U8UnVuU3RlcFJlc3VsdD4ge1xuICAgIGlmICh0aGlzLmlzRXhwbGljaXRseVNraXBwZWQoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgc3RhdHVzOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5TS0lQUEVELFxuICAgICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzdGVwRGVmaW5pdGlvbnMgPSB0ZXN0U3RlcC5zdGVwRGVmaW5pdGlvbklkcy5tYXAoKHN0ZXBEZWZpbml0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBmaW5kU3RlcERlZmluaXRpb24oc3RlcERlZmluaXRpb25JZCwgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkpXG4gICAgfSlcbiAgICBpZiAoc3RlcERlZmluaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5ldmVudEJyb2FkY2FzdGVyLmVtaXQoJ2VudmVsb3BlJywge1xuICAgICAgICBzdWdnZXN0aW9uOiBtYWtlU3VnZ2VzdGlvbih7XG4gICAgICAgICAgbmV3SWQ6IHRoaXMubmV3SWQsXG4gICAgICAgICAgc25pcHBldEJ1aWxkZXI6IHRoaXMuc25pcHBldEJ1aWxkZXIsXG4gICAgICAgICAgcGlja2xlU3RlcCxcbiAgICAgICAgfSksXG4gICAgICB9IHNhdGlzZmllcyBFbnZlbG9wZSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgIHN0YXR1czogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuVU5ERUZJTkVELFxuICAgICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RlcERlZmluaXRpb25zLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgIHN0YXR1czogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuQU1CSUdVT1VTLFxuICAgICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5pc1NraXBwaW5nU3RlcHMoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgc3RhdHVzOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5TS0lQUEVELFxuICAgICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBzdGVwUmVzdWx0OiBhbnlcbiAgICBsZXQgZXJyb3I6IGFueVxuICAgIGxldCBzdGVwUmVzdWx0cyA9IGF3YWl0IHRoaXMucnVuU3RlcEhvb2tzKHRoaXMuZ2V0QmVmb3JlU3RlcEhvb2tEZWZpbml0aW9ucygpLCBwaWNrbGVTdGVwKVxuICAgIGlmIChnZXRXb3JzdFRlc3RTdGVwUmVzdWx0KHN0ZXBSZXN1bHRzKS5zdGF0dXMgIT09IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRCkge1xuICAgICAgc3RlcFJlc3VsdCA9IGF3YWl0IHRoaXMuaW52b2tlU3RlcChwaWNrbGVTdGVwLCBzdGVwRGVmaW5pdGlvbnNbMF0pXG4gICAgICBzdGVwUmVzdWx0cy5wdXNoKHN0ZXBSZXN1bHQucmVzdWx0KVxuICAgICAgZXJyb3IgPSBzdGVwUmVzdWx0LmVycm9yXG4gICAgfVxuICAgIGNvbnN0IGFmdGVyU3RlcEhvb2tSZXN1bHRzID0gYXdhaXQgdGhpcy5ydW5TdGVwSG9va3MoXG4gICAgICB0aGlzLmdldEFmdGVyU3RlcEhvb2tEZWZpbml0aW9ucygpLFxuICAgICAgcGlja2xlU3RlcCxcbiAgICAgIHN0ZXBSZXN1bHRcbiAgICApXG4gICAgc3RlcFJlc3VsdHMgPSBzdGVwUmVzdWx0cy5jb25jYXQoYWZ0ZXJTdGVwSG9va1Jlc3VsdHMpXG5cbiAgICBjb25zdCBmaW5hbFN0ZXBSZXN1bHQgPSBnZXRXb3JzdFRlc3RTdGVwUmVzdWx0KHN0ZXBSZXN1bHRzKVxuICAgIGxldCBmaW5hbER1cmF0aW9uID0gbWVzc2FnZXMuVGltZUNvbnZlcnNpb24ubWlsbGlzZWNvbmRzVG9EdXJhdGlvbigwKVxuICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHN0ZXBSZXN1bHRzKSB7XG4gICAgICBmaW5hbER1cmF0aW9uID0gbWVzc2FnZXMuVGltZUNvbnZlcnNpb24uYWRkRHVyYXRpb25zKGZpbmFsRHVyYXRpb24sIHJlc3VsdC5kdXJhdGlvbilcbiAgICB9XG4gICAgZmluYWxTdGVwUmVzdWx0LmR1cmF0aW9uID0gZmluYWxEdXJhdGlvblxuICAgIHJldHVybiB7XG4gICAgICByZXN1bHQ6IGZpbmFsU3RlcFJlc3VsdCxcbiAgICAgIGVycm9yLFxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSG9va0RlZmluaXRpb24oXG4gIGlkOiBzdHJpbmcsXG4gIHN1cHBvcnRDb2RlTGlicmFyeTogU3VwcG9ydENvZGVMaWJyYXJ5XG4pOiBUZXN0Q2FzZUhvb2tEZWZpbml0aW9uIHtcbiAgcmV0dXJuIFtcbiAgICAuLi5zdXBwb3J0Q29kZUxpYnJhcnkuYmVmb3JlVGVzdENhc2VIb29rRGVmaW5pdGlvbnMsXG4gICAgLi4uc3VwcG9ydENvZGVMaWJyYXJ5LmFmdGVyVGVzdENhc2VIb29rRGVmaW5pdGlvbnMsXG4gIF0uZmluZCgoZGVmaW5pdGlvbikgPT4gZGVmaW5pdGlvbi5pZCA9PT0gaWQpXG59XG5cbmZ1bmN0aW9uIGZpbmRTdGVwRGVmaW5pdGlvbihpZDogc3RyaW5nLCBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeSk6IFN0ZXBEZWZpbml0aW9uIHtcbiAgcmV0dXJuIHN1cHBvcnRDb2RlTGlicmFyeS5zdGVwRGVmaW5pdGlvbnMuZmluZCgoZGVmaW5pdGlvbikgPT4gZGVmaW5pdGlvbi5pZCA9PT0gaWQpXG59XG4iXX0=
|
package/lib/runtime/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { JsonObject } from 'type-fest';
|
|
2
|
-
import { AssembledTestCase } from '../assemble';
|
|
1
|
+
import type { JsonObject } from 'type-fest';
|
|
2
|
+
import type { AssembledTestCase } from '../assemble';
|
|
3
3
|
export interface RuntimeOptions {
|
|
4
4
|
dryRun: boolean;
|
|
5
5
|
failFast: boolean;
|
|
@@ -13,5 +13,9 @@ export interface Runtime {
|
|
|
13
13
|
run: () => Promise<boolean>;
|
|
14
14
|
}
|
|
15
15
|
export interface RuntimeAdapter {
|
|
16
|
-
|
|
16
|
+
setup(): Promise<void>;
|
|
17
|
+
runBeforeAllHooks(): Promise<boolean>;
|
|
18
|
+
runTestCases(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
|
|
19
|
+
runAfterAllHooks(): Promise<boolean>;
|
|
20
|
+
teardown(): Promise<void>;
|
|
17
21
|
}
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBKc29uT2JqZWN0IH0gZnJvbSAndHlwZS1mZXN0J1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJsZWRUZXN0Q2FzZSB9IGZyb20gJy4uL2Fzc2VtYmxlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVPcHRpb25zIHtcbiAgZHJ5UnVuOiBib29sZWFuXG4gIGZhaWxGYXN0OiBib29sZWFuXG4gIGZpbHRlclN0YWNrdHJhY2VzOiBib29sZWFuXG4gIHJldHJ5OiBudW1iZXJcbiAgcmV0cnlUYWdGaWx0ZXI6IHN0cmluZ1xuICBzdHJpY3Q6IGJvb2xlYW5cbiAgd29ybGRQYXJhbWV0ZXJzOiBKc29uT2JqZWN0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZSB7XG4gIHJ1bjogKCkgPT4gUHJvbWlzZTxib29sZWFuPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVBZGFwdGVyIHtcbiAgc2V0dXAoKTogUHJvbWlzZTx2b2lkPlxuICBydW5CZWZvcmVBbGxIb29rcygpOiBQcm9taXNlPGJvb2xlYW4+XG4gIHJ1blRlc3RDYXNlcyhhc3NlbWJsZWRUZXN0Q2FzZXM6IFJlYWRvbmx5QXJyYXk8QXNzZW1ibGVkVGVzdENhc2U+KTogUHJvbWlzZTxib29sZWFuPlxuICBydW5BZnRlckFsbEhvb2tzKCk6IFByb21pc2U8Ym9vbGVhbj5cbiAgdGVhcmRvd24oKTogUHJvbWlzZTx2b2lkPlxufVxuIl19
|
package/lib/runtime/worker.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { EventEmitter } from 'node:events';
|
|
2
|
-
import { IdGenerator
|
|
3
|
-
import { AssembledTestCase } from '../assemble';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import { RuntimeOptions } from './types';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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 './types';
|
|
7
|
+
/**
|
|
8
|
+
* Runs individual units of work asynchronously
|
|
9
|
+
* @remarks
|
|
10
|
+
* Unaware of the overall test run scope, or whether it's on the main thread,
|
|
11
|
+
* or whether any other workers are in play.
|
|
12
|
+
*/
|
|
11
13
|
export declare class Worker {
|
|
12
14
|
private readonly testRunStartedId;
|
|
13
15
|
private readonly workerId;
|
|
@@ -18,8 +20,7 @@ export declare class Worker {
|
|
|
18
20
|
private readonly snippetBuilder;
|
|
19
21
|
constructor(testRunStartedId: string, workerId: string | undefined, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, options: RuntimeOptions, supportCodeLibrary: SupportCodeLibrary, snippetBuilder: StepDefinitionSnippetBuilder);
|
|
20
22
|
private runTestRunHook;
|
|
21
|
-
|
|
22
|
-
runBeforeAllHooks(): Promise<RunHookResult[]>;
|
|
23
|
+
runBeforeAllHooks(): Promise<boolean>;
|
|
23
24
|
runTestCase({ gherkinDocument, pickle, testCase }: AssembledTestCase, failing: boolean): Promise<boolean>;
|
|
24
|
-
runAfterAllHooks(): Promise<
|
|
25
|
+
runAfterAllHooks(): Promise<boolean>;
|
|
25
26
|
}
|