Version not found. Please check the version and try again.
@cucumber/react-components 24.2.0 → 24.4.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/LICENSE +1 -1
- package/README.md +2 -2
- package/dist/CucumberQueryContext.d.ts +3 -0
- package/dist/CucumberQueryContext.js +4 -0
- package/dist/GherkinQueryContext.d.ts +3 -0
- package/dist/GherkinQueryContext.js +4 -0
- package/dist/SearchContext.d.ts +18 -0
- package/dist/SearchContext.js +10 -0
- package/dist/ciCommitLink.d.ts +2 -0
- package/dist/ciCommitLink.js +12 -0
- package/dist/components/app/CICommitLink.d.ts +5 -0
- package/dist/components/app/CICommitLink.js +16 -0
- package/dist/components/app/CIJobLink.d.ts +5 -0
- package/dist/components/app/CIJobLink.js +10 -0
- package/dist/{src/components → components}/app/ControlledSearchProvider.d.ts +2 -3
- package/dist/components/app/ControlledSearchProvider.js +39 -0
- package/dist/components/app/CopyButton.d.ts +5 -0
- package/dist/components/app/CopyButton.js +23 -0
- package/dist/{src/components → components}/app/DocumentAccordion.d.ts +3 -4
- package/dist/components/app/DocumentAccordion.js +22 -0
- package/dist/{src/components → components}/app/DocumentAccordion.module.scss +15 -7
- package/dist/components/app/EnvelopesProvider.d.ts +7 -0
- package/dist/components/app/EnvelopesProvider.js +18 -0
- package/dist/components/app/ExecutionSummary.d.ts +2 -0
- package/dist/components/app/ExecutionSummary.js +38 -0
- package/dist/components/app/FilteredDocuments.d.ts +2 -0
- package/dist/components/app/FilteredDocuments.js +15 -0
- package/dist/components/app/GherkinDocumentList.d.ts +8 -0
- package/dist/components/app/GherkinDocumentList.js +23 -0
- package/dist/{src/components → components}/app/Header.d.ts +1 -2
- package/dist/components/app/Header.js +12 -0
- package/dist/components/app/HealthChart.d.ts +2 -0
- package/dist/components/app/HealthChart.js +14 -0
- package/dist/components/app/HighLight.d.ts +8 -0
- package/dist/components/app/HighLight.js +38 -0
- package/dist/components/app/ImplementationIcon.d.ts +5 -0
- package/dist/components/app/ImplementationIcon.js +10 -0
- package/dist/{src/components → components}/app/InMemorySearchProvider.d.ts +2 -3
- package/dist/components/app/InMemorySearchProvider.js +11 -0
- package/dist/components/app/NavigationButton.d.ts +2 -0
- package/dist/components/app/NavigationButton.js +6 -0
- package/dist/components/app/OSIcon.d.ts +5 -0
- package/dist/components/app/OSIcon.js +18 -0
- package/dist/components/app/QueriesProvider.d.ts +9 -0
- package/dist/components/app/QueriesProvider.js +7 -0
- package/dist/components/app/Report.d.ts +2 -0
- package/dist/components/app/Report.js +10 -0
- package/dist/components/app/RuntimeIcon.d.ts +5 -0
- package/dist/components/app/RuntimeIcon.js +18 -0
- package/dist/components/app/SearchBar.d.ts +2 -0
- package/dist/components/app/SearchBar.js +33 -0
- package/dist/components/app/StatusesSummary.d.ts +2 -0
- package/dist/components/app/StatusesSummary.js +16 -0
- package/dist/components/app/TestRunHooks.d.ts +2 -0
- package/dist/components/app/TestRunHooks.js +14 -0
- package/dist/{src/components → components}/app/UrlSearchProvider.d.ts +1 -2
- package/dist/components/app/UrlSearchProvider.js +29 -0
- package/dist/{src/components → components}/app/findMostSevereTestStepResultStatus.d.ts +0 -1
- package/dist/components/app/findMostSevereTestStepResultStatus.js +17 -0
- package/dist/components/app/icons/CucumberLogo.d.ts +2 -0
- package/dist/components/app/icons/CucumberLogo.js +5 -0
- package/dist/components/app/icons/Jvm.d.ts +2 -0
- package/dist/components/app/icons/Jvm.js +5 -0
- package/dist/components/app/icons/Linux.d.ts +2 -0
- package/dist/components/app/icons/Linux.js +5 -0
- package/dist/components/app/icons/MacOS.d.ts +2 -0
- package/dist/components/app/icons/MacOS.js +5 -0
- package/dist/components/app/icons/NodeJs.d.ts +2 -0
- package/dist/components/app/icons/NodeJs.js +5 -0
- package/dist/components/app/icons/Ruby.d.ts +2 -0
- package/dist/components/app/icons/Ruby.js +5 -0
- package/dist/components/app/icons/Windows.d.ts +2 -0
- package/dist/components/app/icons/Windows.js +5 -0
- package/dist/{src/components/app/index.js → components/app/index.d.ts} +0 -1
- package/dist/components/app/index.js +15 -0
- package/dist/components/app/makeSetupString.d.ts +2 -0
- package/dist/components/app/makeSetupString.js +21 -0
- package/dist/components/app/markdownComponents.d.ts +8 -0
- package/dist/components/app/markdownComponents.js +6 -0
- package/dist/components/app/rehypePlugins.d.ts +3 -0
- package/dist/components/app/rehypePlugins.js +9 -0
- package/dist/components/app/remarkPlugins.d.ts +3 -0
- package/dist/components/app/remarkPlugins.js +4 -0
- package/dist/{src/components → components}/customise/CustomRendering.d.ts +18 -19
- package/dist/components/customise/CustomRendering.js +35 -0
- package/dist/components/customise/CustomRendering.stories.scss +8 -0
- package/dist/{src/components/customise/index.js → components/customise/index.d.ts} +0 -1
- package/dist/components/customise/index.js +3 -0
- package/dist/{src/components → components}/customise/theming.d.ts +0 -1
- package/dist/components/customise/theming.js +2 -0
- package/dist/components/gherkin/Anchor.d.ts +3 -0
- package/dist/components/gherkin/Anchor.js +13 -0
- package/dist/components/gherkin/Background.d.ts +3 -0
- package/dist/components/gherkin/Background.js +18 -0
- package/dist/components/gherkin/Children.d.ts +3 -0
- package/dist/components/gherkin/Children.js +11 -0
- package/dist/components/gherkin/DataTable.d.ts +3 -0
- package/dist/components/gherkin/DataTable.js +16 -0
- package/dist/components/gherkin/Description.d.ts +3 -0
- package/dist/components/gherkin/Description.js +15 -0
- package/dist/components/gherkin/DocString.d.ts +3 -0
- package/dist/components/gherkin/DocString.js +12 -0
- package/dist/components/gherkin/ErrorMessage.d.ts +3 -0
- package/dist/components/gherkin/ErrorMessage.js +13 -0
- package/dist/components/gherkin/ErrorMessage.module.scss +24 -0
- package/dist/components/gherkin/Examples.d.ts +3 -0
- package/dist/components/gherkin/Examples.js +31 -0
- package/dist/components/gherkin/Feature.d.ts +3 -0
- package/dist/components/gherkin/Feature.js +30 -0
- package/dist/components/gherkin/GherkinDocument.d.ts +3 -0
- package/dist/components/gherkin/GherkinDocument.js +11 -0
- package/dist/components/gherkin/Keyword.d.ts +3 -0
- package/dist/components/gherkin/Keyword.js +11 -0
- package/dist/{src/components → components}/gherkin/Keyword.module.scss +0 -1
- package/dist/components/gherkin/Parameter.d.ts +3 -0
- package/dist/components/gherkin/Parameter.js +11 -0
- package/dist/components/gherkin/Rule.d.ts +3 -0
- package/dist/components/gherkin/Rule.js +26 -0
- package/dist/components/gherkin/Scenario.d.ts +3 -0
- package/dist/components/gherkin/Scenario.js +22 -0
- package/dist/components/gherkin/StatusIcon.d.ts +3 -0
- package/dist/components/gherkin/StatusIcon.js +24 -0
- package/dist/components/gherkin/StepsList.d.ts +4 -0
- package/dist/components/gherkin/StepsList.js +6 -0
- package/dist/components/gherkin/Tags.d.ts +3 -0
- package/dist/components/gherkin/Tags.js +15 -0
- package/dist/components/gherkin/Title.d.ts +3 -0
- package/dist/components/gherkin/Title.js +12 -0
- package/dist/components/gherkin/attachment/Attachment.d.ts +3 -0
- package/dist/components/gherkin/attachment/Attachment.js +45 -0
- package/dist/{src/components → components}/gherkin/attachment/Attachment.module.scss +15 -5
- package/dist/components/gherkin/attachment/Image.d.ts +7 -0
- package/dist/components/gherkin/attachment/Image.js +16 -0
- package/dist/components/gherkin/attachment/Links.d.ts +7 -0
- package/dist/components/gherkin/attachment/Links.js +14 -0
- package/dist/components/gherkin/attachment/Log.d.ts +7 -0
- package/dist/components/gherkin/attachment/Log.js +12 -0
- package/dist/components/gherkin/attachment/Text.d.ts +8 -0
- package/dist/components/gherkin/attachment/Text.js +16 -0
- package/dist/components/gherkin/attachment/Unknown.d.ts +3 -0
- package/dist/components/gherkin/attachment/Unknown.js +61 -0
- package/dist/components/gherkin/attachment/Video.d.ts +5 -0
- package/dist/components/gherkin/attachment/Video.js +16 -0
- package/dist/components/gherkin/attachment/attachmentFilename.d.ts +2 -0
- package/dist/components/gherkin/attachment/attachmentFilename.js +12 -0
- package/dist/components/gherkin/attachment/base64Decode.d.ts +9 -0
- package/dist/components/gherkin/attachment/base64Decode.js +19 -0
- package/dist/{src/components/gherkin/attachment/index.js → components/gherkin/attachment/index.d.ts} +0 -1
- package/dist/components/gherkin/attachment/index.js +2 -0
- package/dist/{src/components → components}/gherkin/attachment/useText.d.ts +1 -2
- package/dist/components/gherkin/attachment/useText.js +28 -0
- package/dist/components/gherkin/composeHookStepTitle.d.ts +2 -0
- package/dist/components/gherkin/composeHookStepTitle.js +23 -0
- package/dist/{src/components → components}/gherkin/composePickleStepTitle.d.ts +1 -2
- package/dist/components/gherkin/composePickleStepTitle.js +36 -0
- package/dist/{src/components/gherkin/index.js → components/gherkin/index.d.ts} +0 -1
- package/dist/components/gherkin/index.js +19 -0
- package/dist/{src/components → components}/gherkin/isNumber.d.ts +0 -1
- package/dist/components/gherkin/isNumber.js +7 -0
- package/dist/components/gherkin/statusName.d.ts +3 -0
- package/dist/components/gherkin/statusName.js +4 -0
- package/dist/{src/components/index.js → components/index.d.ts} +0 -1
- package/dist/components/index.js +4 -0
- package/dist/components/results/AmbiguousResult.d.ts +7 -0
- package/dist/components/results/AmbiguousResult.js +11 -0
- package/dist/components/results/AmbiguousResult.module.scss +22 -0
- package/dist/components/results/FailedResult.d.ts +7 -0
- package/dist/components/results/FailedResult.js +15 -0
- package/dist/components/results/PendingResult.d.ts +7 -0
- package/dist/components/results/PendingResult.js +12 -0
- package/dist/components/results/ResultNote.d.ts +2 -0
- package/dist/components/results/ResultNote.js +6 -0
- package/dist/components/results/ResultNote.module.scss +6 -0
- package/dist/components/results/SkippedResult.d.ts +7 -0
- package/dist/components/results/SkippedResult.js +12 -0
- package/dist/components/results/SourceReference.d.ts +7 -0
- package/dist/components/results/SourceReference.js +13 -0
- package/dist/components/results/SourceReference.module.scss +10 -0
- package/dist/components/results/TestCaseOutcome.d.ts +7 -0
- package/dist/components/results/TestCaseOutcome.js +32 -0
- package/dist/{src/components → components}/results/TestRunHookOutcome.d.ts +2 -3
- package/dist/components/results/TestRunHookOutcome.js +11 -0
- package/dist/components/results/TestStepAttachments.d.ts +7 -0
- package/dist/components/results/TestStepAttachments.js +12 -0
- package/dist/components/results/TestStepDuration.d.ts +5 -0
- package/dist/components/results/TestStepDuration.js +19 -0
- package/dist/{src/components → components}/results/TestStepOutcome.d.ts +2 -3
- package/dist/components/results/TestStepOutcome.js +45 -0
- package/dist/{src/components → components}/results/TestStepOutcome.module.scss +1 -1
- package/dist/components/results/UndefinedResult.d.ts +7 -0
- package/dist/components/results/UndefinedResult.js +18 -0
- package/dist/{src/components/gherkin/ErrorMessage.module.scss → components/results/UndefinedResult.module.scss} +5 -3
- package/dist/components/results/index.d.ts +2 -0
- package/dist/components/results/index.js +3 -0
- package/dist/{src/hooks/helpers.d.ts → ensure.d.ts} +0 -1
- package/dist/ensure.js +7 -0
- package/dist/{src/formatExecutionDistance.d.ts → formatExecutionDistance.d.ts} +0 -1
- package/dist/formatExecutionDistance.js +7 -0
- package/dist/{src/formatExecutionDuration.d.ts → formatExecutionDuration.d.ts} +0 -1
- package/dist/formatExecutionDuration.js +12 -0
- package/dist/{src/formatPassedQuantity.d.ts → formatPassedQuantity.d.ts} +0 -1
- package/dist/formatPassedQuantity.js +4 -0
- package/dist/{src/formatStatusRate.d.ts → formatStatusRate.d.ts} +0 -1
- package/dist/formatStatusRate.js +9 -0
- package/dist/{src/hooks/index.js → hooks/index.d.ts} +0 -1
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/useFilteredDocuments.d.ts +5 -0
- package/dist/hooks/useFilteredDocuments.js +67 -0
- package/dist/hooks/useFilteredTestCases.d.ts +6 -0
- package/dist/hooks/useFilteredTestCases.js +36 -0
- package/dist/{src/hooks → hooks}/useMostSevereStatusByUri.d.ts +0 -1
- package/dist/hooks/useMostSevereStatusByUri.js +25 -0
- package/dist/hooks/useQueries.d.ts +6 -0
- package/dist/hooks/useQueries.js +9 -0
- package/dist/{src/hooks → hooks}/useResultStatistics.d.ts +1 -2
- package/dist/hooks/useResultStatistics.js +24 -0
- package/dist/hooks/useSearch.d.ts +2 -0
- package/dist/hooks/useSearch.js +6 -0
- package/dist/hooks/useSearchResult.d.ts +26 -0
- package/dist/hooks/useSearchResult.js +58 -0
- package/dist/hooks/useTestCaseStarted.d.ts +7 -0
- package/dist/hooks/useTestCaseStarted.js +20 -0
- package/dist/{src/hooks → hooks}/useTestRunHooks.d.ts +1 -2
- package/dist/hooks/useTestRunHooks.js +14 -0
- package/dist/{src/index.js → index.d.ts} +0 -1
- package/dist/index.js +3 -0
- package/dist/{src/isTagExpression.d.ts → isTagExpression.d.ts} +0 -1
- package/dist/isTagExpression.js +5 -0
- package/dist/search/FeatureSearch.d.ts +12 -0
- package/dist/search/FeatureSearch.js +39 -0
- package/dist/search/ScenarioLikeSearch.d.ts +19 -0
- package/dist/search/ScenarioLikeSearch.js +37 -0
- package/dist/search/StepSearch.d.ts +11 -0
- package/dist/search/StepSearch.js +40 -0
- package/dist/search/TextSearch.d.ts +11 -0
- package/dist/search/TextSearch.js +67 -0
- package/dist/search/createSearchIndex.d.ts +6 -0
- package/dist/search/createSearchIndex.js +10 -0
- package/dist/search/deriveLineageConstraints.d.ts +7 -0
- package/dist/search/deriveLineageConstraints.js +38 -0
- package/dist/search/filterAndExpandTestCaseEvents.d.ts +20 -0
- package/dist/search/filterAndExpandTestCaseEvents.js +32 -0
- package/dist/search/index.d.ts +6 -0
- package/dist/search/index.js +7 -0
- package/dist/search/pruneGherkinDocuments.d.ts +23 -0
- package/dist/search/pruneGherkinDocuments.js +179 -0
- package/dist/search/pruneTestCaseEvents.d.ts +16 -0
- package/dist/search/pruneTestCaseEvents.js +41 -0
- package/dist/search/types.d.ts +44 -0
- package/dist/search/types.js +2 -0
- package/dist/{src/statuses.d.ts → statuses.d.ts} +0 -1
- package/dist/statuses.js +12 -0
- package/dist/toRepositoryId.d.ts +1 -0
- package/dist/toRepositoryId.js +12 -0
- package/package.json +65 -75
- package/dist/src/CucumberQueryContext.d.ts +0 -5
- package/dist/src/CucumberQueryContext.d.ts.map +0 -1
- package/dist/src/CucumberQueryContext.js +0 -4
- package/dist/src/CucumberQueryContext.js.map +0 -1
- package/dist/src/GherkinQueryContext.d.ts +0 -5
- package/dist/src/GherkinQueryContext.d.ts.map +0 -1
- package/dist/src/GherkinQueryContext.js +0 -4
- package/dist/src/GherkinQueryContext.js.map +0 -1
- package/dist/src/SearchContext.d.ts +0 -13
- package/dist/src/SearchContext.d.ts.map +0 -1
- package/dist/src/SearchContext.js +0 -8
- package/dist/src/SearchContext.js.map +0 -1
- package/dist/src/ciCommitLink.d.ts +0 -3
- package/dist/src/ciCommitLink.d.ts.map +0 -1
- package/dist/src/ciCommitLink.js +0 -12
- package/dist/src/ciCommitLink.js.map +0 -1
- package/dist/src/components/app/CICommitLink.d.ts +0 -6
- package/dist/src/components/app/CICommitLink.d.ts.map +0 -1
- package/dist/src/components/app/CICommitLink.js +0 -21
- package/dist/src/components/app/CICommitLink.js.map +0 -1
- package/dist/src/components/app/CIJobLink.d.ts +0 -6
- package/dist/src/components/app/CIJobLink.d.ts.map +0 -1
- package/dist/src/components/app/CIJobLink.js +0 -14
- package/dist/src/components/app/CIJobLink.js.map +0 -1
- package/dist/src/components/app/ControlledSearchProvider.d.ts.map +0 -1
- package/dist/src/components/app/ControlledSearchProvider.js +0 -17
- package/dist/src/components/app/ControlledSearchProvider.js.map +0 -1
- package/dist/src/components/app/CopyButton.d.ts +0 -5
- package/dist/src/components/app/CopyButton.d.ts.map +0 -1
- package/dist/src/components/app/CopyButton.js +0 -23
- package/dist/src/components/app/CopyButton.js.map +0 -1
- package/dist/src/components/app/DocumentAccordion.d.ts.map +0 -1
- package/dist/src/components/app/DocumentAccordion.js +0 -30
- package/dist/src/components/app/DocumentAccordion.js.map +0 -1
- package/dist/src/components/app/EnvelopesProvider.d.ts +0 -8
- package/dist/src/components/app/EnvelopesProvider.d.ts.map +0 -1
- package/dist/src/components/app/EnvelopesProvider.js +0 -17
- package/dist/src/components/app/EnvelopesProvider.js.map +0 -1
- package/dist/src/components/app/ExecutionSummary.d.ts +0 -3
- package/dist/src/components/app/ExecutionSummary.d.ts.map +0 -1
- package/dist/src/components/app/ExecutionSummary.js +0 -84
- package/dist/src/components/app/ExecutionSummary.js.map +0 -1
- package/dist/src/components/app/FilteredDocuments.d.ts +0 -3
- package/dist/src/components/app/FilteredDocuments.d.ts.map +0 -1
- package/dist/src/components/app/FilteredDocuments.js +0 -15
- package/dist/src/components/app/FilteredDocuments.js.map +0 -1
- package/dist/src/components/app/GherkinDocumentList.d.ts +0 -9
- package/dist/src/components/app/GherkinDocumentList.d.ts.map +0 -1
- package/dist/src/components/app/GherkinDocumentList.js +0 -24
- package/dist/src/components/app/GherkinDocumentList.js.map +0 -1
- package/dist/src/components/app/Header.d.ts.map +0 -1
- package/dist/src/components/app/Header.js +0 -12
- package/dist/src/components/app/Header.js.map +0 -1
- package/dist/src/components/app/HealthChart.d.ts +0 -3
- package/dist/src/components/app/HealthChart.d.ts.map +0 -1
- package/dist/src/components/app/HealthChart.js +0 -15
- package/dist/src/components/app/HealthChart.js.map +0 -1
- package/dist/src/components/app/HighLight.d.ts +0 -9
- package/dist/src/components/app/HighLight.d.ts.map +0 -1
- package/dist/src/components/app/HighLight.js +0 -32
- package/dist/src/components/app/HighLight.js.map +0 -1
- package/dist/src/components/app/ImplementationIcon.d.ts +0 -6
- package/dist/src/components/app/ImplementationIcon.d.ts.map +0 -1
- package/dist/src/components/app/ImplementationIcon.js +0 -10
- package/dist/src/components/app/ImplementationIcon.js.map +0 -1
- package/dist/src/components/app/InMemorySearchProvider.d.ts.map +0 -1
- package/dist/src/components/app/InMemorySearchProvider.js +0 -10
- package/dist/src/components/app/InMemorySearchProvider.js.map +0 -1
- package/dist/src/components/app/NavigationButton.d.ts +0 -3
- package/dist/src/components/app/NavigationButton.d.ts.map +0 -1
- package/dist/src/components/app/NavigationButton.js +0 -6
- package/dist/src/components/app/NavigationButton.js.map +0 -1
- package/dist/src/components/app/OSIcon.d.ts +0 -6
- package/dist/src/components/app/OSIcon.d.ts.map +0 -1
- package/dist/src/components/app/OSIcon.js +0 -18
- package/dist/src/components/app/OSIcon.js.map +0 -1
- package/dist/src/components/app/QueriesProvider.d.ts +0 -10
- package/dist/src/components/app/QueriesProvider.d.ts.map +0 -1
- package/dist/src/components/app/QueriesProvider.js +0 -6
- package/dist/src/components/app/QueriesProvider.js.map +0 -1
- package/dist/src/components/app/Report.d.ts +0 -3
- package/dist/src/components/app/Report.d.ts.map +0 -1
- package/dist/src/components/app/Report.js +0 -19
- package/dist/src/components/app/Report.js.map +0 -1
- package/dist/src/components/app/RuntimeIcon.d.ts +0 -6
- package/dist/src/components/app/RuntimeIcon.d.ts.map +0 -1
- package/dist/src/components/app/RuntimeIcon.js +0 -18
- package/dist/src/components/app/RuntimeIcon.js.map +0 -1
- package/dist/src/components/app/SearchBar.d.ts +0 -3
- package/dist/src/components/app/SearchBar.d.ts.map +0 -1
- package/dist/src/components/app/SearchBar.js +0 -48
- package/dist/src/components/app/SearchBar.js.map +0 -1
- package/dist/src/components/app/StatusesSummary.d.ts +0 -3
- package/dist/src/components/app/StatusesSummary.d.ts.map +0 -1
- package/dist/src/components/app/StatusesSummary.js +0 -19
- package/dist/src/components/app/StatusesSummary.js.map +0 -1
- package/dist/src/components/app/TestRunHooks.d.ts +0 -3
- package/dist/src/components/app/TestRunHooks.d.ts.map +0 -1
- package/dist/src/components/app/TestRunHooks.js +0 -14
- package/dist/src/components/app/TestRunHooks.js.map +0 -1
- package/dist/src/components/app/UrlSearchProvider.d.ts.map +0 -1
- package/dist/src/components/app/UrlSearchProvider.js +0 -26
- package/dist/src/components/app/UrlSearchProvider.js.map +0 -1
- package/dist/src/components/app/findMostSevereTestStepResultStatus.d.ts.map +0 -1
- package/dist/src/components/app/findMostSevereTestStepResultStatus.js +0 -17
- package/dist/src/components/app/findMostSevereTestStepResultStatus.js.map +0 -1
- package/dist/src/components/app/icons/CucumberLogo.d.ts +0 -3
- package/dist/src/components/app/icons/CucumberLogo.d.ts.map +0 -1
- package/dist/src/components/app/icons/CucumberLogo.js +0 -9
- package/dist/src/components/app/icons/CucumberLogo.js.map +0 -1
- package/dist/src/components/app/icons/Jvm.d.ts +0 -3
- package/dist/src/components/app/icons/Jvm.d.ts.map +0 -1
- package/dist/src/components/app/icons/Jvm.js +0 -10
- package/dist/src/components/app/icons/Jvm.js.map +0 -1
- package/dist/src/components/app/icons/Linux.d.ts +0 -3
- package/dist/src/components/app/icons/Linux.d.ts.map +0 -1
- package/dist/src/components/app/icons/Linux.js +0 -20
- package/dist/src/components/app/icons/Linux.js.map +0 -1
- package/dist/src/components/app/icons/MacOS.d.ts +0 -3
- package/dist/src/components/app/icons/MacOS.d.ts.map +0 -1
- package/dist/src/components/app/icons/MacOS.js +0 -6
- package/dist/src/components/app/icons/MacOS.js.map +0 -1
- package/dist/src/components/app/icons/NodeJs.d.ts +0 -3
- package/dist/src/components/app/icons/NodeJs.d.ts.map +0 -1
- package/dist/src/components/app/icons/NodeJs.js +0 -8
- package/dist/src/components/app/icons/NodeJs.js.map +0 -1
- package/dist/src/components/app/icons/Ruby.d.ts +0 -3
- package/dist/src/components/app/icons/Ruby.d.ts.map +0 -1
- package/dist/src/components/app/icons/Ruby.js +0 -6
- package/dist/src/components/app/icons/Ruby.js.map +0 -1
- package/dist/src/components/app/icons/Windows.d.ts +0 -3
- package/dist/src/components/app/icons/Windows.d.ts.map +0 -1
- package/dist/src/components/app/icons/Windows.js +0 -6
- package/dist/src/components/app/icons/Windows.js.map +0 -1
- package/dist/src/components/app/index.d.ts +0 -15
- package/dist/src/components/app/index.d.ts.map +0 -1
- package/dist/src/components/app/index.js.map +0 -1
- package/dist/src/components/app/makeSetupString.d.ts +0 -3
- package/dist/src/components/app/makeSetupString.d.ts.map +0 -1
- package/dist/src/components/app/makeSetupString.js +0 -21
- package/dist/src/components/app/makeSetupString.js.map +0 -1
- package/dist/src/components/app/rehypePlugins.d.ts +0 -4
- package/dist/src/components/app/rehypePlugins.d.ts.map +0 -1
- package/dist/src/components/app/rehypePlugins.js +0 -9
- package/dist/src/components/app/rehypePlugins.js.map +0 -1
- package/dist/src/components/app/remarkPlugins.d.ts +0 -4
- package/dist/src/components/app/remarkPlugins.d.ts.map +0 -1
- package/dist/src/components/app/remarkPlugins.js +0 -4
- package/dist/src/components/app/remarkPlugins.js.map +0 -1
- package/dist/src/components/customise/CustomRendering.d.ts.map +0 -1
- package/dist/src/components/customise/CustomRendering.js +0 -34
- package/dist/src/components/customise/CustomRendering.js.map +0 -1
- package/dist/src/components/customise/CustomRendering.stories.scss +0 -25
- package/dist/src/components/customise/index.d.ts +0 -3
- package/dist/src/components/customise/index.d.ts.map +0 -1
- package/dist/src/components/customise/index.js.map +0 -1
- package/dist/src/components/customise/theming.d.ts.map +0 -1
- package/dist/src/components/customise/theming.js +0 -2
- package/dist/src/components/customise/theming.js.map +0 -1
- package/dist/src/components/gherkin/Anchor.d.ts +0 -4
- package/dist/src/components/gherkin/Anchor.d.ts.map +0 -1
- package/dist/src/components/gherkin/Anchor.js +0 -16
- package/dist/src/components/gherkin/Anchor.js.map +0 -1
- package/dist/src/components/gherkin/Background.d.ts +0 -4
- package/dist/src/components/gherkin/Background.d.ts.map +0 -1
- package/dist/src/components/gherkin/Background.js +0 -24
- package/dist/src/components/gherkin/Background.js.map +0 -1
- package/dist/src/components/gherkin/Children.d.ts +0 -4
- package/dist/src/components/gherkin/Children.d.ts.map +0 -1
- package/dist/src/components/gherkin/Children.js +0 -11
- package/dist/src/components/gherkin/Children.js.map +0 -1
- package/dist/src/components/gherkin/DataTable.d.ts +0 -4
- package/dist/src/components/gherkin/DataTable.d.ts.map +0 -1
- package/dist/src/components/gherkin/DataTable.js +0 -18
- package/dist/src/components/gherkin/DataTable.js.map +0 -1
- package/dist/src/components/gherkin/Description.d.ts +0 -4
- package/dist/src/components/gherkin/Description.d.ts.map +0 -1
- package/dist/src/components/gherkin/Description.js +0 -16
- package/dist/src/components/gherkin/Description.js.map +0 -1
- package/dist/src/components/gherkin/DocString.d.ts +0 -4
- package/dist/src/components/gherkin/DocString.d.ts.map +0 -1
- package/dist/src/components/gherkin/DocString.js +0 -13
- package/dist/src/components/gherkin/DocString.js.map +0 -1
- package/dist/src/components/gherkin/ErrorMessage.d.ts +0 -4
- package/dist/src/components/gherkin/ErrorMessage.d.ts.map +0 -1
- package/dist/src/components/gherkin/ErrorMessage.js +0 -11
- package/dist/src/components/gherkin/ErrorMessage.js.map +0 -1
- package/dist/src/components/gherkin/Examples.d.ts +0 -4
- package/dist/src/components/gherkin/Examples.d.ts.map +0 -1
- package/dist/src/components/gherkin/Examples.js +0 -42
- package/dist/src/components/gherkin/Examples.js.map +0 -1
- package/dist/src/components/gherkin/Feature.d.ts +0 -4
- package/dist/src/components/gherkin/Feature.d.ts.map +0 -1
- package/dist/src/components/gherkin/Feature.js +0 -40
- package/dist/src/components/gherkin/Feature.js.map +0 -1
- package/dist/src/components/gherkin/GherkinDocument.d.ts +0 -4
- package/dist/src/components/gherkin/GherkinDocument.d.ts.map +0 -1
- package/dist/src/components/gherkin/GherkinDocument.js +0 -11
- package/dist/src/components/gherkin/GherkinDocument.js.map +0 -1
- package/dist/src/components/gherkin/Keyword.d.ts +0 -4
- package/dist/src/components/gherkin/Keyword.d.ts.map +0 -1
- package/dist/src/components/gherkin/Keyword.js +0 -11
- package/dist/src/components/gherkin/Keyword.js.map +0 -1
- package/dist/src/components/gherkin/Parameter.d.ts +0 -4
- package/dist/src/components/gherkin/Parameter.d.ts.map +0 -1
- package/dist/src/components/gherkin/Parameter.js +0 -11
- package/dist/src/components/gherkin/Parameter.js.map +0 -1
- package/dist/src/components/gherkin/Rule.d.ts +0 -4
- package/dist/src/components/gherkin/Rule.d.ts.map +0 -1
- package/dist/src/components/gherkin/Rule.js +0 -36
- package/dist/src/components/gherkin/Rule.js.map +0 -1
- package/dist/src/components/gherkin/Scenario.d.ts +0 -4
- package/dist/src/components/gherkin/Scenario.d.ts.map +0 -1
- package/dist/src/components/gherkin/Scenario.js +0 -31
- package/dist/src/components/gherkin/Scenario.js.map +0 -1
- package/dist/src/components/gherkin/StatusIcon.d.ts +0 -4
- package/dist/src/components/gherkin/StatusIcon.d.ts.map +0 -1
- package/dist/src/components/gherkin/StatusIcon.js +0 -24
- package/dist/src/components/gherkin/StatusIcon.js.map +0 -1
- package/dist/src/components/gherkin/StepsList.d.ts +0 -5
- package/dist/src/components/gherkin/StepsList.d.ts.map +0 -1
- package/dist/src/components/gherkin/StepsList.js +0 -6
- package/dist/src/components/gherkin/StepsList.js.map +0 -1
- package/dist/src/components/gherkin/Tags.d.ts +0 -4
- package/dist/src/components/gherkin/Tags.d.ts.map +0 -1
- package/dist/src/components/gherkin/Tags.js +0 -16
- package/dist/src/components/gherkin/Tags.js.map +0 -1
- package/dist/src/components/gherkin/Title.d.ts +0 -4
- package/dist/src/components/gherkin/Title.d.ts.map +0 -1
- package/dist/src/components/gherkin/Title.js +0 -13
- package/dist/src/components/gherkin/Title.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Attachment.d.ts +0 -4
- package/dist/src/components/gherkin/attachment/Attachment.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Attachment.js +0 -48
- package/dist/src/components/gherkin/attachment/Attachment.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Image.d.ts +0 -8
- package/dist/src/components/gherkin/attachment/Image.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Image.js +0 -18
- package/dist/src/components/gherkin/attachment/Image.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Links.d.ts +0 -8
- package/dist/src/components/gherkin/attachment/Links.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Links.js +0 -17
- package/dist/src/components/gherkin/attachment/Links.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Log.d.ts +0 -8
- package/dist/src/components/gherkin/attachment/Log.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Log.js +0 -12
- package/dist/src/components/gherkin/attachment/Log.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Text.d.ts +0 -9
- package/dist/src/components/gherkin/attachment/Text.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Text.js +0 -18
- package/dist/src/components/gherkin/attachment/Text.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Unknown.d.ts +0 -4
- package/dist/src/components/gherkin/attachment/Unknown.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Unknown.js +0 -69
- package/dist/src/components/gherkin/attachment/Unknown.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Video.d.ts +0 -6
- package/dist/src/components/gherkin/attachment/Video.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Video.js +0 -20
- package/dist/src/components/gherkin/attachment/Video.js.map +0 -1
- package/dist/src/components/gherkin/attachment/attachmentFilename.d.ts +0 -3
- package/dist/src/components/gherkin/attachment/attachmentFilename.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/attachmentFilename.js +0 -12
- package/dist/src/components/gherkin/attachment/attachmentFilename.js.map +0 -1
- package/dist/src/components/gherkin/attachment/base64Decode.d.ts +0 -2
- package/dist/src/components/gherkin/attachment/base64Decode.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/base64Decode.js +0 -5
- package/dist/src/components/gherkin/attachment/base64Decode.js.map +0 -1
- package/dist/src/components/gherkin/attachment/index.d.ts +0 -2
- package/dist/src/components/gherkin/attachment/index.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/index.js.map +0 -1
- package/dist/src/components/gherkin/attachment/useText.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/useText.js +0 -28
- package/dist/src/components/gherkin/attachment/useText.js.map +0 -1
- package/dist/src/components/gherkin/composeHookStepTitle.d.ts +0 -3
- package/dist/src/components/gherkin/composeHookStepTitle.d.ts.map +0 -1
- package/dist/src/components/gherkin/composeHookStepTitle.js +0 -23
- package/dist/src/components/gherkin/composeHookStepTitle.js.map +0 -1
- package/dist/src/components/gherkin/composePickleStepTitle.d.ts.map +0 -1
- package/dist/src/components/gherkin/composePickleStepTitle.js +0 -36
- package/dist/src/components/gherkin/composePickleStepTitle.js.map +0 -1
- package/dist/src/components/gherkin/index.d.ts +0 -19
- package/dist/src/components/gherkin/index.d.ts.map +0 -1
- package/dist/src/components/gherkin/index.js.map +0 -1
- package/dist/src/components/gherkin/isNumber.d.ts.map +0 -1
- package/dist/src/components/gherkin/isNumber.js +0 -7
- package/dist/src/components/gherkin/isNumber.js.map +0 -1
- package/dist/src/components/gherkin/statusName.d.ts +0 -4
- package/dist/src/components/gherkin/statusName.d.ts.map +0 -1
- package/dist/src/components/gherkin/statusName.js +0 -4
- package/dist/src/components/gherkin/statusName.js.map +0 -1
- package/dist/src/components/index.d.ts +0 -4
- package/dist/src/components/index.d.ts.map +0 -1
- package/dist/src/components/index.js.map +0 -1
- package/dist/src/components/results/TestCaseOutcome.d.ts +0 -8
- package/dist/src/components/results/TestCaseOutcome.d.ts.map +0 -1
- package/dist/src/components/results/TestCaseOutcome.js +0 -36
- package/dist/src/components/results/TestCaseOutcome.js.map +0 -1
- package/dist/src/components/results/TestRunHookOutcome.d.ts.map +0 -1
- package/dist/src/components/results/TestRunHookOutcome.js +0 -20
- package/dist/src/components/results/TestRunHookOutcome.js.map +0 -1
- package/dist/src/components/results/TestStepAttachments.d.ts +0 -8
- package/dist/src/components/results/TestStepAttachments.d.ts.map +0 -1
- package/dist/src/components/results/TestStepAttachments.js +0 -13
- package/dist/src/components/results/TestStepAttachments.js.map +0 -1
- package/dist/src/components/results/TestStepDuration.d.ts +0 -6
- package/dist/src/components/results/TestStepDuration.d.ts.map +0 -1
- package/dist/src/components/results/TestStepDuration.js +0 -17
- package/dist/src/components/results/TestStepDuration.js.map +0 -1
- package/dist/src/components/results/TestStepOutcome.d.ts.map +0 -1
- package/dist/src/components/results/TestStepOutcome.js +0 -54
- package/dist/src/components/results/TestStepOutcome.js.map +0 -1
- package/dist/src/components/results/TestStepResultDetails.d.ts +0 -4
- package/dist/src/components/results/TestStepResultDetails.d.ts.map +0 -1
- package/dist/src/components/results/TestStepResultDetails.js +0 -16
- package/dist/src/components/results/TestStepResultDetails.js.map +0 -1
- package/dist/src/components/results/index.d.ts +0 -3
- package/dist/src/components/results/index.d.ts.map +0 -1
- package/dist/src/components/results/index.js +0 -3
- package/dist/src/components/results/index.js.map +0 -1
- package/dist/src/formatExecutionDistance.d.ts.map +0 -1
- package/dist/src/formatExecutionDistance.js +0 -7
- package/dist/src/formatExecutionDistance.js.map +0 -1
- package/dist/src/formatExecutionDuration.d.ts.map +0 -1
- package/dist/src/formatExecutionDuration.js +0 -12
- package/dist/src/formatExecutionDuration.js.map +0 -1
- package/dist/src/formatPassedQuantity.d.ts.map +0 -1
- package/dist/src/formatPassedQuantity.js +0 -4
- package/dist/src/formatPassedQuantity.js.map +0 -1
- package/dist/src/formatStatusRate.d.ts.map +0 -1
- package/dist/src/formatStatusRate.js +0 -9
- package/dist/src/formatStatusRate.js.map +0 -1
- package/dist/src/hooks/helpers.d.ts.map +0 -1
- package/dist/src/hooks/helpers.js +0 -7
- package/dist/src/hooks/helpers.js.map +0 -1
- package/dist/src/hooks/index.d.ts +0 -3
- package/dist/src/hooks/index.d.ts.map +0 -1
- package/dist/src/hooks/index.js.map +0 -1
- package/dist/src/hooks/useFilteredDocuments.d.ts +0 -6
- package/dist/src/hooks/useFilteredDocuments.d.ts.map +0 -1
- package/dist/src/hooks/useFilteredDocuments.js +0 -49
- package/dist/src/hooks/useFilteredDocuments.js.map +0 -1
- package/dist/src/hooks/useMostSevereStatusByUri.d.ts.map +0 -1
- package/dist/src/hooks/useMostSevereStatusByUri.js +0 -25
- package/dist/src/hooks/useMostSevereStatusByUri.js.map +0 -1
- package/dist/src/hooks/useQueries.d.ts +0 -7
- package/dist/src/hooks/useQueries.d.ts.map +0 -1
- package/dist/src/hooks/useQueries.js +0 -9
- package/dist/src/hooks/useQueries.js.map +0 -1
- package/dist/src/hooks/useResultStatistics.d.ts.map +0 -1
- package/dist/src/hooks/useResultStatistics.js +0 -24
- package/dist/src/hooks/useResultStatistics.js.map +0 -1
- package/dist/src/hooks/useSearch.d.ts +0 -3
- package/dist/src/hooks/useSearch.d.ts.map +0 -1
- package/dist/src/hooks/useSearch.js +0 -6
- package/dist/src/hooks/useSearch.js.map +0 -1
- package/dist/src/hooks/useTestCaseStarted.d.ts +0 -3
- package/dist/src/hooks/useTestCaseStarted.d.ts.map +0 -1
- package/dist/src/hooks/useTestCaseStarted.js +0 -17
- package/dist/src/hooks/useTestCaseStarted.js.map +0 -1
- package/dist/src/hooks/useTestRunHooks.d.ts.map +0 -1
- package/dist/src/hooks/useTestRunHooks.js +0 -14
- package/dist/src/hooks/useTestRunHooks.js.map +0 -1
- package/dist/src/index.d.ts +0 -3
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/isTagExpression.d.ts.map +0 -1
- package/dist/src/isTagExpression.js +0 -5
- package/dist/src/isTagExpression.js.map +0 -1
- package/dist/src/search/FeatureSearch.d.ts +0 -4
- package/dist/src/search/FeatureSearch.d.ts.map +0 -1
- package/dist/src/search/FeatureSearch.js +0 -45
- package/dist/src/search/FeatureSearch.js.map +0 -1
- package/dist/src/search/ScenarioLikeSearch.d.ts +0 -25
- package/dist/src/search/ScenarioLikeSearch.d.ts.map +0 -1
- package/dist/src/search/ScenarioLikeSearch.js +0 -41
- package/dist/src/search/ScenarioLikeSearch.js.map +0 -1
- package/dist/src/search/Search.d.ts +0 -11
- package/dist/src/search/Search.d.ts.map +0 -1
- package/dist/src/search/Search.js +0 -51
- package/dist/src/search/Search.js.map +0 -1
- package/dist/src/search/StepSearch.d.ts +0 -19
- package/dist/src/search/StepSearch.d.ts.map +0 -1
- package/dist/src/search/StepSearch.js +0 -44
- package/dist/src/search/StepSearch.js.map +0 -1
- package/dist/src/search/TagSearch.d.ts +0 -4
- package/dist/src/search/TagSearch.d.ts.map +0 -1
- package/dist/src/search/TagSearch.js +0 -57
- package/dist/src/search/TagSearch.js.map +0 -1
- package/dist/src/search/TextSearch.d.ts +0 -3
- package/dist/src/search/TextSearch.d.ts.map +0 -1
- package/dist/src/search/TextSearch.js +0 -63
- package/dist/src/search/TextSearch.js.map +0 -1
- package/dist/src/search/index.d.ts +0 -3
- package/dist/src/search/index.d.ts.map +0 -1
- package/dist/src/search/index.js +0 -3
- package/dist/src/search/index.js.map +0 -1
- package/dist/src/search/types.d.ts +0 -14
- package/dist/src/search/types.d.ts.map +0 -1
- package/dist/src/search/types.js +0 -2
- package/dist/src/search/types.js.map +0 -1
- package/dist/src/statuses.d.ts.map +0 -1
- package/dist/src/statuses.js +0 -12
- package/dist/src/statuses.js.map +0 -1
- package/dist/src/toRepositoryId.d.ts +0 -2
- package/dist/src/toRepositoryId.d.ts.map +0 -1
- package/dist/src/toRepositoryId.js +0 -11
- package/dist/src/toRepositoryId.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- /package/dist/{src/components → components}/app/CopyButton.module.scss +0 -0
- /package/dist/{src/components → components}/app/ExecutionSummary.module.scss +0 -0
- /package/dist/{src/components → components}/app/FilteredDocuments.module.scss +0 -0
- /package/dist/{src/components → components}/app/Header.module.scss +0 -0
- /package/dist/{src/components → components}/app/HealthChart.module.scss +0 -0
- /package/dist/{src/components → components}/app/NavigationButton.module.scss +0 -0
- /package/dist/{src/components → components}/app/Report.module.scss +0 -0
- /package/dist/{src/components → components}/app/SearchBar.module.scss +0 -0
- /package/dist/{src/components → components}/app/StatusesSummary.module.scss +0 -0
- /package/dist/{src/components → components}/app/TestRunHooks.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Anchor.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Children.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/DataTable.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Description.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/DocString.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Examples.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Parameter.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/StatusIcon.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/StepsList.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Tags.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Title.module.scss +0 -0
- /package/dist/{src/components → components}/results/TestCaseOutcome.module.scss +0 -0
- /package/dist/{src/components → components}/results/TestRunHookOutcome.module.scss +0 -0
- /package/dist/{src/components → components}/results/TestStepAttachments.module.scss +0 -0
- /package/dist/{src/components → components}/results/TestStepDuration.module.scss +0 -0
- /package/dist/{src/styles → styles}/statuses.scss +0 -0
- /package/dist/{src/styles → styles}/tables.scss +0 -0
- /package/dist/{src/styles → styles}/theming.scss +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { TimeConversion } from '@cucumber/messages';
|
|
3
|
+
import styles from './TestStepDuration.module.scss';
|
|
4
|
+
const subSecondFormat = new Intl.NumberFormat(undefined, {
|
|
5
|
+
maximumFractionDigits: 0,
|
|
6
|
+
});
|
|
7
|
+
const secondPlusFormat = new Intl.NumberFormat(undefined, {
|
|
8
|
+
maximumFractionDigits: 3,
|
|
9
|
+
});
|
|
10
|
+
export const TestStepDuration = ({ duration }) => {
|
|
11
|
+
const millis = TimeConversion.durationToMilliseconds(duration);
|
|
12
|
+
if (millis < 1) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return (_jsx("span", { className: styles.duration, children: millis < 1000
|
|
16
|
+
? `${subSecondFormat.format(millis)}ms`
|
|
17
|
+
: `${secondPlusFormat.format(millis / 1000)}s` }));
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdFN0ZXBEdXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Jlc3VsdHMvVGVzdFN0ZXBEdXJhdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHbEUsT0FBTyxNQUFNLE1BQU0sZ0NBQWdDLENBQUE7QUFFbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtJQUN2RCxxQkFBcUIsRUFBRSxDQUFDO0NBQ3pCLENBQUMsQ0FBQTtBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtJQUN4RCxxQkFBcUIsRUFBRSxDQUFDO0NBQ3pCLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUErQixDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtJQUMzRSxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDOUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxPQUFPLENBQ0wsZUFBTSxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsWUFDN0IsTUFBTSxHQUFHLElBQUk7WUFDWixDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ3ZDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FDM0MsQ0FDUixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEdXJhdGlvbiwgVGltZUNvbnZlcnNpb24gfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IEZDIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9UZXN0U3RlcER1cmF0aW9uLm1vZHVsZS5zY3NzJ1xuXG5jb25zdCBzdWJTZWNvbmRGb3JtYXQgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQodW5kZWZpbmVkLCB7XG4gIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCxcbn0pXG5cbmNvbnN0IHNlY29uZFBsdXNGb3JtYXQgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQodW5kZWZpbmVkLCB7XG4gIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMyxcbn0pXG5cbmV4cG9ydCBjb25zdCBUZXN0U3RlcER1cmF0aW9uOiBGQzx7IGR1cmF0aW9uOiBEdXJhdGlvbiB9PiA9ICh7IGR1cmF0aW9uIH0pID0+IHtcbiAgY29uc3QgbWlsbGlzID0gVGltZUNvbnZlcnNpb24uZHVyYXRpb25Ub01pbGxpc2Vjb25kcyhkdXJhdGlvbilcbiAgaWYgKG1pbGxpcyA8IDEpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuZHVyYXRpb259PlxuICAgICAge21pbGxpcyA8IDEwMDBcbiAgICAgICAgPyBgJHtzdWJTZWNvbmRGb3JtYXQuZm9ybWF0KG1pbGxpcyl9bXNgXG4gICAgICAgIDogYCR7c2Vjb25kUGx1c0Zvcm1hdC5mb3JtYXQobWlsbGlzIC8gMTAwMCl9c2B9XG4gICAgPC9zcGFuPlxuICApXG59XG4iXX0=
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { TestStep, TestStepFinished } from '@cucumber/messages';
|
|
2
|
-
import { FC } from 'react';
|
|
1
|
+
import { type TestStep, type TestStepFinished } from '@cucumber/messages';
|
|
2
|
+
import type { FC } from 'react';
|
|
3
3
|
interface Props {
|
|
4
4
|
testStep: TestStep;
|
|
5
5
|
testStepFinished: TestStepFinished;
|
|
6
6
|
}
|
|
7
7
|
export declare const TestStepOutcome: FC<Props>;
|
|
8
8
|
export {};
|
|
9
|
-
//# sourceMappingURL=TestStepOutcome.d.ts.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { TestStepResultStatus, } from '@cucumber/messages';
|
|
3
|
+
import { useQueries } from '../../hooks/index.js';
|
|
4
|
+
import { composeHookStepTitle } from '../gherkin/composeHookStepTitle.js';
|
|
5
|
+
import { composePickleStepTitle } from '../gherkin/composePickleStepTitle.js';
|
|
6
|
+
import { DataTable, DocString, Keyword, Parameter, StatusIcon } from '../gherkin/index.js';
|
|
7
|
+
import { AmbiguousResult } from './AmbiguousResult.js';
|
|
8
|
+
import { FailedResult } from './FailedResult.js';
|
|
9
|
+
import { PendingResult } from './PendingResult.js';
|
|
10
|
+
import { SkippedResult } from './SkippedResult.js';
|
|
11
|
+
import { TestStepAttachments } from './TestStepAttachments.js';
|
|
12
|
+
import { TestStepDuration } from './TestStepDuration.js';
|
|
13
|
+
import styles from './TestStepOutcome.module.scss';
|
|
14
|
+
import { UndefinedResult } from './UndefinedResult.js';
|
|
15
|
+
export const TestStepOutcome = ({ testStep, testStepFinished }) => {
|
|
16
|
+
return (_jsxs("li", { "data-status": testStepFinished.testStepResult.status, children: [_jsxs("div", { className: styles.header, children: [_jsx("div", { className: styles.status, children: _jsx(StatusIcon, { status: testStepFinished.testStepResult.status }) }), _jsxs("div", { className: styles.title, children: [_jsxs("h3", { className: styles.name, children: [testStep.hookId && _jsx(HookStepTitle, { testStep: testStep }), testStep.pickleStepId && _jsx(PickleStepTitle, { testStep: testStep })] }), _jsx(TestStepDuration, { duration: testStepFinished.testStepResult.duration })] })] }), _jsxs("div", { className: styles.content, children: [testStep.pickleStepId && _jsx(PickleStepArgument, { testStep: testStep }), testStepFinished.testStepResult.status === TestStepResultStatus.AMBIGUOUS && (_jsx(AmbiguousResult, { testStep: testStep })), testStepFinished.testStepResult.status === TestStepResultStatus.FAILED && (_jsx(FailedResult, { result: testStepFinished.testStepResult })), testStepFinished.testStepResult.status === TestStepResultStatus.PENDING && (_jsx(PendingResult, { result: testStepFinished.testStepResult })), testStepFinished.testStepResult.status === TestStepResultStatus.SKIPPED && (_jsx(SkippedResult, { result: testStepFinished.testStepResult })), testStepFinished.testStepResult.status === TestStepResultStatus.UNDEFINED && (_jsx(UndefinedResult, { testStep: testStep })), _jsx(TestStepAttachments, { testStepOrHookFinished: testStepFinished })] })] }));
|
|
17
|
+
};
|
|
18
|
+
const HookStepTitle = ({ testStep }) => {
|
|
19
|
+
const { cucumberQuery } = useQueries();
|
|
20
|
+
const hook = cucumberQuery.findHookBy(testStep);
|
|
21
|
+
return _jsx(_Fragment, { children: composeHookStepTitle(hook) });
|
|
22
|
+
};
|
|
23
|
+
const PickleStepTitle = ({ testStep }) => {
|
|
24
|
+
const { cucumberQuery } = useQueries();
|
|
25
|
+
const pickleStep = cucumberQuery.findPickleStepBy(testStep);
|
|
26
|
+
const step = cucumberQuery.findStepBy(pickleStep);
|
|
27
|
+
return (_jsxs(_Fragment, { children: [_jsx(Keyword, { children: step?.keyword?.trim() }), composePickleStepTitle(pickleStep.text, testStep.stepMatchArgumentsLists).map((fragment, index) => {
|
|
28
|
+
if (fragment.parameterTypeName) {
|
|
29
|
+
return (_jsx(Parameter, { value: fragment.value, parameterTypeName: fragment.parameterTypeName, children: fragment.value }, index));
|
|
30
|
+
}
|
|
31
|
+
return _jsx("span", { children: fragment.value }, index);
|
|
32
|
+
})] }));
|
|
33
|
+
};
|
|
34
|
+
const PickleStepArgument = ({ testStep }) => {
|
|
35
|
+
const { cucumberQuery } = useQueries();
|
|
36
|
+
const pickleStep = cucumberQuery.findPickleStepBy(testStep);
|
|
37
|
+
if (pickleStep.argument?.docString) {
|
|
38
|
+
return _jsx(DocString, { docString: pickleStep.argument.docString });
|
|
39
|
+
}
|
|
40
|
+
if (pickleStep.argument?.dataTable) {
|
|
41
|
+
return _jsx(DataTable, { dataTable: pickleStep.argument.dataTable });
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdFN0ZXBPdXRjb21lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVzdWx0cy9UZXN0U3RlcE91dGNvbWUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBSUwsb0JBQW9CLEdBQ3JCLE1BQU0sb0JBQW9CLENBQUE7QUFHM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3hELE9BQU8sTUFBTSxNQUFNLCtCQUErQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQU90RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUU7SUFDM0UsT0FBTyxDQUNMLDZCQUFpQixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxhQUNyRCxlQUFLLFNBQVMsRUFBRSxNQUFNLENBQUMs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QUFTLElBRVIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQ3JCLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsWUFFNUMsUUFBUSxDQUFDLEtBQUssSUFKVixLQUFLLENBS0EsQ0FDYixDQUFBO2dCQUNILENBQUM7Z0JBQ0QsT0FBTyx5QkFBbUIsUUFBUSxDQUFDLEtBQUssSUFBdEIsS0FBSyxDQUF5QixDQUFBO1lBQ2xELENBQUMsQ0FDRixJQUNBLENBQ0osQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sa0JBQWtCLEdBQStCLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO0lBQ3RFLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUN0QyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFlLENBQUE7SUFDekUsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBQyxTQUFTLElBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFJLENBQUE7SUFDaEUsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEtBQUMsU0FBUyxJQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBSSxDQUFBO0lBQ2hFLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgUGlja2xlU3RlcCxcbiAgdHlwZSBUZXN0U3RlcCxcbiAgdHlwZSBUZXN0U3RlcEZpbmlzaGVkLFxuICBUZXN0U3RlcFJlc3VsdFN0YXR1cyxcbn0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBGQyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VRdWVyaWVzIH0gZnJvbSAnLi4vLi4vaG9va3MvaW5kZXguanMnXG5pbXBvcnQgeyBjb21wb3NlSG9va1N0ZXBUaXRsZSB9IGZyb20gJy4uL2doZXJraW4vY29tcG9zZUhvb2tTdGVwVGl0bGUuanMnXG5pbXBvcnQgeyBjb21wb3NlUGlja2xlU3RlcFRpdGxlIH0gZnJvbSAnLi4vZ2hlcmtpbi9jb21wb3NlUGlja2xlU3RlcFRpdGxlLmpzJ1xuaW1wb3J0IHsgRGF0YVRhYmxlLCBEb2NTdHJpbmcsIEtleXdvcmQsIFBhcmFtZXRlciwgU3RhdHVzSWNvbiB9IGZyb20gJy4uL2doZXJraW4vaW5kZXguanMnXG5pbXBvcnQgeyBBbWJpZ3VvdXNSZXN1bHQgfSBmcm9tICcuL0FtYmlndW91c1Jlc3VsdC5qcydcbmltcG9ydCB7IEZhaWxlZFJlc3VsdCB9IGZyb20gJy4vRmFpbGVkUmVzdWx0LmpzJ1xuaW1wb3J0IHsgUGVuZGluZ1Jlc3VsdCB9IGZyb20gJy4vUGVuZGluZ1Jlc3VsdC5qcydcbmltcG9ydCB7IFNraXBwZWRSZXN1bHQgfSBmcm9tICcuL1NraXBwZWRSZXN1bHQuanMnXG5pbXBvcnQgeyBUZXN0U3RlcEF0dGFjaG1lbnRzIH0gZnJvbSAnLi9UZXN0U3RlcEF0dGFjaG1lbnRzLmpzJ1xuaW1wb3J0IHsgVGVzdFN0ZXBEdXJhdGlvbiB9IGZyb20gJy4vVGVzdFN0ZXBEdXJhdGlvbi5qcydcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9UZXN0U3RlcE91dGNvbWUubW9kdWxlLnNjc3MnXG5pbXBvcnQgeyBVbmRlZmluZWRSZXN1bHQgfSBmcm9tICcuL1VuZGVmaW5lZFJlc3VsdC5qcydcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgdGVzdFN0ZXA6IFRlc3RTdGVwXG4gIHRlc3RTdGVwRmluaXNoZWQ6IFRlc3RTdGVwRmluaXNoZWRcbn1cblxuZXhwb3J0IGNvbnN0IFRlc3RTdGVwT3V0Y29tZTogRkM8UHJvcHM+ID0gKHsgdGVzdFN0ZXAsIHRlc3RTdGVwRmluaXNoZWQgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaSBkYXRhLXN0YXR1cz17dGVzdFN0ZXBGaW5pc2hlZC50ZXN0U3RlcFJlc3VsdC5zdGF0dXN9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnN0YXR1c30+XG4gICAgICAgICAgPFN0YXR1c0ljb24gc3RhdHVzPXt0ZXN0U3RlcEZpbmlzaGVkLnRlc3RTdGVwUmVzdWx0LnN0YXR1c30gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudGl0bGV9PlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9e3N0eWxlcy5uYW1lfT5cbiAgICAgICAgICAgIHt0ZXN0U3RlcC5ob29rSWQgJiYgPEhvb2tTdGVwVGl0bGUgdGVzdFN0ZXA9e3Rlc3RTdGVwfSAvPn1cbiAgICAgICAgICAgIHt0ZXN0U3RlcC5waWNrbGVTdGVwSWQgJiYgPFBpY2tsZVN0ZXBUaXRsZSB0ZXN0U3RlcD17dGVzdFN0ZXB9IC8+fVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPFRlc3RTdGVwRHVyYXRpb24gZHVyYXRpb249e3Rlc3RTdGVwRmluaXNoZWQudGVzdFN0ZXBSZXN1bHQuZHVyYXRpb259IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRlbnR9PlxuICAgICAgICB7dGVzdFN0ZXAucGlja2xlU3RlcElkICYmIDxQaWNrbGVTdGVwQXJndW1lbnQgdGVzdFN0ZXA9e3Rlc3RTdGVwfSAvPn1cbiAgICAgICAge3Rlc3RTdGVwRmluaXNoZWQudGVzdFN0ZXBSZXN1bHQuc3RhdHVzID09PSBUZXN0U3RlcFJlc3VsdFN0YXR1cy5BTUJJR1VPVVMgJiYgKFxuICAgICAgICAgIDxBbWJpZ3VvdXNSZXN1bHQgdGVzdFN0ZXA9e3Rlc3RTdGVwfSAvPlxuICAgICAgICApfVxuICAgICAgICB7dGVzdFN0ZXBGaW5pc2hlZC50ZXN0U3RlcFJlc3VsdC5zdGF0dXMgPT09IFRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRCAmJiAoXG4gICAgICAgICAgPEZhaWxlZFJlc3VsdCByZXN1bHQ9e3Rlc3RTdGVwRmluaXNoZWQudGVzdFN0ZXBSZXN1bHR9IC8+XG4gICAgICAgICl9XG4gICAgICAgIHt0ZXN0U3RlcEZpbmlzaGVkLnRlc3RTdGVwUmVzdWx0LnN0YXR1cyA9PT0gVGVzdFN0ZXBSZXN1bHRTdGF0dXMuUEVORElORyAmJiAoXG4gICAgICAgICAgPFBlbmRpbmdSZXN1bHQgcmVzdWx0PXt0ZXN0U3RlcEZpbmlzaGVkLnRlc3RTdGVwUmVzdWx0fSAvPlxuICAgICAgICApfVxuICAgICAgICB7dGVzdFN0ZXBGaW5pc2hlZC50ZXN0U3RlcFJlc3VsdC5zdGF0dXMgPT09IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRUQgJiYgKFxuICAgICAgICAgIDxTa2lwcGVkUmVzdWx0IHJlc3VsdD17dGVzdFN0ZXBGaW5pc2hlZC50ZXN0U3RlcFJlc3VsdH0gLz5cbiAgICAgICAgKX1cbiAgICAgICAge3Rlc3RTdGVwRmluaXNoZWQudGVzdFN0ZXBSZXN1bHQuc3RhdHVzID09PSBUZXN0U3RlcFJlc3VsdFN0YXR1cy5VTkRFRklORUQgJiYgKFxuICAgICAgICAgIDxVbmRlZmluZWRSZXN1bHQgdGVzdFN0ZXA9e3Rlc3RTdGVwfSAvPlxuICAgICAgICApfVxuICAgICAgICA8VGVzdFN0ZXBBdHRhY2htZW50cyB0ZXN0U3RlcE9ySG9va0ZpbmlzaGVkPXt0ZXN0U3RlcEZpbmlzaGVkfSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgKVxufVxuXG5jb25zdCBIb29rU3RlcFRpdGxlOiBGQzx7IHRlc3RTdGVwOiBUZXN0U3RlcCB9PiA9ICh7IHRlc3RTdGVwIH0pID0+IHtcbiAgY29uc3QgeyBjdWN1bWJlclF1ZXJ5IH0gPSB1c2VRdWVyaWVzKClcbiAgY29uc3QgaG9vayA9IGN1Y3VtYmVyUXVlcnkuZmluZEhvb2tCeSh0ZXN0U3RlcClcbiAgcmV0dXJuIDw+e2NvbXBvc2VIb29rU3RlcFRpdGxlKGhvb2spfTwvPlxufVxuXG5jb25zdCBQaWNrbGVTdGVwVGl0bGU6IEZDPHsgdGVzdFN0ZXA6IFRlc3RTdGVwIH0+ID0gKHsgdGVzdFN0ZXAgfSkgPT4ge1xuICBjb25zdCB7IGN1Y3VtYmVyUXVlcnkgfSA9IHVzZVF1ZXJpZXMoKVxuICBjb25zdCBwaWNrbGVTdGVwID0gY3VjdW1iZXJRdWVyeS5maW5kUGlja2xlU3RlcEJ5KHRlc3RTdGVwKSBhcyBQaWNrbGVTdGVwXG4gIGNvbnN0IHN0ZXAgPSBjdWN1bWJlclF1ZXJ5LmZpbmRTdGVwQnkocGlja2xlU3RlcClcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEtleXdvcmQ+e3N0ZXA/LmtleXdvcmQ/LnRyaW0oKX08L0tleXdvcmQ+XG4gICAgICB7Y29tcG9zZVBpY2tsZVN0ZXBUaXRsZShwaWNrbGVTdGVwLnRleHQsIHRlc3RTdGVwLnN0ZXBNYXRjaEFyZ3VtZW50c0xpc3RzKS5tYXAoXG4gICAgICAgIChmcmFnbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICBpZiAoZnJhZ21lbnQucGFyYW1ldGVyVHlwZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxQYXJhbWV0ZXJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgIHZhbHVlPXtmcmFnbWVudC52YWx1ZX1cbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJUeXBlTmFtZT17ZnJhZ21lbnQucGFyYW1ldGVyVHlwZU5hbWV9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZnJhZ21lbnQudmFsdWV9XG4gICAgICAgICAgICAgIDwvUGFyYW1ldGVyPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gPHNwYW4ga2V5PXtpbmRleH0+e2ZyYWdtZW50LnZhbHVlfTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxufVxuXG5jb25zdCBQaWNrbGVTdGVwQXJndW1lbnQ6IEZDPHsgdGVzdFN0ZXA6IFRlc3RTdGVwIH0+ID0gKHsgdGVzdFN0ZXAgfSkgPT4ge1xuICBjb25zdCB7IGN1Y3VtYmVyUXVlcnkgfSA9IHVzZVF1ZXJpZXMoKVxuICBjb25zdCBwaWNrbGVTdGVwID0gY3VjdW1iZXJRdWVyeS5maW5kUGlja2xlU3RlcEJ5KHRlc3RTdGVwKSBhcyBQaWNrbGVTdGVwXG4gIGlmIChwaWNrbGVTdGVwLmFyZ3VtZW50Py5kb2NTdHJpbmcpIHtcbiAgICByZXR1cm4gPERvY1N0cmluZyBkb2NTdHJpbmc9e3BpY2tsZVN0ZXAuYXJndW1lbnQuZG9jU3RyaW5nfSAvPlxuICB9XG4gIGlmIChwaWNrbGVTdGVwLmFyZ3VtZW50Py5kYXRhVGFibGUpIHtcbiAgICByZXR1cm4gPERhdGFUYWJsZSBkYXRhVGFibGU9e3BpY2tsZVN0ZXAuYXJndW1lbnQuZGF0YVRhYmxlfSAvPlxuICB9XG4gIHJldHVybiBudWxsXG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ensure } from '../../ensure.js';
|
|
3
|
+
import { useQueries } from '../../hooks/index.js';
|
|
4
|
+
import { ResultNote } from './ResultNote.js';
|
|
5
|
+
import styles from './UndefinedResult.module.scss';
|
|
6
|
+
export const UndefinedResult = ({ testStep }) => {
|
|
7
|
+
const { cucumberQuery } = useQueries();
|
|
8
|
+
const pickleStep = ensure(cucumberQuery.findPickleStepBy(testStep), 'Expected TestStep with UNDEFINED status to have a PickleStep');
|
|
9
|
+
const snippets = cucumberQuery
|
|
10
|
+
.findSuggestionsBy(pickleStep)
|
|
11
|
+
.flatMap((suggestion) => suggestion.snippets);
|
|
12
|
+
if (snippets.length === 0) {
|
|
13
|
+
return _jsx(ResultNote, { children: "No step definition found." });
|
|
14
|
+
}
|
|
15
|
+
const concatenatedCode = snippets.map((snippet) => snippet.code).join('\n\n');
|
|
16
|
+
return (_jsxs(_Fragment, { children: [_jsx(ResultNote, { children: "No step definition found. Implement with the snippet(s) below:" }), _jsx("pre", { className: styles.snippets, children: _jsx("code", { children: concatenatedCode }) })] }));
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5kZWZpbmVkUmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVzdWx0cy9VbmRlZmluZWRSZXN1bHQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM1QyxPQUFPLE1BQU0sTUFBTSwrQkFBK0IsQ0FBQTtBQU1sRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7SUFDekQsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFBO0lBQ3RDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FDdkIsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUN4Qyw4REFBOEQsQ0FDL0QsQ0FBQTtJQUNELE1BQU0sUUFBUSxHQUFHLGFBQWE7U0FDM0IsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1NBQzdCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUMsVUFBVSw0Q0FBdUMsQ0FBQTtJQUMzRCxDQUFDO0lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdFLE9BQU8sQ0FDTCw4QkFDRSxLQUFDLFVBQVUsaUZBQTRFLEVBQ3ZGLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLFlBQzdCLHlCQUFPLGdCQUFnQixHQUFRLEdBQzNCLElBQ0wsQ0FDSixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZXN0U3RlcCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB0eXBlIHsgRkMgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgZW5zdXJlIH0gZnJvbSAnLi4vLi4vZW5zdXJlLmpzJ1xuaW1wb3J0IHsgdXNlUXVlcmllcyB9IGZyb20gJy4uLy4uL2hvb2tzL2luZGV4LmpzJ1xuaW1wb3J0IHsgUmVzdWx0Tm90ZSB9IGZyb20gJy4vUmVzdWx0Tm90ZS5qcydcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9VbmRlZmluZWRSZXN1bHQubW9kdWxlLnNjc3MnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIHRlc3RTdGVwOiBUZXN0U3RlcFxufVxuXG5leHBvcnQgY29uc3QgVW5kZWZpbmVkUmVzdWx0OiBGQzxQcm9wcz4gPSAoeyB0ZXN0U3RlcCB9KSA9PiB7XG4gIGNvbnN0IHsgY3VjdW1iZXJRdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IHBpY2tsZVN0ZXAgPSBlbnN1cmUoXG4gICAgY3VjdW1iZXJRdWVyeS5maW5kUGlja2xlU3RlcEJ5KHRlc3RTdGVwKSxcbiAgICAnRXhwZWN0ZWQgVGVzdFN0ZXAgd2l0aCBVTkRFRklORUQgc3RhdHVzIHRvIGhhdmUgYSBQaWNrbGVTdGVwJ1xuICApXG4gIGNvbnN0IHNuaXBwZXRzID0gY3VjdW1iZXJRdWVyeVxuICAgIC5maW5kU3VnZ2VzdGlvbnNCeShwaWNrbGVTdGVwKVxuICAgIC5mbGF0TWFwKChzdWdnZXN0aW9uKSA9PiBzdWdnZXN0aW9uLnNuaXBwZXRzKVxuICBpZiAoc25pcHBldHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIDxSZXN1bHROb3RlPk5vIHN0ZXAgZGVmaW5pdGlvbiBmb3VuZC48L1Jlc3VsdE5vdGU+XG4gIH1cbiAgY29uc3QgY29uY2F0ZW5hdGVkQ29kZSA9IHNuaXBwZXRzLm1hcCgoc25pcHBldCkgPT4gc25pcHBldC5jb2RlKS5qb2luKCdcXG5cXG4nKVxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8UmVzdWx0Tm90ZT5ObyBzdGVwIGRlZmluaXRpb24gZm91bmQuIEltcGxlbWVudCB3aXRoIHRoZSBzbmlwcGV0KHMpIGJlbG93OjwvUmVzdWx0Tm90ZT5cbiAgICAgIDxwcmUgY2xhc3NOYW1lPXtzdHlsZXMuc25pcHBldHN9PlxuICAgICAgICA8Y29kZT57Y29uY2F0ZW5hdGVkQ29kZX08L2NvZGU+XG4gICAgICA8L3ByZT5cbiAgICA8Lz5cbiAgKVxufVxuIl19
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
@use '../../styles/theming';
|
|
2
2
|
|
|
3
|
-
.
|
|
3
|
+
.snippets {
|
|
4
|
+
position: relative;
|
|
4
5
|
white-space: pre-wrap;
|
|
6
|
+
width: fit-content;
|
|
5
7
|
font-size: 0.875em;
|
|
6
8
|
padding: 0.666em 0.75em;
|
|
7
9
|
border-radius: 0.25em;
|
|
8
10
|
margin: 0;
|
|
9
11
|
overflow-x: auto;
|
|
10
|
-
background-color: theming.$
|
|
11
|
-
color: theming.$
|
|
12
|
+
background-color: theming.$codeBackgroundColor;
|
|
13
|
+
color: theming.$codeTextColor;
|
|
12
14
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './FailedResult.js';
|
|
2
|
+
export * from './TestCaseOutcome.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9yZXN1bHRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vRmFpbGVkUmVzdWx0LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9UZXN0Q2FzZU91dGNvbWUuanMnXG4iXX0=
|
package/dist/ensure.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function ensure(value, message) {
|
|
2
|
+
if (!value) {
|
|
3
|
+
throw new Error(message);
|
|
4
|
+
}
|
|
5
|
+
return value;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vuc3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsTUFBTSxDQUFJLEtBQW9CLEVBQUUsT0FBZTtJQUM3RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5zdXJlPFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkLCBtZXNzYWdlOiBzdHJpbmcpOiBUIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG4gIHJldHVybiB2YWx1ZVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { formatDistanceStrict } from 'date-fns';
|
|
2
|
+
export function formatExecutionDistance(date, referenceDate = new Date()) {
|
|
3
|
+
return formatDistanceStrict(date, referenceDate, {
|
|
4
|
+
addSuffix: true,
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0RXhlY3V0aW9uRGlzdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9ybWF0RXhlY3V0aW9uRGlzdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRS9DLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxJQUFVLEVBQUUsYUFBYSxHQUFTLElBQUksSUFBSSxFQUFFO0lBQ2xGLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtRQUMvQyxTQUFTLEVBQUUsSUFBSTtLQUNoQixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGlzdGFuY2VTdHJpY3QgfSBmcm9tICdkYXRlLWZucydcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEV4ZWN1dGlvbkRpc3RhbmNlKGRhdGU6IERhdGUsIHJlZmVyZW5jZURhdGU6IERhdGUgPSBuZXcgRGF0ZSgpKSB7XG4gIHJldHVybiBmb3JtYXREaXN0YW5jZVN0cmljdChkYXRlLCByZWZlcmVuY2VEYXRlLCB7XG4gICAgYWRkU3VmZml4OiB0cnVlLFxuICB9KVxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { formatDuration, intervalToDuration } from 'date-fns';
|
|
2
|
+
export function formatExecutionDuration(startDate, finishDate) {
|
|
3
|
+
const inMilllis = finishDate.getTime() - startDate.getTime();
|
|
4
|
+
// if under 10s, use 0.01s precision, otherwise 1s is fine
|
|
5
|
+
if (inMilllis < 10000) {
|
|
6
|
+
return `${new Intl.NumberFormat(undefined, {
|
|
7
|
+
maximumFractionDigits: 2,
|
|
8
|
+
}).format(inMilllis / 1000)} seconds`;
|
|
9
|
+
}
|
|
10
|
+
return formatDuration(intervalToDuration({ start: startDate, end: finishDate }), {});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0RXhlY3V0aW9uRHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9ybWF0RXhlY3V0aW9uRHVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUU3RCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBZSxFQUFFLFVBQWdCO0lBQ3ZFLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDNUQsMERBQTBEO0lBQzFELElBQUksU0FBUyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3RCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFO1lBQ3pDLHFCQUFxQixFQUFFLENBQUM7U0FDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN2QyxDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3RGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREdXJhdGlvbiwgaW50ZXJ2YWxUb0R1cmF0aW9uIH0gZnJvbSAnZGF0ZS1mbnMnXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFeGVjdXRpb25EdXJhdGlvbihzdGFydERhdGU6IERhdGUsIGZpbmlzaERhdGU6IERhdGUpIHtcbiAgY29uc3QgaW5NaWxsbGlzID0gZmluaXNoRGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpXG4gIC8vIGlmIHVuZGVyIDEwcywgdXNlIDAuMDFzIHByZWNpc2lvbiwgb3RoZXJ3aXNlIDFzIGlzIGZpbmVcbiAgaWYgKGluTWlsbGxpcyA8IDEwMDAwKSB7XG4gICAgcmV0dXJuIGAke25ldyBJbnRsLk51bWJlckZvcm1hdCh1bmRlZmluZWQsIHtcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICB9KS5mb3JtYXQoaW5NaWxsbGlzIC8gMTAwMCl9IHNlY29uZHNgXG4gIH1cbiAgcmV0dXJuIGZvcm1hdER1cmF0aW9uKGludGVydmFsVG9EdXJhdGlvbih7IHN0YXJ0OiBzdGFydERhdGUsIGVuZDogZmluaXNoRGF0ZSB9KSwge30pXG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function formatPassedQuantity(passed, total) {
|
|
2
|
+
return `(${passed} / ${total})`;
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0UGFzc2VkUXVhbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9ybWF0UGFzc2VkUXVhbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxLQUFhO0lBQ2hFLE9BQU8sSUFBSSxNQUFNLE1BQU0sS0FBSyxHQUFHLENBQUE7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBmb3JtYXRQYXNzZWRRdWFudGl0eShwYXNzZWQ6IG51bWJlciwgdG90YWw6IG51bWJlcikge1xuICByZXR1cm4gYCgke3Bhc3NlZH0gLyAke3RvdGFsfSlgXG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function formatStatusRate(passed, total) {
|
|
2
|
+
const percentPassed = total > 0 ? passed / total : 0;
|
|
3
|
+
const roundedDown = Math.floor(percentPassed * 1000) / 1000;
|
|
4
|
+
return new Intl.NumberFormat(undefined, {
|
|
5
|
+
style: 'percent',
|
|
6
|
+
maximumFractionDigits: 1,
|
|
7
|
+
}).format(roundedDown);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0U3RhdHVzUmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtYXRTdGF0dXNSYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsS0FBYTtJQUM1RCxNQUFNLGFBQWEsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBRTNELE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtRQUN0QyxLQUFLLEVBQUUsU0FBUztRQUNoQixxQkFBcUIsRUFBRSxDQUFDO0tBQ3pCLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTdGF0dXNSYXRlKHBhc3NlZDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKSB7XG4gIGNvbnN0IHBlcmNlbnRQYXNzZWQgPSB0b3RhbCA+IDAgPyBwYXNzZWQgLyB0b3RhbCA6IDBcbiAgY29uc3Qgcm91bmRlZERvd24gPSBNYXRoLmZsb29yKHBlcmNlbnRQYXNzZWQgKiAxMDAwKSAvIDEwMDBcblxuICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KHVuZGVmaW5lZCwge1xuICAgIHN0eWxlOiAncGVyY2VudCcsXG4gICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAxLFxuICB9KS5mb3JtYXQocm91bmRlZERvd24pXG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './useQueries.js';
|
|
2
|
+
export * from './useSearch.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGdCQUFnQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91c2VRdWVyaWVzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi91c2VTZWFyY2guanMnXG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { deriveLineageConstraints, filterAndExpandTestCaseEvents, pruneGherkinDocuments, } from '../search/index.js';
|
|
3
|
+
import { useQueries } from './useQueries.js';
|
|
4
|
+
import { useSearch } from './useSearch.js';
|
|
5
|
+
import { useSearchResult } from './useSearchResult.js';
|
|
6
|
+
export function useFilteredDocuments() {
|
|
7
|
+
const { cucumberQuery, gherkinQuery } = useQueries();
|
|
8
|
+
const allTestCasesStarted = useMemo(() => cucumberQuery.findAllTestCaseStarted(), [cucumberQuery]);
|
|
9
|
+
const gherkinDocuments = useMemo(() => gherkinQuery.getGherkinDocuments(), [gherkinQuery]);
|
|
10
|
+
const { hideStatuses, tagExpression, unchanged } = useSearch();
|
|
11
|
+
const lineageConstraints = useMemo(() => deriveLineageConstraints(filterAndExpandTestCaseEvents(cucumberQuery, allTestCasesStarted, {
|
|
12
|
+
hideStatuses,
|
|
13
|
+
tagExpression,
|
|
14
|
+
})), [allTestCasesStarted, cucumberQuery, hideStatuses, tagExpression]);
|
|
15
|
+
const searchResult = useSearchResult();
|
|
16
|
+
const [results, setResults] = useState();
|
|
17
|
+
const setResultsSorting = useCallback((unsorted) => {
|
|
18
|
+
const sorted = [...unsorted];
|
|
19
|
+
sorted.sort((a, b) => comparePaths(a.uri || '', b.uri || ''));
|
|
20
|
+
setResults(sorted);
|
|
21
|
+
}, []);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
switch (searchResult.status) {
|
|
24
|
+
case 'WAITING':
|
|
25
|
+
// results are not ready yet - leave them as they are
|
|
26
|
+
return;
|
|
27
|
+
case 'NOOP':
|
|
28
|
+
case 'ERROR':
|
|
29
|
+
// no narrowing to apply
|
|
30
|
+
setResultsSorting(pruneGherkinDocuments(gherkinDocuments, lineageConstraints));
|
|
31
|
+
return;
|
|
32
|
+
case 'SUCCESS':
|
|
33
|
+
setResultsSorting(pruneGherkinDocuments(gherkinDocuments, lineageConstraints, searchResult.hits));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}, [gherkinDocuments, lineageConstraints, searchResult, setResultsSorting]);
|
|
37
|
+
return {
|
|
38
|
+
results,
|
|
39
|
+
filtered: !unchanged,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Helper function for sorting directories
|
|
43
|
+
function comparePaths(uriA, uriB) {
|
|
44
|
+
// Assumes that last part of every uri is a file
|
|
45
|
+
const partsA = uriA.split('/');
|
|
46
|
+
const partsB = uriB.split('/');
|
|
47
|
+
const minLength = Math.min(partsA.length, partsB.length);
|
|
48
|
+
for (let i = 0; i < minLength; i++) {
|
|
49
|
+
const partA = partsA[i];
|
|
50
|
+
const partB = partsB[i];
|
|
51
|
+
if (partA !== partB) {
|
|
52
|
+
const isALast = i === partsA.length - 1;
|
|
53
|
+
const isBLast = i === partsB.length - 1;
|
|
54
|
+
if (isALast && !isBLast) {
|
|
55
|
+
return 1; // A is file and B is directory -> B comes first
|
|
56
|
+
}
|
|
57
|
+
if (!isALast && isBLast) {
|
|
58
|
+
return -1; // A is directory and B is file -> A comes first
|
|
59
|
+
}
|
|
60
|
+
// Both are files or both are directories -> Alphabetical sorting
|
|
61
|
+
return partA.localeCompare(partB);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// If one path is prefix of other then shorter path comes first
|
|
65
|
+
return partsA.length - partsB.length;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmlsdGVyZWREb2N1bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRmlsdGVyZWREb2N1bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFpQixXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDaEYsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0IscUJBQXFCLEdBQ3RCLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFdEQsTUFBTSxVQUFVLG9CQUFvQjtJQUlsQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFBO0lBQ3BELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUNsRyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFDMUYsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUE7SUFDOUQsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQ2hDLEdBQUcsRUFBRSxDQUNILHdCQUF3QixDQUN0Qiw2QkFBNkIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUU7UUFDaEUsWUFBWTtRQUNaLGFBQWE7S0FDZCxDQUFDLENBQ0gsRUFDSCxDQUFDLG1C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QUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUE7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR2hlcmtpbkRvY3VtZW50IH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgdHlwZSBEaXNwYXRjaCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGRlcml2ZUxpbmVhZ2VDb25zdHJhaW50cyxcbiAgZmlsdGVyQW5kRXhwYW5kVGVzdENhc2VFdmVudHMsXG4gIHBydW5lR2hlcmtpbkRvY3VtZW50cyxcbn0gZnJvbSAnLi4vc2VhcmNoL2luZGV4LmpzJ1xuaW1wb3J0IHsgdXNlUXVlcmllcyB9IGZyb20gJy4vdXNlUXVlcmllcy5qcydcbmltcG9ydCB7IHVzZVNlYXJjaCB9IGZyb20gJy4vdXNlU2VhcmNoLmpzJ1xuaW1wb3J0IHsgdXNlU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi91c2VTZWFyY2hSZXN1bHQuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VGaWx0ZXJlZERvY3VtZW50cygpOiB7XG4gIHJlc3VsdHM/OiBSZWFkb25seUFycmF5PEdoZXJraW5Eb2N1bWVudD5cbiAgZmlsdGVyZWQ6IGJvb2xlYW5cbn0ge1xuICBjb25zdCB7IGN1Y3VtYmVyUXVlcnksIGdoZXJraW5RdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IGFsbFRlc3RDYXNlc1N0YXJ0ZWQgPSB1c2VNZW1vKCgpID0+IGN1Y3VtYmVyUXVlcnkuZmluZEFsbFRlc3RDYXNlU3RhcnRlZCgpLCBbY3VjdW1iZXJRdWVyeV0pXG4gIGNvbnN0IGdoZXJraW5Eb2N1bWVudHMgPSB1c2VNZW1vKCgpID0+IGdoZXJraW5RdWVyeS5nZXRHaGVya2luRG9jdW1lbnRzKCksIFtnaGVya2luUXVlcnldKVxuICBjb25zdCB7IGhpZGVTdGF0dXNlcywgdGFnRXhwcmVzc2lvbiwgdW5jaGFuZ2VkIH0gPSB1c2VTZWFyY2goKVxuICBjb25zdCBsaW5lYWdlQ29uc3RyYWludHMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBkZXJpdmVMaW5lYWdlQ29uc3RyYWludHMoXG4gICAgICAgIGZpbHRlckFuZEV4cGFuZFRlc3RDYXNlRXZlbnRzKGN1Y3VtYmVyUXVlcnksIGFsbFRlc3RDYXNlc1N0YXJ0ZWQsIHtcbiAgICAgICAgICBoaWRlU3RhdHVzZXMsXG4gICAgICAgICAgdGFnRXhwcmVzc2lvbixcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgW2FsbFRlc3RDYXNlc1N0YXJ0ZWQsIGN1Y3VtYmVyUXVlcnksIGhpZGVTdGF0dXNlcywgdGFnRXhwcmVzc2lvbl1cbiAgKVxuICBjb25zdCBzZWFyY2hSZXN1bHQgPSB1c2VTZWFyY2hSZXN1bHQoKVxuICBjb25zdCBbcmVzdWx0cywgc2V0UmVzdWx0c10gPSB1c2VTdGF0ZTxSZWFkb25seUFycmF5PEdoZXJraW5Eb2N1bWVudD4+KClcbiAgY29uc3Qgc2V0UmVzdWx0c1NvcnRpbmc6IERpc3BhdGNoPFJlYWRvbmx5QXJyYXk8R2hlcmtpbkRvY3VtZW50Pj4gPSB1c2VDYWxsYmFjaygodW5zb3J0ZWQpID0+IHtcbiAgICBjb25zdCBzb3J0ZWQgPSBbLi4udW5zb3J0ZWRdXG4gICAgc29ydGVkLnNvcnQoKGEsIGIpID0+IGNvbXBhcmVQYXRocyhhLnVyaSB8fCAnJywgYi51cmkgfHwgJycpKVxuICAgIHNldFJlc3VsdHMoc29ydGVkKVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHN3aXRjaCAoc2VhcmNoUmVzdWx0LnN0YXR1cykge1xuICAgICAgY2FzZSAnV0FJVElORyc6XG4gICAgICAgIC8vIHJlc3VsdHMgYXJlIG5vdCByZWFkeSB5ZXQgLSBsZWF2ZSB0aGVtIGFzIHRoZXkgYXJlXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAnTk9PUCc6XG4gICAgICBjYXNlICdFUlJPUic6XG4gICAgICAgIC8vIG5vIG5hcnJvd2luZyB0byBhcHBseVxuICAgICAgICBzZXRSZXN1bHRzU29ydGluZyhwcnVuZUdoZXJraW5Eb2N1bWVudHMoZ2hlcmtpbkRvY3VtZW50cywgbGluZWFnZUNvbnN0cmFpbnRzKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICBjYXNlICdTVUNDRVNTJzpcbiAgICAgICAgc2V0UmVzdWx0c1NvcnRpbmcoXG4gICAgICAgICAgcHJ1bmVHaGVya2luRG9jdW1lbnRzKGdoZXJraW5Eb2N1bWVudHMsIGxpbmVhZ2VDb25zdHJhaW50cywgc2VhcmNoUmVzdWx0LmhpdHMpXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuICB9LCBbZ2hlcmtpbkRvY3VtZW50cywgbGluZWFnZUNvbnN0cmFpbnRzLCBzZWFyY2hSZXN1bHQsIHNldFJlc3VsdHNTb3J0aW5nXSlcblxuICByZXR1cm4ge1xuICAgIHJlc3VsdHMsXG4gICAgZmlsdGVyZWQ6ICF1bmNoYW5nZWQsXG4gIH1cbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzb3J0aW5nIGRpcmVjdG9yaWVzXG5mdW5jdGlvbiBjb21wYXJlUGF0aHModXJpQTogc3RyaW5nLCB1cmlCOiBzdHJpbmcpOiBudW1iZXIge1xuICAvLyBBc3N1bWVzIHRoYXQgbGFzdCBwYXJ0IG9mIGV2ZXJ5IHVyaSBpcyBhIGZpbGVcbiAgY29uc3QgcGFydHNBID0gdXJpQS5zcGxpdCgnLycpXG4gIGNvbnN0IHBhcnRzQiA9IHVyaUIuc3BsaXQoJy8nKVxuICBjb25zdCBtaW5MZW5ndGggPSBNYXRoLm1pbihwYXJ0c0EubGVuZ3RoLCBwYXJ0c0IubGVuZ3RoKVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWluTGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwYXJ0QSA9IHBhcnRzQVtpXVxuICAgIGNvbnN0IHBhcnRCID0gcGFydHNCW2ldXG5cbiAgICBpZiAocGFydEEgIT09IHBhcnRCKSB7XG4gICAgICBjb25zdCBpc0FMYXN0ID0gaSA9PT0gcGFydHNBLmxlbmd0aCAtIDFcbiAgICAgIGNvbnN0IGlzQkxhc3QgPSBpID09PSBwYXJ0c0IubGVuZ3RoIC0gMVxuXG4gICAgICBpZiAoaXNBTGFzdCAmJiAhaXNCTGFzdCkge1xuICAgICAgICByZXR1cm4gMSAvLyBBIGlzIGZpbGUgYW5kIEIgaXMgZGlyZWN0b3J5IC0+IEIgY29tZXMgZmlyc3RcbiAgICAgIH1cbiAgICAgIGlmICghaXNBTGFzdCAmJiBpc0JMYXN0KSB7XG4gICAgICAgIHJldHVybiAtMSAvLyBBIGlzIGRpcmVjdG9yeSBhbmQgQiBpcyBmaWxlIC0+IEEgY29tZXMgZmlyc3RcbiAgICAgIH1cblxuICAgICAgLy8gQm90aCBhcmUgZmlsZXMgb3IgYm90aCBhcmUgZGlyZWN0b3JpZXMgLT4gQWxwaGFiZXRpY2FsIHNvcnRpbmdcbiAgICAgIHJldHVybiBwYXJ0QS5sb2NhbGVDb21wYXJlKHBhcnRCKVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIG9uZSBwYXRoIGlzIHByZWZpeCBvZiBvdGhlciB0aGVuIHNob3J0ZXIgcGF0aCBjb21lcyBmaXJzdFxuICByZXR1cm4gcGFydHNBLmxlbmd0aCAtIHBhcnRzQi5sZW5ndGhcbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { filterAndExpandTestCaseEvents, pruneTestCaseEvents, } from '../search/index.js';
|
|
3
|
+
import { useQueries } from './useQueries.js';
|
|
4
|
+
import { useSearch } from './useSearch.js';
|
|
5
|
+
import { useSearchResult } from './useSearchResult.js';
|
|
6
|
+
export function useFilteredTestCases() {
|
|
7
|
+
const { cucumberQuery } = useQueries();
|
|
8
|
+
const allTestCasesFinished = useMemo(() => cucumberQuery.findAllTestCaseFinished(), [cucumberQuery]);
|
|
9
|
+
const { hideStatuses, tagExpression, unchanged } = useSearch();
|
|
10
|
+
const candidates = useMemo(() => filterAndExpandTestCaseEvents(cucumberQuery, allTestCasesFinished, {
|
|
11
|
+
hideStatuses,
|
|
12
|
+
tagExpression,
|
|
13
|
+
}), [allTestCasesFinished, cucumberQuery, hideStatuses, tagExpression]);
|
|
14
|
+
const searchResult = useSearchResult();
|
|
15
|
+
const [results, setResults] = useState();
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
switch (searchResult.status) {
|
|
18
|
+
case 'WAITING':
|
|
19
|
+
// results are not ready yet - leave them as they are
|
|
20
|
+
return;
|
|
21
|
+
case 'NOOP':
|
|
22
|
+
case 'ERROR':
|
|
23
|
+
// no narrowing to apply
|
|
24
|
+
setResults(candidates);
|
|
25
|
+
return;
|
|
26
|
+
case 'SUCCESS':
|
|
27
|
+
setResults(pruneTestCaseEvents(candidates, searchResult.hits));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
}, [candidates, searchResult]);
|
|
31
|
+
return {
|
|
32
|
+
results,
|
|
33
|
+
filtered: !unchanged,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmlsdGVyZWRUZXN0Q2FzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRmlsdGVyZWRUZXN0Q2FzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQ3BELE9BQU8sRUFFTCw2QkFBNkIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFdEQsTUFBTSxVQUFVLG9CQUFvQjtJQUlsQyxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDdEMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQ2xDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsRUFBRSxFQUM3QyxDQUFDLGFBQWEsQ0FBQyxDQUNoQixDQUFBO0lBQ0QsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUE7SUFDOUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUN4QixHQUFHLEVBQUUsQ0FDSCw2QkFBNkIsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUU7UUFDakUsWUFBWTtRQUNaLGFBQWE7S0FDZCxDQUFDLEVBQ0osQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUNuRSxDQUFBO0lBQ0QsTUFBTSxZQUFZLEdBQUcsZUFBZSxFQUFFLENBQUE7SUFDdEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxRQUFRLEVBQXFELENBQUE7SUFFM0YsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFFBQVEsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLEtBQUssU0FBUztnQkFDWixxREFBcUQ7Z0JBQ3JELE9BQU07WUFDUixLQUFLLE1BQU0sQ0FBQztZQUNaLEtBQUssT0FBTztnQkFDVix3QkFBd0I7Z0JBQ3hCLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDdEIsT0FBTTtZQUNSLEtBQUssU0FBUztnQkFDWixVQUFVLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO2dCQUM5RCxPQUFNO1FBQ1YsQ0FBQztJQUNILENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBRTlCLE9BQU87UUFDTCxPQUFPO1FBQ1AsUUFBUSxFQUFFLENBQUMsU0FBUztLQUNyQixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVzdENhc2VGaW5pc2hlZCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIHR5cGUgRXhwYW5kZWRUZXN0Q2FzZSxcbiAgZmlsdGVyQW5kRXhwYW5kVGVzdENhc2VFdmVudHMsXG4gIHBydW5lVGVzdENhc2VFdmVudHMsXG59IGZyb20gJy4uL3NlYXJjaC9pbmRleC5qcydcbmltcG9ydCB7IHVzZVF1ZXJpZXMgfSBmcm9tICcuL3VzZVF1ZXJpZXMuanMnXG5pbXBvcnQgeyB1c2VTZWFyY2ggfSBmcm9tICcuL3VzZVNlYXJjaC5qcydcbmltcG9ydCB7IHVzZVNlYXJjaFJlc3VsdCB9IGZyb20gJy4vdXNlU2VhcmNoUmVzdWx0LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlRmlsdGVyZWRUZXN0Q2FzZXMoKToge1xuICByZXN1bHRzPzogUmVhZG9ubHlBcnJheTxFeHBhbmRlZFRlc3RDYXNlPFRlc3RDYXNlRmluaXNoZWQ+PlxuICBmaWx0ZXJlZDogYm9vbGVhblxufSB7XG4gIGNvbnN0IHsgY3VjdW1iZXJRdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IGFsbFRlc3RDYXNlc0ZpbmlzaGVkID0gdXNlTWVtbyhcbiAgICAoKSA9PiBjdWN1bWJlclF1ZXJ5LmZpbmRBbGxUZXN0Q2FzZUZpbmlzaGVkKCksXG4gICAgW2N1Y3VtYmVyUXVlcnldXG4gIClcbiAgY29uc3QgeyBoaWRlU3RhdHVzZXMsIHRhZ0V4cHJlc3Npb24sIHVuY2hhbmdlZCB9ID0gdXNlU2VhcmNoKClcbiAgY29uc3QgY2FuZGlkYXRlcyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGZpbHRlckFuZEV4cGFuZFRlc3RDYXNlRXZlbnRzKGN1Y3VtYmVyUXVlcnksIGFsbFRlc3RDYXNlc0ZpbmlzaGVkLCB7XG4gICAgICAgIGhpZGVTdGF0dXNlcyxcbiAgICAgICAgdGFnRXhwcmVzc2lvbixcbiAgICAgIH0pLFxuICAgIFthbGxUZXN0Q2FzZXNGaW5pc2hlZCwgY3VjdW1iZXJRdWVyeSwgaGlkZVN0YXR1c2VzLCB0YWdFeHByZXNzaW9uXVxuICApXG4gIGNvbnN0IHNlYXJjaFJlc3VsdCA9IHVzZVNlYXJjaFJlc3VsdCgpXG4gIGNvbnN0IFtyZXN1bHRzLCBzZXRSZXN1bHRzXSA9IHVzZVN0YXRlPFJlYWRvbmx5QXJyYXk8RXhwYW5kZWRUZXN0Q2FzZTxUZXN0Q2FzZUZpbmlzaGVkPj4+KClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHN3aXRjaCAoc2VhcmNoUmVzdWx0LnN0YXR1cykge1xuICAgICAgY2FzZSAnV0FJVElORyc6XG4gICAgICAgIC8vIHJlc3VsdHMgYXJlIG5vdCByZWFkeSB5ZXQgLSBsZWF2ZSB0aGVtIGFzIHRoZXkgYXJlXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAnTk9PUCc6XG4gICAgICBjYXNlICdFUlJPUic6XG4gICAgICAgIC8vIG5vIG5hcnJvd2luZyB0byBhcHBseVxuICAgICAgICBzZXRSZXN1bHRzKGNhbmRpZGF0ZXMpXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAnU1VDQ0VTUyc6XG4gICAgICAgIHNldFJlc3VsdHMocHJ1bmVUZXN0Q2FzZUV2ZW50cyhjYW5kaWRhdGVzLCBzZWFyY2hSZXN1bHQuaGl0cykpXG4gICAgICAgIHJldHVyblxuICAgIH1cbiAgfSwgW2NhbmRpZGF0ZXMsIHNlYXJjaFJlc3VsdF0pXG5cbiAgcmV0dXJuIHtcbiAgICByZXN1bHRzLFxuICAgIGZpbHRlcmVkOiAhdW5jaGFuZ2VkLFxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { TestStepResultStatus } from '@cucumber/messages';
|
|
2
|
+
import { SetMultimap } from '@teppeis/multimaps';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { findMostSevereTestStepResultStatus } from '../components/app/findMostSevereTestStepResultStatus.js';
|
|
5
|
+
import { useQueries } from './useQueries.js';
|
|
6
|
+
export function useMostSevereStatusByUri() {
|
|
7
|
+
const { cucumberQuery } = useQueries();
|
|
8
|
+
return useMemo(() => {
|
|
9
|
+
const allByUri = new SetMultimap();
|
|
10
|
+
for (const testCaseStarted of cucumberQuery.findAllTestCaseStarted()) {
|
|
11
|
+
const result = cucumberQuery.findMostSevereTestStepResultBy(testCaseStarted);
|
|
12
|
+
const status = result ? result.status : TestStepResultStatus.UNKNOWN;
|
|
13
|
+
const pickle = cucumberQuery.findPickleBy(testCaseStarted);
|
|
14
|
+
if (pickle?.uri) {
|
|
15
|
+
allByUri.put(pickle.uri, status);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const mostSevereByUri = new Map();
|
|
19
|
+
for (const key of allByUri.keys()) {
|
|
20
|
+
mostSevereByUri.set(key, findMostSevereTestStepResultStatus(allByUri.get(key)));
|
|
21
|
+
}
|
|
22
|
+
return mostSevereByUri;
|
|
23
|
+
}, [cucumberQuery]);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTW9zdFNldmVyZVN0YXR1c0J5VXJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZU1vc3RTZXZlcmVTdGF0dXNCeVVyaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUUvQixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx5REFBeUQsQ0FBQTtBQUM1RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFNUMsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDdEMsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxFQUFnQyxDQUFBO1FBQ2hFLEtBQUssTUFBTSxlQUFlLElBQUksYUFBYSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztZQUNyRSxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsOEJBQThCLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDNUUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUE7WUFDcEUsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQTtZQUMxRCxJQUFJLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWdDLENBQUE7UUFDL0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNsQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxrQ0FBa0MsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqRixDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdFN0ZXBSZXN1bHRTdGF0dXMgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgeyBTZXRNdWx0aW1hcCB9IGZyb20gJ0B0ZXBwZWlzL211bHRpbWFwcydcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgZmluZE1vc3RTZXZlcmVUZXN0U3RlcFJlc3VsdFN0YXR1cyB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXBwL2ZpbmRNb3N0U2V2ZXJlVGVzdFN0ZXBSZXN1bHRTdGF0dXMuanMnXG5pbXBvcnQgeyB1c2VRdWVyaWVzIH0gZnJvbSAnLi91c2VRdWVyaWVzLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlTW9zdFNldmVyZVN0YXR1c0J5VXJpKCk6IE1hcDxzdHJpbmcsIFRlc3RTdGVwUmVzdWx0U3RhdHVzPiB7XG4gIGNvbnN0IHsgY3VjdW1iZXJRdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBhbGxCeVVyaSA9IG5ldyBTZXRNdWx0aW1hcDxzdHJpbmcsIFRlc3RTdGVwUmVzdWx0U3RhdHVzPigpXG4gICAgZm9yIChjb25zdCB0ZXN0Q2FzZVN0YXJ0ZWQgb2YgY3VjdW1iZXJRdWVyeS5maW5kQWxsVGVzdENhc2VTdGFydGVkKCkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGN1Y3VtYmVyUXVlcnkuZmluZE1vc3RTZXZlcmVUZXN0U3RlcFJlc3VsdEJ5KHRlc3RDYXNlU3RhcnRlZClcbiAgICAgIGNvbnN0IHN0YXR1cyA9IHJlc3VsdCA/IHJlc3VsdC5zdGF0dXMgOiBUZXN0U3RlcFJlc3VsdFN0YXR1cy5VTktOT1dOXG4gICAgICBjb25zdCBwaWNrbGUgPSBjdWN1bWJlclF1ZXJ5LmZpbmRQaWNrbGVCeSh0ZXN0Q2FzZVN0YXJ0ZWQpXG4gICAgICBpZiAocGlja2xlPy51cmkpIHtcbiAgICAgICAgYWxsQnlVcmkucHV0KHBpY2tsZS51cmksIHN0YXR1cylcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbW9zdFNldmVyZUJ5VXJpID0gbmV3IE1hcDxzdHJpbmcsIFRlc3RTdGVwUmVzdWx0U3RhdHVzPigpXG4gICAgZm9yIChjb25zdCBrZXkgb2YgYWxsQnlVcmkua2V5cygpKSB7XG4gICAgICBtb3N0U2V2ZXJlQnlVcmkuc2V0KGtleSwgZmluZE1vc3RTZXZlcmVUZXN0U3RlcFJlc3VsdFN0YXR1cyhhbGxCeVVyaS5nZXQoa2V5KSkpXG4gICAgfVxuICAgIHJldHVybiBtb3N0U2V2ZXJlQnlVcmlcbiAgfSwgW2N1Y3VtYmVyUXVlcnldKVxufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import CucumberQueryContext from '../CucumberQueryContext.js';
|
|
3
|
+
import GherkinQueryContext from '../GherkinQueryContext.js';
|
|
4
|
+
export function useQueries() {
|
|
5
|
+
const gherkinQuery = useContext(GherkinQueryContext);
|
|
6
|
+
const cucumberQuery = useContext(CucumberQueryContext);
|
|
7
|
+
return { cucumberQuery, gherkinQuery };
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VRdWVyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFbEMsT0FBTyxvQkFBb0IsTUFBTSw0QkFBNEIsQ0FBQTtBQUM3RCxPQUFPLG1CQUFtQixNQUFNLDJCQUEyQixDQUFBO0FBRTNELE1BQU0sVUFBVSxVQUFVO0lBSXhCLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQ3BELE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUE7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXVlcnkgYXMgR2hlcmtpblF1ZXJ5IH0gZnJvbSAnQGN1Y3VtYmVyL2doZXJraW4tdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFF1ZXJ5IGFzIEN1Y3VtYmVyUXVlcnkgfSBmcm9tICdAY3VjdW1iZXIvcXVlcnknXG5pbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCBDdWN1bWJlclF1ZXJ5Q29udGV4dCBmcm9tICcuLi9DdWN1bWJlclF1ZXJ5Q29udGV4dC5qcydcbmltcG9ydCBHaGVya2luUXVlcnlDb250ZXh0IGZyb20gJy4uL0doZXJraW5RdWVyeUNvbnRleHQuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VRdWVyaWVzKCk6IHtcbiAgY3VjdW1iZXJRdWVyeTogQ3VjdW1iZXJRdWVyeVxuICBnaGVya2luUXVlcnk6IEdoZXJraW5RdWVyeVxufSB7XG4gIGNvbnN0IGdoZXJraW5RdWVyeSA9IHVzZUNvbnRleHQoR2hlcmtpblF1ZXJ5Q29udGV4dClcbiAgY29uc3QgY3VjdW1iZXJRdWVyeSA9IHVzZUNvbnRleHQoQ3VjdW1iZXJRdWVyeUNvbnRleHQpXG4gIHJldHVybiB7IGN1Y3VtYmVyUXVlcnksIGdoZXJraW5RdWVyeSB9XG59XG4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { TestStepResultStatus } from '@cucumber/messages';
|
|
1
|
+
import type { TestStepResultStatus } from '@cucumber/messages';
|
|
2
2
|
export declare function useResultStatistics(): {
|
|
3
3
|
scenarioCountByStatus: Record<TestStepResultStatus, number>;
|
|
4
4
|
statusesWithScenarios: readonly TestStepResultStatus[];
|
|
5
5
|
totalScenarioCount: number;
|
|
6
6
|
};
|
|
7
|
-
//# sourceMappingURL=useResultStatistics.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import statuses from '../statuses.js';
|
|
2
|
+
import { useQueries } from './useQueries.js';
|
|
3
|
+
export function useResultStatistics() {
|
|
4
|
+
const { cucumberQuery } = useQueries();
|
|
5
|
+
const scenarioCountByStatus = cucumberQuery.countMostSevereTestStepResultStatus();
|
|
6
|
+
const statusesWithScenarios = Object.entries(scenarioCountByStatus)
|
|
7
|
+
.filter(([, value]) => {
|
|
8
|
+
return value > 0;
|
|
9
|
+
})
|
|
10
|
+
.map(([key]) => key)
|
|
11
|
+
.sort(statusComparator);
|
|
12
|
+
const totalScenarioCount = [...Object.values(scenarioCountByStatus)].reduce((prev, curr) => prev + curr, 0);
|
|
13
|
+
return { scenarioCountByStatus, statusesWithScenarios, totalScenarioCount };
|
|
14
|
+
}
|
|
15
|
+
function statusComparator(a, b) {
|
|
16
|
+
if (statuses.indexOf(a) < statuses.indexOf(b)) {
|
|
17
|
+
return -1;
|
|
18
|
+
}
|
|
19
|
+
if (statuses.indexOf(a) > statuses.indexOf(b)) {
|
|
20
|
+
return 1;
|
|
21
|
+
}
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUmVzdWx0U3RhdGlzdGljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VSZXN1bHRTdGF0aXN0aWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU1QyxNQUFNLFVBQVUsbUJBQW1CO0lBS2pDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUN0QyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFBO0lBRWpGLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztTQUNoRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNwQixPQUFPLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDbEIsQ0FBQyxDQUFDO1NBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBMkIsQ0FBQztTQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUV6QixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQ3pFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksRUFDM0IsQ0FBQyxDQUNGLENBQUE7SUFFRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQTtBQUM3RSxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxDQUF1QixFQUFFLENBQXVCO0lBQ3hFLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVzdFN0ZXBSZXN1bHRTdGF0dXMgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5cbmltcG9ydCBzdGF0dXNlcyBmcm9tICcuLi9zdGF0dXNlcy5qcydcbmltcG9ydCB7IHVzZVF1ZXJpZXMgfSBmcm9tICcuL3VzZVF1ZXJpZXMuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZXN1bHRTdGF0aXN0aWNzKCk6IHtcbiAgc2NlbmFyaW9Db3VudEJ5U3RhdHVzOiBSZWNvcmQ8VGVzdFN0ZXBSZXN1bHRTdGF0dXMsIG51bWJlcj5cbiAgc3RhdHVzZXNXaXRoU2NlbmFyaW9zOiByZWFkb25seSBUZXN0U3RlcFJlc3VsdFN0YXR1c1tdXG4gIHRvdGFsU2NlbmFyaW9Db3VudDogbnVtYmVyXG59IHtcbiAgY29uc3QgeyBjdWN1bWJlclF1ZXJ5IH0gPSB1c2VRdWVyaWVzKClcbiAgY29uc3Qgc2NlbmFyaW9Db3VudEJ5U3RhdHVzID0gY3VjdW1iZXJRdWVyeS5jb3VudE1vc3RTZXZlcmVUZXN0U3RlcFJlc3VsdFN0YXR1cygpXG5cbiAgY29uc3Qgc3RhdHVzZXNXaXRoU2NlbmFyaW9zID0gT2JqZWN0LmVudHJpZXMoc2NlbmFyaW9Db3VudEJ5U3RhdHVzKVxuICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4ge1xuICAgICAgcmV0dXJuIHZhbHVlID4gMFxuICAgIH0pXG4gICAgLm1hcCgoW2tleV0pID0+IGtleSBhcyBUZXN0U3RlcFJlc3VsdFN0YXR1cylcbiAgICAuc29ydChzdGF0dXNDb21wYXJhdG9yKVxuXG4gIGNvbnN0IHRvdGFsU2NlbmFyaW9Db3VudCA9IFsuLi5PYmplY3QudmFsdWVzKHNjZW5hcmlvQ291bnRCeVN0YXR1cyldLnJlZHVjZShcbiAgICAocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIsXG4gICAgMFxuICApXG5cbiAgcmV0dXJuIHsgc2NlbmFyaW9Db3VudEJ5U3RhdHVzLCBzdGF0dXNlc1dpdGhTY2VuYXJpb3MsIHRvdGFsU2NlbmFyaW9Db3VudCB9XG59XG5cbmZ1bmN0aW9uIHN0YXR1c0NvbXBhcmF0b3IoYTogVGVzdFN0ZXBSZXN1bHRTdGF0dXMsIGI6IFRlc3RTdGVwUmVzdWx0U3RhdHVzKSB7XG4gIGlmIChzdGF0dXNlcy5pbmRleE9mKGEpIDwgc3RhdHVzZXMuaW5kZXhPZihiKSkge1xuICAgIHJldHVybiAtMVxuICB9XG4gIGlmIChzdGF0dXNlcy5pbmRleE9mKGEpID4gc3RhdHVzZXMuaW5kZXhPZihiKSkge1xuICAgIHJldHVybiAxXG4gIH1cbiAgcmV0dXJuIDBcbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import SearchQueryContext from '../SearchContext.js';
|
|
3
|
+
export function useSearch() {
|
|
4
|
+
return useContext(SearchQueryContext);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlU2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRWxDLE9BQU8sa0JBQStDLE1BQU0scUJBQXFCLENBQUE7QUFFakYsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgU2VhcmNoUXVlcnlDb250ZXh0LCB7IHR5cGUgU2VhcmNoQ29udGV4dFZhbHVlIH0gZnJvbSAnLi4vU2VhcmNoQ29udGV4dC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlYXJjaCgpOiBTZWFyY2hDb250ZXh0VmFsdWUge1xuICByZXR1cm4gdXNlQ29udGV4dChTZWFyY2hRdWVyeUNvbnRleHQpXG59XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type SearchHits } from '../search/index.js';
|
|
2
|
+
/** the search ran - `hits` is an empty map when nothing matched */
|
|
3
|
+
export interface SuccessSearchResult {
|
|
4
|
+
status: 'SUCCESS';
|
|
5
|
+
hits: SearchHits;
|
|
6
|
+
}
|
|
7
|
+
/** there was no search term, so no search was done */
|
|
8
|
+
export interface NoopSearchResult {
|
|
9
|
+
status: 'NOOP';
|
|
10
|
+
}
|
|
11
|
+
/** waiting for the index to build or the search to resolve */
|
|
12
|
+
export interface WaitingSearchResult {
|
|
13
|
+
status: 'WAITING';
|
|
14
|
+
}
|
|
15
|
+
/** the index failed to build or the search itself failed */
|
|
16
|
+
export interface ErrorSearchResult {
|
|
17
|
+
status: 'ERROR';
|
|
18
|
+
error: Error;
|
|
19
|
+
}
|
|
20
|
+
export type SearchResult = SuccessSearchResult | NoopSearchResult | WaitingSearchResult | ErrorSearchResult;
|
|
21
|
+
/**
|
|
22
|
+
* Creates and populates a search index from the loaded Gherkin documents, runs the current search
|
|
23
|
+
* term against it, and returns a discriminated result describing the outcome. Consumers narrow on
|
|
24
|
+
* `result.status` and don't need to know whether a search term is present.
|
|
25
|
+
*/
|
|
26
|
+
export declare function useSearchResult(): SearchResult;
|