@cucumber/react-components 24.3.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/README.md +2 -2
- package/dist/{src/CucumberQueryContext.d.ts → CucumberQueryContext.d.ts} +0 -1
- package/dist/CucumberQueryContext.js +4 -0
- package/dist/{src/GherkinQueryContext.d.ts → GherkinQueryContext.d.ts} +0 -1
- package/dist/GherkinQueryContext.js +4 -0
- package/dist/{src/SearchContext.d.ts → SearchContext.d.ts} +0 -1
- package/dist/SearchContext.js +10 -0
- package/dist/{src/ciCommitLink.d.ts → ciCommitLink.d.ts} +0 -1
- package/dist/ciCommitLink.js +12 -0
- package/dist/{src/components → components}/app/CICommitLink.d.ts +0 -1
- package/dist/components/app/CICommitLink.js +16 -0
- package/dist/{src/components → components}/app/CIJobLink.d.ts +0 -1
- package/dist/components/app/CIJobLink.js +10 -0
- package/dist/{src/components → components}/app/ControlledSearchProvider.d.ts +0 -1
- package/dist/components/app/ControlledSearchProvider.js +39 -0
- package/dist/{src/components → components}/app/CopyButton.d.ts +0 -1
- package/dist/components/app/CopyButton.js +23 -0
- package/dist/{src/components → components}/app/DocumentAccordion.d.ts +0 -1
- package/dist/components/app/DocumentAccordion.js +22 -0
- package/dist/{src/components → components}/app/EnvelopesProvider.d.ts +0 -1
- package/dist/components/app/EnvelopesProvider.js +18 -0
- package/dist/{src/components → components}/app/ExecutionSummary.d.ts +0 -1
- package/dist/components/app/ExecutionSummary.js +38 -0
- package/dist/{src/components → components}/app/FilteredDocuments.d.ts +0 -1
- package/dist/components/app/FilteredDocuments.js +15 -0
- package/dist/{src/components → components}/app/GherkinDocumentList.d.ts +0 -1
- package/dist/components/app/GherkinDocumentList.js +23 -0
- package/dist/{src/components → components}/app/Header.d.ts +0 -1
- package/dist/components/app/Header.js +12 -0
- package/dist/{src/components → components}/app/HealthChart.d.ts +0 -1
- package/dist/components/app/HealthChart.js +14 -0
- package/dist/{src/components → components}/app/HighLight.d.ts +0 -1
- package/dist/components/app/HighLight.js +38 -0
- package/dist/{src/components → components}/app/ImplementationIcon.d.ts +0 -1
- package/dist/components/app/ImplementationIcon.js +10 -0
- package/dist/{src/components → components}/app/InMemorySearchProvider.d.ts +0 -1
- package/dist/components/app/InMemorySearchProvider.js +11 -0
- package/dist/{src/components → components}/app/NavigationButton.d.ts +0 -1
- package/dist/components/app/NavigationButton.js +6 -0
- package/dist/{src/components → components}/app/OSIcon.d.ts +0 -1
- package/dist/components/app/OSIcon.js +18 -0
- package/dist/{src/components → components}/app/QueriesProvider.d.ts +0 -1
- package/dist/components/app/QueriesProvider.js +7 -0
- package/dist/{src/components → components}/app/Report.d.ts +0 -1
- package/dist/components/app/Report.js +10 -0
- package/dist/{src/components → components}/app/RuntimeIcon.d.ts +0 -1
- package/dist/components/app/RuntimeIcon.js +18 -0
- package/dist/{src/components → components}/app/SearchBar.d.ts +0 -1
- package/dist/components/app/SearchBar.js +33 -0
- package/dist/{src/components → components}/app/StatusesSummary.d.ts +0 -1
- package/dist/components/app/StatusesSummary.js +16 -0
- package/dist/{src/components → components}/app/TestRunHooks.d.ts +0 -1
- package/dist/components/app/TestRunHooks.js +14 -0
- package/dist/{src/components → components}/app/UrlSearchProvider.d.ts +0 -1
- 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/{src/components → components}/app/icons/CucumberLogo.d.ts +0 -1
- package/dist/components/app/icons/CucumberLogo.js +5 -0
- package/dist/{src/components → components}/app/icons/Jvm.d.ts +0 -1
- package/dist/components/app/icons/Jvm.js +5 -0
- package/dist/{src/components → components}/app/icons/Linux.d.ts +0 -1
- package/dist/components/app/icons/Linux.js +5 -0
- package/dist/{src/components → components}/app/icons/MacOS.d.ts +0 -1
- package/dist/components/app/icons/MacOS.js +5 -0
- package/dist/{src/components → components}/app/icons/NodeJs.d.ts +0 -1
- package/dist/components/app/icons/NodeJs.js +5 -0
- package/dist/{src/components → components}/app/icons/Ruby.d.ts +0 -1
- package/dist/components/app/icons/Ruby.js +5 -0
- package/dist/{src/components → components}/app/icons/Windows.d.ts +0 -1
- 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/{src/components → components}/app/makeSetupString.d.ts +0 -1
- package/dist/components/app/makeSetupString.js +21 -0
- package/dist/{src/components → components}/app/markdownComponents.d.ts +1 -2
- package/dist/components/app/markdownComponents.js +6 -0
- package/dist/{src/components → components}/app/rehypePlugins.d.ts +0 -1
- package/dist/components/app/rehypePlugins.js +9 -0
- package/dist/{src/components → components}/app/remarkPlugins.d.ts +0 -1
- package/dist/components/app/remarkPlugins.js +4 -0
- package/dist/{src/components → components}/customise/CustomRendering.d.ts +0 -1
- package/dist/components/customise/CustomRendering.js +35 -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/{src/components → components}/gherkin/Anchor.d.ts +0 -1
- package/dist/components/gherkin/Anchor.js +13 -0
- package/dist/{src/components → components}/gherkin/Background.d.ts +0 -1
- package/dist/components/gherkin/Background.js +18 -0
- package/dist/{src/components → components}/gherkin/Children.d.ts +0 -1
- package/dist/components/gherkin/Children.js +11 -0
- package/dist/{src/components → components}/gherkin/DataTable.d.ts +0 -1
- package/dist/components/gherkin/DataTable.js +16 -0
- package/dist/{src/components → components}/gherkin/Description.d.ts +0 -1
- package/dist/components/gherkin/Description.js +15 -0
- package/dist/{src/components → components}/gherkin/DocString.d.ts +0 -1
- package/dist/components/gherkin/DocString.js +12 -0
- package/dist/{src/components → components}/gherkin/ErrorMessage.d.ts +0 -1
- package/dist/components/gherkin/ErrorMessage.js +13 -0
- package/dist/{src/components → components}/gherkin/Examples.d.ts +0 -1
- package/dist/components/gherkin/Examples.js +31 -0
- package/dist/{src/components → components}/gherkin/Feature.d.ts +0 -1
- package/dist/components/gherkin/Feature.js +30 -0
- package/dist/{src/components → components}/gherkin/GherkinDocument.d.ts +0 -1
- package/dist/components/gherkin/GherkinDocument.js +11 -0
- package/dist/{src/components → components}/gherkin/Keyword.d.ts +0 -1
- package/dist/components/gherkin/Keyword.js +11 -0
- package/dist/{src/components → components}/gherkin/Parameter.d.ts +0 -1
- package/dist/components/gherkin/Parameter.js +11 -0
- package/dist/{src/components → components}/gherkin/Rule.d.ts +0 -1
- package/dist/components/gherkin/Rule.js +26 -0
- package/dist/{src/components → components}/gherkin/Scenario.d.ts +0 -1
- package/dist/components/gherkin/Scenario.js +22 -0
- package/dist/{src/components → components}/gherkin/StatusIcon.d.ts +0 -1
- package/dist/components/gherkin/StatusIcon.js +24 -0
- package/dist/{src/components → components}/gherkin/StepsList.d.ts +0 -1
- package/dist/components/gherkin/StepsList.js +6 -0
- package/dist/{src/components → components}/gherkin/Tags.d.ts +0 -1
- package/dist/components/gherkin/Tags.js +15 -0
- package/dist/{src/components → components}/gherkin/Title.d.ts +0 -1
- package/dist/components/gherkin/Title.js +12 -0
- package/dist/{src/components → components}/gherkin/attachment/Attachment.d.ts +0 -1
- package/dist/components/gherkin/attachment/Attachment.js +45 -0
- package/dist/{src/components → components}/gherkin/attachment/Image.d.ts +0 -1
- package/dist/components/gherkin/attachment/Image.js +16 -0
- package/dist/{src/components → components}/gherkin/attachment/Links.d.ts +0 -1
- package/dist/components/gherkin/attachment/Links.js +14 -0
- package/dist/{src/components → components}/gherkin/attachment/Log.d.ts +0 -1
- package/dist/components/gherkin/attachment/Log.js +12 -0
- package/dist/{src/components → components}/gherkin/attachment/Text.d.ts +0 -1
- package/dist/components/gherkin/attachment/Text.js +16 -0
- package/dist/{src/components → components}/gherkin/attachment/Unknown.d.ts +0 -1
- package/dist/components/gherkin/attachment/Unknown.js +61 -0
- package/dist/{src/components → components}/gherkin/attachment/Video.d.ts +0 -1
- package/dist/components/gherkin/attachment/Video.js +16 -0
- package/dist/{src/components → components}/gherkin/attachment/attachmentFilename.d.ts +0 -1
- package/dist/components/gherkin/attachment/attachmentFilename.js +12 -0
- package/dist/{src/components → components}/gherkin/attachment/base64Decode.d.ts +0 -1
- 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 +0 -1
- package/dist/components/gherkin/attachment/useText.js +28 -0
- package/dist/{src/components → components}/gherkin/composeHookStepTitle.d.ts +0 -1
- package/dist/components/gherkin/composeHookStepTitle.js +23 -0
- package/dist/{src/components → components}/gherkin/composePickleStepTitle.d.ts +0 -1
- 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/{src/components → components}/results/AmbiguousResult.d.ts +0 -1
- package/dist/components/results/AmbiguousResult.js +11 -0
- package/dist/{src/components → components}/results/FailedResult.d.ts +0 -1
- package/dist/components/results/FailedResult.js +15 -0
- package/dist/{src/components → components}/results/PendingResult.d.ts +0 -1
- package/dist/components/results/PendingResult.js +12 -0
- package/dist/{src/components → components}/results/ResultNote.d.ts +0 -1
- package/dist/components/results/ResultNote.js +6 -0
- package/dist/{src/components → components}/results/SkippedResult.d.ts +0 -1
- package/dist/components/results/SkippedResult.js +12 -0
- package/dist/{src/components → components}/results/SourceReference.d.ts +0 -1
- package/dist/components/results/SourceReference.js +13 -0
- package/dist/{src/components → components}/results/TestCaseOutcome.d.ts +0 -1
- package/dist/components/results/TestCaseOutcome.js +32 -0
- package/dist/{src/components → components}/results/TestRunHookOutcome.d.ts +0 -1
- package/dist/components/results/TestRunHookOutcome.js +11 -0
- package/dist/{src/components → components}/results/TestStepAttachments.d.ts +0 -1
- package/dist/components/results/TestStepAttachments.js +12 -0
- package/dist/{src/components → components}/results/TestStepDuration.d.ts +0 -1
- package/dist/components/results/TestStepDuration.js +19 -0
- package/dist/{src/components → components}/results/TestStepOutcome.d.ts +0 -1
- package/dist/components/results/TestStepOutcome.js +45 -0
- package/dist/{src/components → components}/results/UndefinedResult.d.ts +0 -1
- package/dist/components/results/UndefinedResult.js +18 -0
- package/dist/{src/components/results/index.js → components/results/index.d.ts} +0 -1
- 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/{src/hooks → hooks}/useFilteredDocuments.d.ts +1 -2
- 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/{src/hooks → hooks}/useQueries.d.ts +0 -1
- package/dist/hooks/useQueries.js +9 -0
- package/dist/{src/hooks → hooks}/useResultStatistics.d.ts +0 -1
- package/dist/hooks/useResultStatistics.js +24 -0
- package/dist/{src/hooks → hooks}/useSearch.d.ts +0 -1
- package/dist/hooks/useSearch.js +6 -0
- package/dist/hooks/useSearchResult.d.ts +26 -0
- package/dist/hooks/useSearchResult.js +58 -0
- package/dist/{src/hooks → hooks}/useTestCaseStarted.d.ts +0 -1
- package/dist/hooks/useTestCaseStarted.js +20 -0
- package/dist/{src/hooks → hooks}/useTestRunHooks.d.ts +0 -1
- 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/{src/search → search}/FeatureSearch.d.ts +0 -1
- package/dist/search/FeatureSearch.js +39 -0
- package/dist/{src/search → search}/ScenarioLikeSearch.d.ts +0 -1
- package/dist/search/ScenarioLikeSearch.js +37 -0
- package/dist/{src/search → search}/StepSearch.d.ts +0 -1
- package/dist/search/StepSearch.js +40 -0
- package/dist/{src/search → search}/TextSearch.d.ts +1 -2
- package/dist/search/TextSearch.js +67 -0
- package/dist/{src/search → search}/createSearchIndex.d.ts +0 -1
- package/dist/search/createSearchIndex.js +10 -0
- package/dist/{src/search → search}/deriveLineageConstraints.d.ts +0 -1
- package/dist/search/deriveLineageConstraints.js +38 -0
- package/dist/search/filterAndExpandTestCaseEvents.d.ts +20 -0
- package/dist/search/filterAndExpandTestCaseEvents.js +32 -0
- package/dist/{src/search → search}/index.d.ts +2 -1
- package/dist/search/index.js +7 -0
- package/dist/{src/search → search}/pruneGherkinDocuments.d.ts +3 -4
- package/dist/search/pruneGherkinDocuments.js +179 -0
- package/dist/search/pruneTestCaseEvents.d.ts +16 -0
- package/dist/search/pruneTestCaseEvents.js +41 -0
- package/dist/{src/search → search}/types.d.ts +5 -6
- 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/{src/toRepositoryId.d.ts → toRepositoryId.d.ts} +0 -1
- package/dist/toRepositoryId.js +12 -0
- package/package.json +31 -28
- 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.map +0 -1
- package/dist/src/GherkinQueryContext.js +0 -4
- package/dist/src/GherkinQueryContext.js.map +0 -1
- package/dist/src/SearchContext.d.ts.map +0 -1
- package/dist/src/SearchContext.js +0 -10
- package/dist/src/SearchContext.js.map +0 -1
- 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.map +0 -1
- package/dist/src/components/app/CICommitLink.js +0 -16
- package/dist/src/components/app/CICommitLink.js.map +0 -1
- package/dist/src/components/app/CIJobLink.d.ts.map +0 -1
- package/dist/src/components/app/CIJobLink.js +0 -10
- 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 -39
- package/dist/src/components/app/ControlledSearchProvider.js.map +0 -1
- 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 -22
- package/dist/src/components/app/DocumentAccordion.js.map +0 -1
- package/dist/src/components/app/EnvelopesProvider.d.ts.map +0 -1
- package/dist/src/components/app/EnvelopesProvider.js +0 -18
- package/dist/src/components/app/EnvelopesProvider.js.map +0 -1
- package/dist/src/components/app/ExecutionSummary.d.ts.map +0 -1
- package/dist/src/components/app/ExecutionSummary.js +0 -38
- package/dist/src/components/app/ExecutionSummary.js.map +0 -1
- 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.map +0 -1
- package/dist/src/components/app/GherkinDocumentList.js +0 -23
- 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.map +0 -1
- package/dist/src/components/app/HealthChart.js +0 -14
- package/dist/src/components/app/HealthChart.js.map +0 -1
- package/dist/src/components/app/HighLight.d.ts.map +0 -1
- package/dist/src/components/app/HighLight.js +0 -38
- package/dist/src/components/app/HighLight.js.map +0 -1
- 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 -11
- package/dist/src/components/app/InMemorySearchProvider.js.map +0 -1
- 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.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.map +0 -1
- package/dist/src/components/app/QueriesProvider.js +0 -7
- package/dist/src/components/app/QueriesProvider.js.map +0 -1
- package/dist/src/components/app/Report.d.ts.map +0 -1
- package/dist/src/components/app/Report.js +0 -10
- package/dist/src/components/app/Report.js.map +0 -1
- 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.map +0 -1
- package/dist/src/components/app/SearchBar.js +0 -33
- package/dist/src/components/app/SearchBar.js.map +0 -1
- package/dist/src/components/app/StatusesSummary.d.ts.map +0 -1
- package/dist/src/components/app/StatusesSummary.js +0 -16
- package/dist/src/components/app/StatusesSummary.js.map +0 -1
- 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 -29
- 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.map +0 -1
- package/dist/src/components/app/icons/CucumberLogo.js +0 -5
- package/dist/src/components/app/icons/CucumberLogo.js.map +0 -1
- package/dist/src/components/app/icons/Jvm.d.ts.map +0 -1
- package/dist/src/components/app/icons/Jvm.js +0 -5
- package/dist/src/components/app/icons/Jvm.js.map +0 -1
- package/dist/src/components/app/icons/Linux.d.ts.map +0 -1
- package/dist/src/components/app/icons/Linux.js +0 -5
- package/dist/src/components/app/icons/Linux.js.map +0 -1
- package/dist/src/components/app/icons/MacOS.d.ts.map +0 -1
- package/dist/src/components/app/icons/MacOS.js +0 -5
- package/dist/src/components/app/icons/MacOS.js.map +0 -1
- package/dist/src/components/app/icons/NodeJs.d.ts.map +0 -1
- package/dist/src/components/app/icons/NodeJs.js +0 -5
- package/dist/src/components/app/icons/NodeJs.js.map +0 -1
- package/dist/src/components/app/icons/Ruby.d.ts.map +0 -1
- package/dist/src/components/app/icons/Ruby.js +0 -5
- package/dist/src/components/app/icons/Ruby.js.map +0 -1
- package/dist/src/components/app/icons/Windows.d.ts.map +0 -1
- package/dist/src/components/app/icons/Windows.js +0 -5
- 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.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/markdownComponents.d.ts.map +0 -1
- package/dist/src/components/app/markdownComponents.js +0 -6
- package/dist/src/components/app/markdownComponents.js.map +0 -1
- 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.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 -35
- package/dist/src/components/customise/CustomRendering.js.map +0 -1
- 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.map +0 -1
- package/dist/src/components/gherkin/Anchor.js +0 -13
- package/dist/src/components/gherkin/Anchor.js.map +0 -1
- package/dist/src/components/gherkin/Background.d.ts.map +0 -1
- package/dist/src/components/gherkin/Background.js +0 -18
- package/dist/src/components/gherkin/Background.js.map +0 -1
- 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.map +0 -1
- package/dist/src/components/gherkin/DataTable.js +0 -16
- package/dist/src/components/gherkin/DataTable.js.map +0 -1
- package/dist/src/components/gherkin/Description.d.ts.map +0 -1
- package/dist/src/components/gherkin/Description.js +0 -15
- package/dist/src/components/gherkin/Description.js.map +0 -1
- package/dist/src/components/gherkin/DocString.d.ts.map +0 -1
- package/dist/src/components/gherkin/DocString.js +0 -12
- package/dist/src/components/gherkin/DocString.js.map +0 -1
- package/dist/src/components/gherkin/ErrorMessage.d.ts.map +0 -1
- package/dist/src/components/gherkin/ErrorMessage.js +0 -13
- package/dist/src/components/gherkin/ErrorMessage.js.map +0 -1
- package/dist/src/components/gherkin/Examples.d.ts.map +0 -1
- package/dist/src/components/gherkin/Examples.js +0 -31
- package/dist/src/components/gherkin/Examples.js.map +0 -1
- package/dist/src/components/gherkin/Feature.d.ts.map +0 -1
- package/dist/src/components/gherkin/Feature.js +0 -30
- package/dist/src/components/gherkin/Feature.js.map +0 -1
- 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.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.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.map +0 -1
- package/dist/src/components/gherkin/Rule.js +0 -26
- package/dist/src/components/gherkin/Rule.js.map +0 -1
- package/dist/src/components/gherkin/Scenario.d.ts.map +0 -1
- package/dist/src/components/gherkin/Scenario.js +0 -22
- package/dist/src/components/gherkin/Scenario.js.map +0 -1
- 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.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.map +0 -1
- package/dist/src/components/gherkin/Tags.js +0 -15
- package/dist/src/components/gherkin/Tags.js.map +0 -1
- package/dist/src/components/gherkin/Title.d.ts.map +0 -1
- package/dist/src/components/gherkin/Title.js +0 -12
- package/dist/src/components/gherkin/Title.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Attachment.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Attachment.js +0 -45
- package/dist/src/components/gherkin/attachment/Attachment.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Image.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Image.js +0 -16
- package/dist/src/components/gherkin/attachment/Image.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Links.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Links.js +0 -14
- package/dist/src/components/gherkin/attachment/Links.js.map +0 -1
- 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.map +0 -1
- package/dist/src/components/gherkin/attachment/Text.js +0 -16
- package/dist/src/components/gherkin/attachment/Text.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Unknown.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Unknown.js +0 -61
- package/dist/src/components/gherkin/attachment/Unknown.js.map +0 -1
- package/dist/src/components/gherkin/attachment/Video.d.ts.map +0 -1
- package/dist/src/components/gherkin/attachment/Video.js +0 -16
- package/dist/src/components/gherkin/attachment/Video.js.map +0 -1
- 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.map +0 -1
- package/dist/src/components/gherkin/attachment/base64Decode.js +0 -19
- 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.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/AmbiguousResult.d.ts.map +0 -1
- package/dist/src/components/results/AmbiguousResult.js +0 -11
- package/dist/src/components/results/AmbiguousResult.js.map +0 -1
- package/dist/src/components/results/FailedResult.d.ts.map +0 -1
- package/dist/src/components/results/FailedResult.js +0 -15
- package/dist/src/components/results/FailedResult.js.map +0 -1
- package/dist/src/components/results/PendingResult.d.ts.map +0 -1
- package/dist/src/components/results/PendingResult.js +0 -12
- package/dist/src/components/results/PendingResult.js.map +0 -1
- package/dist/src/components/results/ResultNote.d.ts.map +0 -1
- package/dist/src/components/results/ResultNote.js +0 -6
- package/dist/src/components/results/ResultNote.js.map +0 -1
- package/dist/src/components/results/SkippedResult.d.ts.map +0 -1
- package/dist/src/components/results/SkippedResult.js +0 -12
- package/dist/src/components/results/SkippedResult.js.map +0 -1
- package/dist/src/components/results/SourceReference.d.ts.map +0 -1
- package/dist/src/components/results/SourceReference.js +0 -13
- package/dist/src/components/results/SourceReference.js.map +0 -1
- package/dist/src/components/results/TestCaseOutcome.d.ts.map +0 -1
- package/dist/src/components/results/TestCaseOutcome.js +0 -32
- 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 -11
- package/dist/src/components/results/TestRunHookOutcome.js.map +0 -1
- package/dist/src/components/results/TestStepAttachments.d.ts.map +0 -1
- package/dist/src/components/results/TestStepAttachments.js +0 -12
- package/dist/src/components/results/TestStepAttachments.js.map +0 -1
- package/dist/src/components/results/TestStepDuration.d.ts.map +0 -1
- package/dist/src/components/results/TestStepDuration.js +0 -19
- 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 -45
- package/dist/src/components/results/TestStepOutcome.js.map +0 -1
- package/dist/src/components/results/UndefinedResult.d.ts.map +0 -1
- package/dist/src/components/results/UndefinedResult.js +0 -18
- package/dist/src/components/results/UndefinedResult.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.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.map +0 -1
- package/dist/src/hooks/useFilteredDocuments.js +0 -85
- 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.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.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.map +0 -1
- package/dist/src/hooks/useTestCaseStarted.js +0 -20
- 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.map +0 -1
- package/dist/src/search/FeatureSearch.js +0 -37
- package/dist/src/search/FeatureSearch.js.map +0 -1
- package/dist/src/search/ScenarioLikeSearch.d.ts.map +0 -1
- package/dist/src/search/ScenarioLikeSearch.js +0 -37
- package/dist/src/search/ScenarioLikeSearch.js.map +0 -1
- package/dist/src/search/StepSearch.d.ts.map +0 -1
- package/dist/src/search/StepSearch.js +0 -40
- package/dist/src/search/StepSearch.js.map +0 -1
- package/dist/src/search/TextSearch.d.ts.map +0 -1
- package/dist/src/search/TextSearch.js +0 -70
- package/dist/src/search/TextSearch.js.map +0 -1
- package/dist/src/search/createSearchIndex.d.ts.map +0 -1
- package/dist/src/search/createSearchIndex.js +0 -10
- package/dist/src/search/createSearchIndex.js.map +0 -1
- package/dist/src/search/deriveLineageConstraints.d.ts.map +0 -1
- package/dist/src/search/deriveLineageConstraints.js +0 -38
- package/dist/src/search/deriveLineageConstraints.js.map +0 -1
- package/dist/src/search/index.d.ts.map +0 -1
- package/dist/src/search/index.js +0 -5
- package/dist/src/search/index.js.map +0 -1
- package/dist/src/search/pruneGherkinDocuments.d.ts.map +0 -1
- package/dist/src/search/pruneGherkinDocuments.js +0 -180
- package/dist/src/search/pruneGherkinDocuments.js.map +0 -1
- 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.map +0 -1
- package/dist/src/toRepositoryId.js +0 -12
- 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/DocumentAccordion.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}/customise/CustomRendering.stories.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/ErrorMessage.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Examples.module.scss +0 -0
- /package/dist/{src/components → components}/gherkin/Keyword.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}/gherkin/attachment/Attachment.module.scss +0 -0
- /package/dist/{src/components → components}/results/AmbiguousResult.module.scss +0 -0
- /package/dist/{src/components → components}/results/ResultNote.module.scss +0 -0
- /package/dist/{src/components → components}/results/SourceReference.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/components → components}/results/TestStepOutcome.module.scss +0 -0
- /package/dist/{src/components → components}/results/UndefinedResult.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,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=
|
|
@@ -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;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { createSearchIndex } from '../search/index.js';
|
|
3
|
+
import { useQueries } from './useQueries.js';
|
|
4
|
+
import { useSearch } from './useSearch.js';
|
|
5
|
+
/**
|
|
6
|
+
* Creates and populates a search index from the loaded Gherkin documents, runs the current search
|
|
7
|
+
* term against it, and returns a discriminated result describing the outcome. Consumers narrow on
|
|
8
|
+
* `result.status` and don't need to know whether a search term is present.
|
|
9
|
+
*/
|
|
10
|
+
export function useSearchResult() {
|
|
11
|
+
const { gherkinQuery } = useQueries();
|
|
12
|
+
const gherkinDocuments = useMemo(() => gherkinQuery.getGherkinDocuments(), [gherkinQuery]);
|
|
13
|
+
const { searchTerm } = useSearch();
|
|
14
|
+
const [searchIndex, setSearchIndex] = useState();
|
|
15
|
+
const [result, setResult] = useState({ status: 'WAITING' });
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
createSearchIndex(gherkinDocuments)
|
|
18
|
+
.then((created) => setSearchIndex(created))
|
|
19
|
+
.catch((error) => {
|
|
20
|
+
console.error('Failed to create search index:', error);
|
|
21
|
+
setSearchIndex(new Error('Failed to create search index', { cause: error }));
|
|
22
|
+
});
|
|
23
|
+
}, [gherkinDocuments]);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (!searchTerm) {
|
|
26
|
+
setResult({ status: 'NOOP' });
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (searchIndex === undefined) {
|
|
30
|
+
// search index is not ready yet
|
|
31
|
+
setResult({ status: 'WAITING' });
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (searchIndex instanceof Error) {
|
|
35
|
+
setResult({ status: 'ERROR', error: searchIndex });
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
let active = true;
|
|
39
|
+
searchIndex
|
|
40
|
+
.search(searchTerm)
|
|
41
|
+
.then((hits) => {
|
|
42
|
+
if (active) {
|
|
43
|
+
setResult({ status: 'SUCCESS', hits });
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
.catch((error) => {
|
|
47
|
+
console.error('Search failed:', error);
|
|
48
|
+
if (active) {
|
|
49
|
+
setResult({ status: 'ERROR', error: new Error('Search failed', { cause: error }) });
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return () => {
|
|
53
|
+
active = false;
|
|
54
|
+
};
|
|
55
|
+
}, [searchIndex, searchTerm]);
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlU2VhcmNoUmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNlYXJjaFJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLG9CQUFvQixDQUFBO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUE4QjFDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDckMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQzFGLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQTtJQUVsQyxNQUFNLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHLFFBQVEsRUFBdUIsQ0FBQTtJQUNyRSxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBZSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBRXpFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQzthQUNoQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMxQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDdEQsY0FBYyxDQUFDLElBQUksS0FBSyxDQUFDLCtCQUErQixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5RSxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQTtJQUN0QixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO1lBQzdCLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsZ0NBQWdDO1lBQ2hDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBQ2hDLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxXQUFXLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDakMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtZQUNsRCxPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQTtRQUNqQixXQUFXO2FBQ1IsTUFBTSxDQUFDLFVBQVUsQ0FBQzthQUNsQixJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNiLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQ3hDLENBQUM7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDdEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDckYsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ2hCLENBQUMsQ0FBQTtJQUNILENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBRTdCLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVNlYXJjaEluZGV4LCB0eXBlIFNlYXJjaEhpdHMsIHR5cGUgU2VhcmNoSW5kZXggfSBmcm9tICcuLi9zZWFyY2gvaW5kZXguanMnXG5pbXBvcnQgeyB1c2VRdWVyaWVzIH0gZnJvbSAnLi91c2VRdWVyaWVzLmpzJ1xuaW1wb3J0IHsgdXNlU2VhcmNoIH0gZnJvbSAnLi91c2VTZWFyY2guanMnXG5cbi8qKiB0aGUgc2VhcmNoIHJhbiAtIGBoaXRzYCBpcyBhbiBlbXB0eSBtYXAgd2hlbiBub3RoaW5nIG1hdGNoZWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VjY2Vzc1NlYXJjaFJlc3VsdCB7XG4gIHN0YXR1czogJ1NVQ0NFU1MnXG4gIGhpdHM6IFNlYXJjaEhpdHNcbn1cblxuLyoqIHRoZXJlIHdhcyBubyBzZWFyY2ggdGVybSwgc28gbm8gc2VhcmNoIHdhcyBkb25lICovXG5leHBvcnQgaW50ZXJmYWNlIE5vb3BTZWFyY2hSZXN1bHQge1xuICBzdGF0dXM6ICdOT09QJ1xufVxuXG4vKiogd2FpdGluZyBmb3IgdGhlIGluZGV4IHRvIGJ1aWxkIG9yIHRoZSBzZWFyY2ggdG8gcmVzb2x2ZSAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWl0aW5nU2VhcmNoUmVzdWx0IHtcbiAgc3RhdHVzOiAnV0FJVElORydcbn1cblxuLyoqIHRoZSBpbmRleCBmYWlsZWQgdG8gYnVpbGQgb3IgdGhlIHNlYXJjaCBpdHNlbGYgZmFpbGVkICovXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yU2VhcmNoUmVzdWx0IHtcbiAgc3RhdHVzOiAnRVJST1InXG4gIGVycm9yOiBFcnJvclxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hSZXN1bHQgPVxuICB8IFN1Y2Nlc3NTZWFyY2hSZXN1bHRcbiAgfCBOb29wU2VhcmNoUmVzdWx0XG4gIHwgV2FpdGluZ1NlYXJjaFJlc3VsdFxuICB8IEVycm9yU2VhcmNoUmVzdWx0XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcG9wdWxhdGVzIGEgc2VhcmNoIGluZGV4IGZyb20gdGhlIGxvYWRlZCBHaGVya2luIGRvY3VtZW50cywgcnVucyB0aGUgY3VycmVudCBzZWFyY2hcbiAqIHRlcm0gYWdhaW5zdCBpdCwgYW5kIHJldHVybnMgYSBkaXNjcmltaW5hdGVkIHJlc3VsdCBkZXNjcmliaW5nIHRoZSBvdXRjb21lLiBDb25zdW1lcnMgbmFycm93IG9uXG4gKiBgcmVzdWx0LnN0YXR1c2AgYW5kIGRvbid0IG5lZWQgdG8ga25vdyB3aGV0aGVyIGEgc2VhcmNoIHRlcm0gaXMgcHJlc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlYXJjaFJlc3VsdCgpOiBTZWFyY2hSZXN1bHQge1xuICBjb25zdCB7IGdoZXJraW5RdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IGdoZXJraW5Eb2N1bWVudHMgPSB1c2VNZW1vKCgpID0+IGdoZXJraW5RdWVyeS5nZXRHaGVya2luRG9jdW1lbnRzKCksIFtnaGVya2luUXVlcnldKVxuICBjb25zdCB7IHNlYXJjaFRlcm0gfSA9IHVzZVNlYXJjaCgpXG5cbiAgY29uc3QgW3NlYXJjaEluZGV4LCBzZXRTZWFyY2hJbmRleF0gPSB1c2VTdGF0ZTxTZWFyY2hJbmRleCB8IEVycm9yPigpXG4gIGNvbnN0IFtyZXN1bHQsIHNldFJlc3VsdF0gPSB1c2VTdGF0ZTxTZWFyY2hSZXN1bHQ+KHsgc3RhdHVzOiAnV0FJVElORycgfSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNyZWF0ZVNlYXJjaEluZGV4KGdoZXJraW5Eb2N1bWVudHMpXG4gICAgICAudGhlbigoY3JlYXRlZCkgPT4gc2V0U2VhcmNoSW5kZXgoY3JlYXRlZCkpXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgc2VhcmNoIGluZGV4OicsIGVycm9yKVxuICAgICAgICBzZXRTZWFyY2hJbmRleChuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgc2VhcmNoIGluZGV4JywgeyBjYXVzZTogZXJyb3IgfSkpXG4gICAgICB9KVxuICB9LCBbZ2hlcmtpbkRvY3VtZW50c10pXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzZWFyY2hUZXJtKSB7XG4gICAgICBzZXRSZXN1bHQoeyBzdGF0dXM6ICdOT09QJyB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChzZWFyY2hJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBzZWFyY2ggaW5kZXggaXMgbm90IHJlYWR5IHlldFxuICAgICAgc2V0UmVzdWx0KHsgc3RhdHVzOiAnV0FJVElORycgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoc2VhcmNoSW5kZXggaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgc2V0UmVzdWx0KHsgc3RhdHVzOiAnRVJST1InLCBlcnJvcjogc2VhcmNoSW5kZXggfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBsZXQgYWN0aXZlID0gdHJ1ZVxuICAgIHNlYXJjaEluZGV4XG4gICAgICAuc2VhcmNoKHNlYXJjaFRlcm0pXG4gICAgICAudGhlbigoaGl0cykgPT4ge1xuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgc2V0UmVzdWx0KHsgc3RhdHVzOiAnU1VDQ0VTUycsIGhpdHMgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignU2VhcmNoIGZhaWxlZDonLCBlcnJvcilcbiAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgIHNldFJlc3VsdCh7IHN0YXR1czogJ0VSUk9SJywgZXJyb3I6IG5ldyBFcnJvcignU2VhcmNoIGZhaWxlZCcsIHsgY2F1c2U6IGVycm9yIH0pIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGFjdGl2ZSA9IGZhbHNlXG4gICAgfVxuICB9LCBbc2VhcmNoSW5kZXgsIHNlYXJjaFRlcm1dKVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { useQueries } from './useQueries.js';
|
|
3
|
+
/**
|
|
4
|
+
* Finds the corresponding TestCaseStarted for an Example or Scenario node from a Gherkin
|
|
5
|
+
* document
|
|
6
|
+
* @param nodeId the Gherkin node id
|
|
7
|
+
*/
|
|
8
|
+
export function useTestCaseStarted(nodeId) {
|
|
9
|
+
const { cucumberQuery } = useQueries();
|
|
10
|
+
return useMemo(() => {
|
|
11
|
+
for (const testCaseStarted of cucumberQuery.findAllTestCaseStarted()) {
|
|
12
|
+
const pickle = cucumberQuery.findPickleBy(testCaseStarted);
|
|
13
|
+
const closestNodeId = pickle?.astNodeIds.at(-1);
|
|
14
|
+
if (closestNodeId === nodeId) {
|
|
15
|
+
return testCaseStarted;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}, [cucumberQuery, nodeId]);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGVzdENhc2VTdGFydGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVRlc3RDYXNlU3RhcnRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRS9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU1Qzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFBO0lBQ3RDLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNsQixLQUFLLE1BQU0sZUFBZSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUM7WUFDckUsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQTtZQUMxRCxNQUFNLGFBQWEsR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQy9DLElBQUksYUFBYSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixPQUFPLGVBQWUsQ0FBQTtZQUN4QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlc3RDYXNlU3RhcnRlZCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlUXVlcmllcyB9IGZyb20gJy4vdXNlUXVlcmllcy5qcydcblxuLyoqXG4gKiBGaW5kcyB0aGUgY29ycmVzcG9uZGluZyBUZXN0Q2FzZVN0YXJ0ZWQgZm9yIGFuIEV4YW1wbGUgb3IgU2NlbmFyaW8gbm9kZSBmcm9tIGEgR2hlcmtpblxuICogZG9jdW1lbnRcbiAqIEBwYXJhbSBub2RlSWQgdGhlIEdoZXJraW4gbm9kZSBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVGVzdENhc2VTdGFydGVkKG5vZGVJZDogc3RyaW5nKTogVGVzdENhc2VTdGFydGVkIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBjdWN1bWJlclF1ZXJ5IH0gPSB1c2VRdWVyaWVzKClcbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgIGZvciAoY29uc3QgdGVzdENhc2VTdGFydGVkIG9mIGN1Y3VtYmVyUXVlcnkuZmluZEFsbFRlc3RDYXNlU3RhcnRlZCgpKSB7XG4gICAgICBjb25zdCBwaWNrbGUgPSBjdWN1bWJlclF1ZXJ5LmZpbmRQaWNrbGVCeSh0ZXN0Q2FzZVN0YXJ0ZWQpXG4gICAgICBjb25zdCBjbG9zZXN0Tm9kZUlkID0gcGlja2xlPy5hc3ROb2RlSWRzLmF0KC0xKVxuICAgICAgaWYgKGNsb3Nlc3ROb2RlSWQgPT09IG5vZGVJZCkge1xuICAgICAgICByZXR1cm4gdGVzdENhc2VTdGFydGVkXG4gICAgICB9XG4gICAgfVxuICB9LCBbY3VjdW1iZXJRdWVyeSwgbm9kZUlkXSlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ensure } from '../ensure.js';
|
|
2
|
+
import { useQueries } from './useQueries.js';
|
|
3
|
+
export function useTestRunHooks() {
|
|
4
|
+
const { cucumberQuery } = useQueries();
|
|
5
|
+
const testRunHooksFinished = cucumberQuery.findAllTestRunHookFinished();
|
|
6
|
+
return testRunHooksFinished.map((testRunHookFinished) => {
|
|
7
|
+
const hook = ensure(cucumberQuery.findHookBy(testRunHookFinished), 'Expected testRunHookFinished to resolve with a hook');
|
|
8
|
+
return {
|
|
9
|
+
testRunHookFinished,
|
|
10
|
+
hook,
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGVzdFJ1bkhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVRlc3RSdW5Ib29rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUk1QyxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDdEMsTUFBTSxvQkFBb0IsR0FDeEIsYUFBYSxDQUFDLDBCQUEwQixFQUFFLENBQUE7SUFFNUMsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1FBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FDakIsYUFBYSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUM3QyxxREFBcUQsQ0FDdEQsQ0FBQTtRQUVELE9BQU87WUFDTCxtQkFBbUI7WUFDbkIsSUFBSTtTQUNMLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhvb2ssIFRlc3RSdW5Ib29rRmluaXNoZWQgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5cbmltcG9ydCB7IGVuc3VyZSB9IGZyb20gJy4uL2Vuc3VyZS5qcydcbmltcG9ydCB7IHVzZVF1ZXJpZXMgfSBmcm9tICcuL3VzZVF1ZXJpZXMuanMnXG5cbnR5cGUgUnVuSG9va3NMaXN0ID0geyB0ZXN0UnVuSG9va0ZpbmlzaGVkOiBUZXN0UnVuSG9va0ZpbmlzaGVkOyBob29rOiBIb29rIH1bXVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlVGVzdFJ1bkhvb2tzKCk6IFJ1bkhvb2tzTGlzdCB7XG4gIGNvbnN0IHsgY3VjdW1iZXJRdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IHRlc3RSdW5Ib29rc0ZpbmlzaGVkOiBSZWFkb25seUFycmF5PFRlc3RSdW5Ib29rRmluaXNoZWQ+ID1cbiAgICBjdWN1bWJlclF1ZXJ5LmZpbmRBbGxUZXN0UnVuSG9va0ZpbmlzaGVkKClcblxuICByZXR1cm4gdGVzdFJ1bkhvb2tzRmluaXNoZWQubWFwKCh0ZXN0UnVuSG9va0ZpbmlzaGVkKSA9PiB7XG4gICAgY29uc3QgaG9vayA9IGVuc3VyZShcbiAgICAgIGN1Y3VtYmVyUXVlcnkuZmluZEhvb2tCeSh0ZXN0UnVuSG9va0ZpbmlzaGVkKSxcbiAgICAgICdFeHBlY3RlZCB0ZXN0UnVuSG9va0ZpbmlzaGVkIHRvIHJlc29sdmUgd2l0aCBhIGhvb2snXG4gICAgKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRlc3RSdW5Ib29rRmluaXNoZWQsXG4gICAgICBob29rLFxuICAgIH1cbiAgfSlcbn1cbiJdfQ==
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './components/index.js';
|
|
2
|
+
export * from './hooks/index.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLGtCQUFrQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9ob29rcy9pbmRleC5qcydcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export default function isTagExpression(expression) {
|
|
2
|
+
const tagExpression = /^\s*((@[^\s]+\s*)|(and\s+)|(or\s+)|(not\s+)|\(|\))+\s*$/;
|
|
3
|
+
return !!tagExpression.exec(expression);
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNUYWdFeHByZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2lzVGFnRXhwcmVzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsT0FBTyxVQUFVLGVBQWUsQ0FBQyxVQUFrQjtJQUN4RCxNQUFNLGFBQWEsR0FBRyx5REFBeUQsQ0FBQTtJQUMvRSxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1RhZ0V4cHJlc3Npb24oZXhwcmVzc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHRhZ0V4cHJlc3Npb24gPSAvXlxccyooKEBbXlxcc10rXFxzKil8KGFuZFxccyspfChvclxccyspfChub3RcXHMrKXxcXCh8XFwpKStcXHMqJC9cbiAgcmV0dXJuICEhdGFnRXhwcmVzc2lvbi5leGVjKGV4cHJlc3Npb24pXG59XG4iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { create, insert, search } from '@orama/orama';
|
|
2
|
+
const schema = {
|
|
3
|
+
name: 'string',
|
|
4
|
+
description: 'string',
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* A little different to the other indexes - a Feature doesn't have its own id,
|
|
8
|
+
* so we use the uri of the GherkinDocument as a pointer
|
|
9
|
+
*/
|
|
10
|
+
export class FeatureSearch {
|
|
11
|
+
index;
|
|
12
|
+
constructor() {
|
|
13
|
+
this.index = create({
|
|
14
|
+
schema,
|
|
15
|
+
sort: { enabled: false },
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async search(term) {
|
|
19
|
+
const { hits } = await search(this.index, {
|
|
20
|
+
term,
|
|
21
|
+
});
|
|
22
|
+
return hits.map((hit) => ({ uri: hit.id, id: hit.id }));
|
|
23
|
+
}
|
|
24
|
+
async add(gherkinDocument, _uri) {
|
|
25
|
+
if (!gherkinDocument.feature) {
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
if (!gherkinDocument.uri) {
|
|
29
|
+
throw new Error('Missing uri on gherkinDocument');
|
|
30
|
+
}
|
|
31
|
+
await insert(this.index, {
|
|
32
|
+
id: gherkinDocument.uri,
|
|
33
|
+
name: gherkinDocument.feature.name,
|
|
34
|
+
description: gherkinDocument.feature.description,
|
|
35
|
+
});
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZVNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWFyY2gvRmVhdHVyZVNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBYyxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFJakUsTUFBTSxNQUFNLEdBQUc7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLFdBQVcsRUFBRSxRQUFRO0NBQ2IsQ0FBQTtBQUVWOzs7R0FHRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBQ1AsS0FBSyxDQUFzQjtJQUU1QztRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ2xCLE1BQU07WUFDTixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1NBQ3pCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSTtTQUNMLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWdDLEVBQUUsSUFBWTtRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQ25ELENBQUM7UUFDRCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3ZCLEVBQUUsRUFBRSxlQUFlLENBQUMsR0FBRztZQUN2QixJQUFJLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ2xDLFdBQVcsRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVc7U0FDakQsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdoZXJraW5Eb2N1bWVudCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IGNyZWF0ZSwgaW5zZXJ0LCB0eXBlIE9yYW1hLCBzZWFyY2ggfSBmcm9tICdAb3JhbWEvb3JhbWEnXG5cbmltcG9ydCB0eXBlIHsgSW5kZXhIaXQsIFR5cGVkSW5kZXggfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5jb25zdCBzY2hlbWEgPSB7XG4gIG5hbWU6ICdzdHJpbmcnLFxuICBkZXNjcmlwdGlvbjogJ3N0cmluZycsXG59IGFzIGNvbnN0XG5cbi8qKlxuICogQSBsaXR0bGUgZGlmZmVyZW50IHRvIHRoZSBvdGhlciBpbmRleGVzIC0gYSBGZWF0dXJlIGRvZXNuJ3QgaGF2ZSBpdHMgb3duIGlkLFxuICogc28gd2UgdXNlIHRoZSB1cmkgb2YgdGhlIEdoZXJraW5Eb2N1bWVudCBhcyBhIHBvaW50ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIEZlYXR1cmVTZWFyY2ggaW1wbGVtZW50cyBUeXBlZEluZGV4PEdoZXJraW5Eb2N1bWVudD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGluZGV4OiBPcmFtYTx0eXBlb2Ygc2NoZW1hPlxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW5kZXggPSBjcmVhdGUoe1xuICAgICAgc2NoZW1hLFxuICAgICAgc29ydDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBzZWFyY2godGVybTogc3RyaW5nKTogUHJvbWlzZTxSZWFkb25seUFycmF5PEluZGV4SGl0Pj4ge1xuICAgIGNvbnN0IHsgaGl0cyB9ID0gYXdhaXQgc2VhcmNoKHRoaXMuaW5kZXgsIHtcbiAgICAgIHRlcm0sXG4gICAgfSlcbiAgICByZXR1cm4gaGl0cy5tYXAoKGhpdCkgPT4gKHsgdXJpOiBoaXQuaWQsIGlkOiBoaXQuaWQgfSkpXG4gIH1cblxuICBhc3luYyBhZGQoZ2hlcmtpbkRvY3VtZW50OiBHaGVya2luRG9jdW1lbnQsIF91cmk6IHN0cmluZyk6IFByb21pc2U8dGhpcz4ge1xuICAgIGlmICghZ2hlcmtpbkRvY3VtZW50LmZlYXR1cmUpIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICAgIGlmICghZ2hlcmtpbkRvY3VtZW50LnVyaSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHVyaSBvbiBnaGVya2luRG9jdW1lbnQnKVxuICAgIH1cbiAgICBhd2FpdCBpbnNlcnQodGhpcy5pbmRleCwge1xuICAgICAgaWQ6IGdoZXJraW5Eb2N1bWVudC51cmksXG4gICAgICBuYW1lOiBnaGVya2luRG9jdW1lbnQuZmVhdHVyZS5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGdoZXJraW5Eb2N1bWVudC5mZWF0dXJlLmRlc2NyaXB0aW9uLFxuICAgIH0pXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { create, insert, search } from '@orama/orama';
|
|
2
|
+
import { ID_SEPARATOR } from './types.js';
|
|
3
|
+
const schema = {
|
|
4
|
+
name: 'string',
|
|
5
|
+
description: 'string',
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Can be used for Backgrounds, Scenarios and Rules, searching against the
|
|
9
|
+
* name and description
|
|
10
|
+
*/
|
|
11
|
+
export class ScenarioLikeSearch {
|
|
12
|
+
index;
|
|
13
|
+
constructor() {
|
|
14
|
+
this.index = create({
|
|
15
|
+
schema,
|
|
16
|
+
sort: { enabled: false },
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async search(term) {
|
|
20
|
+
const { hits } = await search(this.index, {
|
|
21
|
+
term,
|
|
22
|
+
});
|
|
23
|
+
return hits.map((hit) => {
|
|
24
|
+
const [uri, id] = hit.id.split(ID_SEPARATOR);
|
|
25
|
+
return { uri, id };
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async add(item, uri) {
|
|
29
|
+
await insert(this.index, {
|
|
30
|
+
id: uri + ID_SEPARATOR + item.id,
|
|
31
|
+
name: item.name,
|
|
32
|
+
description: item.description,
|
|
33
|
+
});
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmFyaW9MaWtlU2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlYXJjaC9TY2VuYXJpb0xpa2VTZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRWpFLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sWUFBWSxDQUFBO0FBRTFELE1BQU0sTUFBTSxHQUFHO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxXQUFXLEVBQUUsUUFBUTtDQUNiLENBQUE7QUFRVjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ1osS0FBSyxDQUFzQjtJQUU1QztRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ2xCLE1BQU07WUFDTixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1NBQ3pCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSTtTQUNMLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQU8sRUFBRSxHQUFXO1FBQzVCLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdkIsRUFBRSxFQUFFLEdBQUcsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlLCBpbnNlcnQsIHR5cGUgT3JhbWEsIHNlYXJjaCB9IGZyb20gJ0BvcmFtYS9vcmFtYSdcblxuaW1wb3J0IHsgSURfU0VQQVJBVE9SLCB0eXBlIFR5cGVkSW5kZXggfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5jb25zdCBzY2hlbWEgPSB7XG4gIG5hbWU6ICdzdHJpbmcnLFxuICBkZXNjcmlwdGlvbjogJ3N0cmluZycsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9MaWtlIHtcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xufVxuXG4vKipcbiAqIENhbiBiZSB1c2VkIGZvciBCYWNrZ3JvdW5kcywgU2NlbmFyaW9zIGFuZCBSdWxlcywgc2VhcmNoaW5nIGFnYWluc3QgdGhlXG4gKiBuYW1lIGFuZCBkZXNjcmlwdGlvblxuICovXG5leHBvcnQgY2xhc3MgU2NlbmFyaW9MaWtlU2VhcmNoPFQgZXh0ZW5kcyBTY2VuYXJpb0xpa2U+IGltcGxlbWVudHMgVHlwZWRJbmRleDxUPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5kZXg6IE9yYW1hPHR5cGVvZiBzY2hlbWE+XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbmRleCA9IGNyZWF0ZSh7XG4gICAgICBzY2hlbWEsXG4gICAgICBzb3J0OiB7IGVuYWJsZWQ6IGZhbHNlIH0sXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIHNlYXJjaCh0ZXJtOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IGhpdHMgfSA9IGF3YWl0IHNlYXJjaCh0aGlzLmluZGV4LCB7XG4gICAgICB0ZXJtLFxuICAgIH0pXG4gICAgcmV0dXJuIGhpdHMubWFwKChoaXQpID0+IHtcbiAgICAgIGNvbnN0IFt1cmksIGlkXSA9IGhpdC5pZC5zcGxpdChJRF9TRVBBUkFUT1IpXG4gICAgICByZXR1cm4geyB1cmksIGlkIH1cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgYWRkKGl0ZW06IFQsIHVyaTogc3RyaW5nKTogUHJvbWlzZTx0aGlzPiB7XG4gICAgYXdhaXQgaW5zZXJ0KHRoaXMuaW5kZXgsIHtcbiAgICAgIGlkOiB1cmkgKyBJRF9TRVBBUkFUT1IgKyBpdGVtLmlkLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgfSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { create, insert, search } from '@orama/orama';
|
|
2
|
+
import { ID_SEPARATOR } from './types.js';
|
|
3
|
+
const schema = {
|
|
4
|
+
keyword: 'string',
|
|
5
|
+
text: 'string',
|
|
6
|
+
docString: 'string',
|
|
7
|
+
dataTable: 'string[]',
|
|
8
|
+
};
|
|
9
|
+
export class StepSearch {
|
|
10
|
+
index;
|
|
11
|
+
constructor() {
|
|
12
|
+
this.index = create({
|
|
13
|
+
schema,
|
|
14
|
+
sort: { enabled: false },
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async search(term) {
|
|
18
|
+
const { hits } = await search(this.index, {
|
|
19
|
+
term,
|
|
20
|
+
boost: {
|
|
21
|
+
text: 2,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
return hits.map((hit) => {
|
|
25
|
+
const [uri, id] = hit.id.split(ID_SEPARATOR);
|
|
26
|
+
return { uri, id };
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async add(step, uri) {
|
|
30
|
+
await insert(this.index, {
|
|
31
|
+
id: uri + ID_SEPARATOR + step.id,
|
|
32
|
+
keyword: step.keyword,
|
|
33
|
+
text: step.text,
|
|
34
|
+
docString: step.docString?.content,
|
|
35
|
+
dataTable: step.dataTable?.rows.flatMap((row) => row.cells).map((cell) => cell.value),
|
|
36
|
+
});
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RlcFNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWFyY2gvU3RlcFNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBYyxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFakUsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxZQUFZLENBQUE7QUFFMUQsTUFBTSxNQUFNLEdBQUc7SUFDYixPQUFPLEVBQUUsUUFBUTtJQUNqQixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFNBQVMsRUFBRSxVQUFVO0NBQ2IsQ0FBQTtBQUVWLE1BQU0sT0FBTyxVQUFVO0lBQ0osS0FBSyxDQUFzQjtJQUU1QztRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ2xCLE1BQU07WUFDTixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1NBQ3pCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSTtZQUNKLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsQ0FBQzthQUNSO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBVSxFQUFFLEdBQVc7UUFDL0IsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN2QixFQUFFLEVBQUUsR0FBRyxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRTtZQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTztZQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3RGLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGVwIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgY3JlYXRlLCBpbnNlcnQsIHR5cGUgT3JhbWEsIHNlYXJjaCB9IGZyb20gJ0BvcmFtYS9vcmFtYSdcblxuaW1wb3J0IHsgSURfU0VQQVJBVE9SLCB0eXBlIFR5cGVkSW5kZXggfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5jb25zdCBzY2hlbWEgPSB7XG4gIGtleXdvcmQ6ICdzdHJpbmcnLFxuICB0ZXh0OiAnc3RyaW5nJyxcbiAgZG9jU3RyaW5nOiAnc3RyaW5nJyxcbiAgZGF0YVRhYmxlOiAnc3RyaW5nW10nLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY2xhc3MgU3RlcFNlYXJjaCBpbXBsZW1lbnRzIFR5cGVkSW5kZXg8U3RlcD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGluZGV4OiBPcmFtYTx0eXBlb2Ygc2NoZW1hPlxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW5kZXggPSBjcmVhdGUoe1xuICAgICAgc2NoZW1hLFxuICAgICAgc29ydDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBzZWFyY2godGVybTogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBoaXRzIH0gPSBhd2FpdCBzZWFyY2godGhpcy5pbmRleCwge1xuICAgICAgdGVybSxcbiAgICAgIGJvb3N0OiB7XG4gICAgICAgIHRleHQ6IDIsXG4gICAgICB9LFxuICAgIH0pXG4gICAgcmV0dXJuIGhpdHMubWFwKChoaXQpID0+IHtcbiAgICAgIGNvbnN0IFt1cmksIGlkXSA9IGhpdC5pZC5zcGxpdChJRF9TRVBBUkFUT1IpXG4gICAgICByZXR1cm4geyB1cmksIGlkIH1cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgYWRkKHN0ZXA6IFN0ZXAsIHVyaTogc3RyaW5nKTogUHJvbWlzZTx0aGlzPiB7XG4gICAgYXdhaXQgaW5zZXJ0KHRoaXMuaW5kZXgsIHtcbiAgICAgIGlkOiB1cmkgKyBJRF9TRVBBUkFUT1IgKyBzdGVwLmlkLFxuICAgICAga2V5d29yZDogc3RlcC5rZXl3b3JkLFxuICAgICAgdGV4dDogc3RlcC50ZXh0LFxuICAgICAgZG9jU3RyaW5nOiBzdGVwLmRvY1N0cmluZz8uY29udGVudCxcbiAgICAgIGRhdGFUYWJsZTogc3RlcC5kYXRhVGFibGU/LnJvd3MuZmxhdE1hcCgocm93KSA9PiByb3cuY2VsbHMpLm1hcCgoY2VsbCkgPT4gY2VsbC52YWx1ZSksXG4gICAgfSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG59XG4iXX0=
|
|
@@ -6,7 +6,6 @@ export declare class TextSearch implements SearchIndex {
|
|
|
6
6
|
private readonly ruleSearch;
|
|
7
7
|
private readonly scenarioSearch;
|
|
8
8
|
private readonly stepSearch;
|
|
9
|
-
search(query: string): Promise<SearchHits
|
|
9
|
+
search(query: string): Promise<SearchHits>;
|
|
10
10
|
add(gherkinDocument: GherkinDocument): Promise<void>;
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=TextSearch.d.ts.map
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { walkGherkinDocument } from '@cucumber/gherkin-utils';
|
|
2
|
+
import { FeatureSearch } from './FeatureSearch.js';
|
|
3
|
+
import { ScenarioLikeSearch } from './ScenarioLikeSearch.js';
|
|
4
|
+
import { StepSearch } from './StepSearch.js';
|
|
5
|
+
export class TextSearch {
|
|
6
|
+
featureSearch = new FeatureSearch();
|
|
7
|
+
backgroundSearch = new ScenarioLikeSearch();
|
|
8
|
+
ruleSearch = new ScenarioLikeSearch();
|
|
9
|
+
scenarioSearch = new ScenarioLikeSearch();
|
|
10
|
+
stepSearch = new StepSearch();
|
|
11
|
+
async search(query) {
|
|
12
|
+
const [featureHits, backgroundHits, ruleHits, scenarioHits, stepHits] = await Promise.all([
|
|
13
|
+
this.featureSearch.search(query),
|
|
14
|
+
this.backgroundSearch.search(query),
|
|
15
|
+
this.ruleSearch.search(query),
|
|
16
|
+
this.scenarioSearch.search(query),
|
|
17
|
+
this.stepSearch.search(query),
|
|
18
|
+
]);
|
|
19
|
+
// an empty map is a valid result meaning nothing matched
|
|
20
|
+
const map = new Map();
|
|
21
|
+
const getOrDefault = (uri) => {
|
|
22
|
+
let entry = map.get(uri);
|
|
23
|
+
if (!entry) {
|
|
24
|
+
entry = {
|
|
25
|
+
feature: false,
|
|
26
|
+
background: new Set(),
|
|
27
|
+
rule: new Set(),
|
|
28
|
+
scenario: new Set(),
|
|
29
|
+
step: new Set(),
|
|
30
|
+
};
|
|
31
|
+
map.set(uri, entry);
|
|
32
|
+
}
|
|
33
|
+
return entry;
|
|
34
|
+
};
|
|
35
|
+
for (const hit of featureHits) {
|
|
36
|
+
getOrDefault(hit.uri).feature = true;
|
|
37
|
+
}
|
|
38
|
+
for (const hit of backgroundHits) {
|
|
39
|
+
getOrDefault(hit.uri).background.add(hit.id);
|
|
40
|
+
}
|
|
41
|
+
for (const hit of ruleHits) {
|
|
42
|
+
getOrDefault(hit.uri).rule.add(hit.id);
|
|
43
|
+
}
|
|
44
|
+
for (const hit of scenarioHits) {
|
|
45
|
+
getOrDefault(hit.uri).scenario.add(hit.id);
|
|
46
|
+
}
|
|
47
|
+
for (const hit of stepHits) {
|
|
48
|
+
getOrDefault(hit.uri).step.add(hit.id);
|
|
49
|
+
}
|
|
50
|
+
return map;
|
|
51
|
+
}
|
|
52
|
+
async add(gherkinDocument) {
|
|
53
|
+
const uri = gherkinDocument.uri;
|
|
54
|
+
if (!uri) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const promises = walkGherkinDocument(gherkinDocument, [], {
|
|
58
|
+
feature: (_feature, acc) => [...acc, this.featureSearch.add(gherkinDocument, uri)],
|
|
59
|
+
background: (background, acc) => [...acc, this.backgroundSearch.add(background, uri)],
|
|
60
|
+
rule: (rule, acc) => [...acc, this.ruleSearch.add(rule, uri)],
|
|
61
|
+
scenario: (scenario, acc) => [...acc, this.scenarioSearch.add(scenario, uri)],
|
|
62
|
+
step: (step, acc) => [...acc, this.stepSearch.add(step, uri)],
|
|
63
|
+
});
|
|
64
|
+
await Promise.all(promises);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dFNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWFyY2gvVGV4dFNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBUzVDLE1BQU0sT0FBTyxVQUFVO0lBQ0osYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUE7SUFDbkMsZ0JBQWdCLEdBQUcsSUFBSSxrQkFBa0IsRUFBYyxDQUFBO0lBQ3ZELFVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFRLENBQUE7SUFDM0MsY0FBYyxHQUFHLElBQUksa0JBQWtCLEVBQVksQ0FBQTtJQUNuRCxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQTtJQUV2QyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWE7UUFDL0IsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDeEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQzlCLENBQUMsQ0FBQTtRQUNGLHlEQUF5RDtRQUN6RCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQTtRQUN4RCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ25DLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLEtBQUssR0FBRztvQkFDTixPQUFPLEVBQUUsS0FBSztvQkFDZCxVQUFVLEVBQUUsSUFBSSxHQUFHLEVBQUU7b0JBQ3JCLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRTtvQkFDZixRQUFRLEVBQUUsSUFBSSxHQUFHLEVBQUU7b0JBQ25CLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRTtpQkFDaEIsQ0FBQTtnQkFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUNyQixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDLENBQUE7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzlCLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUN0QyxDQUFDO1FBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzlDLENBQUM7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEMsQ0FBQztRQUNELEtBQUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7WUFDL0IsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM1QyxDQUFDO1FBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3hDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWdDO1FBQy9DLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUE7UUFDL0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTTtRQUNSLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBMEIsZUFBZSxFQUFFLEVBQUUsRUFBRTtZQUNqRixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRixVQUFVLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JGLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdELFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzlELENBQUMsQ0FBQTtRQUNGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YWxrR2hlcmtpbkRvY3VtZW50IH0gZnJvbSAnQGN1Y3VtYmVyL2doZXJraW4tdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJhY2tncm91bmQsIEdoZXJraW5Eb2N1bWVudCwgUnVsZSwgU2NlbmFyaW8gfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgeyBGZWF0dXJlU2VhcmNoIH0gZnJvbSAnLi9GZWF0dXJlU2VhcmNoLmpzJ1xuaW1wb3J0IHsgU2NlbmFyaW9MaWtlU2VhcmNoIH0gZnJvbSAnLi9TY2VuYXJpb0xpa2VTZWFyY2guanMnXG5pbXBvcnQgeyBTdGVwU2VhcmNoIH0gZnJvbSAnLi9TdGVwU2VhcmNoLmpzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudFNlYXJjaEhpdHMsIFNlYXJjaEhpdHMsIFNlYXJjaEluZGV4IH0gZnJvbSAnLi90eXBlcy5qcydcblxudHlwZSBNdXRhYmxlRG9jdW1lbnRTZWFyY2hIaXRzID0ge1xuICBbS2V5IGluIGtleW9mIERvY3VtZW50U2VhcmNoSGl0c106IERvY3VtZW50U2VhcmNoSGl0c1tLZXldIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgSXRlbT5cbiAgICA/IFNldDxJdGVtPlxuICAgIDogRG9jdW1lbnRTZWFyY2hIaXRzW0tleV1cbn1cblxuZXhwb3J0IGNsYXNzIFRleHRTZWFyY2ggaW1wbGVtZW50cyBTZWFyY2hJbmRleCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmVhdHVyZVNlYXJjaCA9IG5ldyBGZWF0dXJlU2VhcmNoKClcbiAgcHJpdmF0ZSByZWFkb25seSBiYWNrZ3JvdW5kU2VhcmNoID0gbmV3IFNjZW5hcmlvTGlrZVNlYXJjaDxCYWNrZ3JvdW5kPigpXG4gIHByaXZhdGUgcmVhZG9ubHkgcnVsZVNlYXJjaCA9IG5ldyBTY2VuYXJpb0xpa2VTZWFyY2g8UnVsZT4oKVxuICBwcml2YXRlIHJlYWRvbmx5IHNjZW5hcmlvU2VhcmNoID0gbmV3IFNjZW5hcmlvTGlrZVNlYXJjaDxTY2VuYXJpbz4oKVxuICBwcml2YXRlIHJlYWRvbmx5IHN0ZXBTZWFyY2ggPSBuZXcgU3RlcFNlYXJjaCgpXG5cbiAgcHVibGljIGFzeW5jIHNlYXJjaChxdWVyeTogc3RyaW5nKTogUHJvbWlzZTxTZWFyY2hIaXRzPiB7XG4gICAgY29uc3QgW2ZlYXR1cmVIaXRzLCBiYWNrZ3JvdW5kSGl0cywgcnVsZUhpdHMsIHNjZW5hcmlvSGl0cywgc3RlcEhpdHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5mZWF0dXJlU2VhcmNoLnNlYXJjaChxdWVyeSksXG4gICAgICB0aGlzLmJhY2tncm91bmRTZWFyY2guc2VhcmNoKHF1ZXJ5KSxcbiAgICAgIHRoaXMucnVsZVNlYXJjaC5zZWFyY2gocXVlcnkpLFxuICAgICAgdGhpcy5zY2VuYXJpb1NlYXJjaC5zZWFyY2gocXVlcnkpLFxuICAgICAgdGhpcy5zdGVwU2VhcmNoLnNlYXJjaChxdWVyeSksXG4gICAgXSlcbiAgICAvLyBhbiBlbXB0eSBtYXAgaXMgYSB2YWxpZCByZXN1bHQgbWVhbmluZyBub3RoaW5nIG1hdGNoZWRcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgTXV0YWJsZURvY3VtZW50U2VhcmNoSGl0cz4oKVxuICAgIGNvbnN0IGdldE9yRGVmYXVsdCA9ICh1cmk6IHN0cmluZykgPT4ge1xuICAgICAgbGV0IGVudHJ5ID0gbWFwLmdldCh1cmkpXG4gICAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAgIGVudHJ5ID0ge1xuICAgICAgICAgIGZlYXR1cmU6IGZhbHNlLFxuICAgICAgICAgIGJhY2tncm91bmQ6IG5ldyBTZXQoKSxcbiAgICAgICAgICBydWxlOiBuZXcgU2V0KCksXG4gICAgICAgICAgc2NlbmFyaW86IG5ldyBTZXQoKSxcbiAgICAgICAgICBzdGVwOiBuZXcgU2V0KCksXG4gICAgICAgIH1cbiAgICAgICAgbWFwLnNldCh1cmksIGVudHJ5KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5XG4gICAgfVxuICAgIGZvciAoY29uc3QgaGl0IG9mIGZlYXR1cmVIaXRzKSB7XG4gICAgICBnZXRPckRlZmF1bHQoaGl0LnVyaSkuZmVhdHVyZSA9IHRydWVcbiAgICB9XG4gICAgZm9yIChjb25zdCBoaXQgb2YgYmFja2dyb3VuZEhpdHMpIHtcbiAgICAgIGdldE9yRGVmYXVsdChoaXQudXJpKS5iYWNrZ3JvdW5kLmFkZChoaXQuaWQpXG4gICAgfVxuICAgIGZvciAoY29uc3QgaGl0IG9mIHJ1bGVIaXRzKSB7XG4gICAgICBnZXRPckRlZmF1bHQoaGl0LnVyaSkucnVsZS5hZGQoaGl0LmlkKVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGhpdCBvZiBzY2VuYXJpb0hpdHMpIHtcbiAgICAgIGdldE9yRGVmYXVsdChoaXQudXJpKS5zY2VuYXJpby5hZGQoaGl0LmlkKVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGhpdCBvZiBzdGVwSGl0cykge1xuICAgICAgZ2V0T3JEZWZhdWx0KGhpdC51cmkpLnN0ZXAuYWRkKGhpdC5pZClcbiAgICB9XG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZChnaGVya2luRG9jdW1lbnQ6IEdoZXJraW5Eb2N1bWVudCkge1xuICAgIGNvbnN0IHVyaSA9IGdoZXJraW5Eb2N1bWVudC51cmlcbiAgICBpZiAoIXVyaSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHByb21pc2VzID0gd2Fsa0doZXJraW5Eb2N1bWVudDxBcnJheTxQcm9taXNlPHVua25vd24+Pj4oZ2hlcmtpbkRvY3VtZW50LCBbXSwge1xuICAgICAgZmVhdHVyZTogKF9mZWF0dXJlLCBhY2MpID0+IFsuLi5hY2MsIHRoaXMuZmVhdHVyZVNlYXJjaC5hZGQoZ2hlcmtpbkRvY3VtZW50LCB1cmkpXSxcbiAgICAgIGJhY2tncm91bmQ6IChiYWNrZ3JvdW5kLCBhY2MpID0+IFsuLi5hY2MsIHRoaXMuYmFja2dyb3VuZFNlYXJjaC5hZGQoYmFja2dyb3VuZCwgdXJpKV0sXG4gICAgICBydWxlOiAocnVsZSwgYWNjKSA9PiBbLi4uYWNjLCB0aGlzLnJ1bGVTZWFyY2guYWRkKHJ1bGUsIHVyaSldLFxuICAgICAgc2NlbmFyaW86IChzY2VuYXJpbywgYWNjKSA9PiBbLi4uYWNjLCB0aGlzLnNjZW5hcmlvU2VhcmNoLmFkZChzY2VuYXJpbywgdXJpKV0sXG4gICAgICBzdGVwOiAoc3RlcCwgYWNjKSA9PiBbLi4uYWNjLCB0aGlzLnN0ZXBTZWFyY2guYWRkKHN0ZXAsIHVyaSldLFxuICAgIH0pXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,4 +4,3 @@ import type { SearchIndex } from './types.js';
|
|
|
4
4
|
* Creates a search index that supports querying by term
|
|
5
5
|
*/
|
|
6
6
|
export declare function createSearchIndex(gherkinDocuments: ReadonlyArray<GherkinDocument>): Promise<SearchIndex>;
|
|
7
|
-
//# sourceMappingURL=createSearchIndex.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TextSearch } from './TextSearch.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a search index that supports querying by term
|
|
4
|
+
*/
|
|
5
|
+
export async function createSearchIndex(gherkinDocuments) {
|
|
6
|
+
const textSearch = new TextSearch();
|
|
7
|
+
await Promise.all(gherkinDocuments.map((gherkinDocument) => textSearch.add(gherkinDocument)));
|
|
8
|
+
return textSearch;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2VhcmNoSW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VhcmNoL2NyZWF0ZVNlYXJjaEluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUc1Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLGdCQUFnRDtJQUVoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO0lBQ25DLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzdGLE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdoZXJraW5Eb2N1bWVudCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcblxuaW1wb3J0IHsgVGV4dFNlYXJjaCB9IGZyb20gJy4vVGV4dFNlYXJjaC5qcydcbmltcG9ydCB0eXBlIHsgU2VhcmNoSW5kZXggfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzZWFyY2ggaW5kZXggdGhhdCBzdXBwb3J0cyBxdWVyeWluZyBieSB0ZXJtXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTZWFyY2hJbmRleChcbiAgZ2hlcmtpbkRvY3VtZW50czogUmVhZG9ubHlBcnJheTxHaGVya2luRG9jdW1lbnQ+XG4pOiBQcm9taXNlPFNlYXJjaEluZGV4PiB7XG4gIGNvbnN0IHRleHRTZWFyY2ggPSBuZXcgVGV4dFNlYXJjaCgpXG4gIGF3YWl0IFByb21pc2UuYWxsKGdoZXJraW5Eb2N1bWVudHMubWFwKChnaGVya2luRG9jdW1lbnQpID0+IHRleHRTZWFyY2guYWRkKGdoZXJraW5Eb2N1bWVudCkpKVxuICByZXR1cm4gdGV4dFNlYXJjaFxufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export function deriveLineageConstraints(items) {
|
|
2
|
+
const gherkinDocument = new Set();
|
|
3
|
+
const background = new Set();
|
|
4
|
+
const rule = new Set();
|
|
5
|
+
const scenario = new Set();
|
|
6
|
+
const examples = new Set();
|
|
7
|
+
const example = new Set();
|
|
8
|
+
for (const { pickle, lineage } of items) {
|
|
9
|
+
gherkinDocument.add(pickle.uri);
|
|
10
|
+
if (lineage.background) {
|
|
11
|
+
background.add(lineage.background.id);
|
|
12
|
+
}
|
|
13
|
+
if (lineage.ruleBackground) {
|
|
14
|
+
background.add(lineage.ruleBackground.id);
|
|
15
|
+
}
|
|
16
|
+
if (lineage.rule) {
|
|
17
|
+
rule.add(lineage.rule.id);
|
|
18
|
+
}
|
|
19
|
+
if (lineage.scenario) {
|
|
20
|
+
scenario.add(lineage.scenario.id);
|
|
21
|
+
}
|
|
22
|
+
if (lineage.examples) {
|
|
23
|
+
examples.add(lineage.examples.id);
|
|
24
|
+
}
|
|
25
|
+
if (lineage.example) {
|
|
26
|
+
example.add(lineage.example.id);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
gherkinDocument,
|
|
31
|
+
background,
|
|
32
|
+
rule,
|
|
33
|
+
scenario,
|
|
34
|
+
examples,
|
|
35
|
+
example,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlTGluZWFnZUNvbnN0cmFpbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlYXJjaC9kZXJpdmVMaW5lYWdlQ29uc3RyYWludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxLQUEwRDtJQUUxRCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7SUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7SUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUNqQyxLQUFLLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7UUFDeEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMzQixVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDM0MsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMzQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbkMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlO1FBQ2YsVUFBVTtRQUNWLElBQUk7UUFDSixRQUFRO1FBQ1IsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGlja2xlIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBMaW5lYWdlIH0gZnJvbSAnQGN1Y3VtYmVyL3F1ZXJ5J1xuaW1wb3J0IHR5cGUgeyBMaW5lYWdlQ29uc3RyYWludHMgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlTGluZWFnZUNvbnN0cmFpbnRzKFxuICBpdGVtczogUmVhZG9ubHlBcnJheTx7IHBpY2tsZTogUGlja2xlOyBsaW5lYWdlOiBMaW5lYWdlIH0+XG4pOiBMaW5lYWdlQ29uc3RyYWludHMge1xuICBjb25zdCBnaGVya2luRG9jdW1lbnQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBjb25zdCBiYWNrZ3JvdW5kID0gbmV3IFNldDxzdHJpbmc+KClcbiAgY29uc3QgcnVsZSA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGNvbnN0IHNjZW5hcmlvID0gbmV3IFNldDxzdHJpbmc+KClcbiAgY29uc3QgZXhhbXBsZXMgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBjb25zdCBleGFtcGxlID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCB7IHBpY2tsZSwgbGluZWFnZSB9IG9mIGl0ZW1zKSB7XG4gICAgZ2hlcmtpbkRvY3VtZW50LmFkZChwaWNrbGUudXJpKVxuICAgIGlmIChsaW5lYWdlLmJhY2tncm91bmQpIHtcbiAgICAgIGJhY2tncm91bmQuYWRkKGxpbmVhZ2UuYmFja2dyb3VuZC5pZClcbiAgICB9XG4gICAgaWYgKGxpbmVhZ2UucnVsZUJhY2tncm91bmQpIHtcbiAgICAgIGJhY2tncm91bmQuYWRkKGxpbmVhZ2UucnVsZUJhY2tncm91bmQuaWQpXG4gICAgfVxuICAgIGlmIChsaW5lYWdlLnJ1bGUpIHtcbiAgICAgIHJ1bGUuYWRkKGxpbmVhZ2UucnVsZS5pZClcbiAgICB9XG4gICAgaWYgKGxpbmVhZ2Uuc2NlbmFyaW8pIHtcbiAgICAgIHNjZW5hcmlvLmFkZChsaW5lYWdlLnNjZW5hcmlvLmlkKVxuICAgIH1cbiAgICBpZiAobGluZWFnZS5leGFtcGxlcykge1xuICAgICAgZXhhbXBsZXMuYWRkKGxpbmVhZ2UuZXhhbXBsZXMuaWQpXG4gICAgfVxuICAgIGlmIChsaW5lYWdlLmV4YW1wbGUpIHtcbiAgICAgIGV4YW1wbGUuYWRkKGxpbmVhZ2UuZXhhbXBsZS5pZClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnaGVya2luRG9jdW1lbnQsXG4gICAgYmFja2dyb3VuZCxcbiAgICBydWxlLFxuICAgIHNjZW5hcmlvLFxuICAgIGV4YW1wbGVzLFxuICAgIGV4YW1wbGUsXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Pickle, type TestCaseFinished, type TestCaseStarted, type TestStepResultStatus } from '@cucumber/messages';
|
|
2
|
+
import type { Query as CucumberQuery, Lineage } from '@cucumber/query';
|
|
3
|
+
import type { Node as TagExpression } from '@cucumber/tag-expressions';
|
|
4
|
+
export interface ExpandedTestCase<T extends TestCaseStarted | TestCaseFinished> {
|
|
5
|
+
testCaseEvent: T;
|
|
6
|
+
pickle: Pickle;
|
|
7
|
+
lineage: Lineage;
|
|
8
|
+
}
|
|
9
|
+
export interface FilterCriteria {
|
|
10
|
+
hideStatuses: ReadonlyArray<TestStepResultStatus>;
|
|
11
|
+
tagExpression?: TagExpression;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Filters test cases by status and/or tag expression, expanding each survivor with its pickle and
|
|
15
|
+
* lineage.
|
|
16
|
+
*
|
|
17
|
+
* Works for either `TestCaseStarted` or `TestCaseFinished` - the element type flows through to the
|
|
18
|
+
* `testCaseEvent` of each returned item.
|
|
19
|
+
*/
|
|
20
|
+
export declare function filterAndExpandTestCaseEvents<T extends TestCaseStarted | TestCaseFinished>(cucumberQuery: CucumberQuery, testCaseEvents: ReadonlyArray<T>, { hideStatuses, tagExpression }: FilterCriteria): Array<ExpandedTestCase<T>>;
|