diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysis.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysis.tsx index 02b4f8957..9ec2a132b 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysis.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysis.tsx @@ -17,7 +17,7 @@ import { RepositoriesFilterSortState, } from "../../pure/variant-analysis-filter-sort"; -type Props = { +export type VariantAnalysisProps = { variantAnalysis?: VariantAnalysisDomainModel; repoStates?: VariantAnalysisScannedRepositoryState[]; repoResults?: VariantAnalysisScannedRepositoryResult[]; @@ -51,7 +51,7 @@ export function VariantAnalysis({ variantAnalysis: initialVariantAnalysis, repoStates: initialRepoStates = [], repoResults: initialRepoResults = [], -}: Props): JSX.Element { +}: VariantAnalysisProps): JSX.Element { const [variantAnalysis, setVariantAnalysis] = useState< VariantAnalysisDomainModel | undefined >(initialVariantAnalysis); diff --git a/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysis.spec.tsx b/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysis.spec.tsx new file mode 100644 index 000000000..a073ef331 --- /dev/null +++ b/extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysis.spec.tsx @@ -0,0 +1,49 @@ +import * as React from "react"; +import { render as reactRender, screen } from "@testing-library/react"; +import { + VariantAnalysisFailureReason, + VariantAnalysisStatus, +} from "../../../remote-queries/shared/variant-analysis"; +import { VariantAnalysis, VariantAnalysisProps } from "../VariantAnalysis"; +import { createMockVariantAnalysis } from "../../../vscode-tests/factories/remote-queries/shared/variant-analysis"; + +describe(VariantAnalysis.name, () => { + const render = (props: Partial = {}) => + reactRender( + , + ); + + it("renders a pending analysis", () => { + const variantAnalysis = createMockVariantAnalysis({ + status: VariantAnalysisStatus.InProgress, + }); + variantAnalysis.actionsWorkflowRunId = undefined; + render({ variantAnalysis }); + + expect( + screen.getByText("We are getting everything ready"), + ).toBeInTheDocument(); + }); + + it("renders an analysis where there were no repos to analyse", () => { + const variantAnalysis = createMockVariantAnalysis({ + status: VariantAnalysisStatus.Failed, + }); + variantAnalysis.failureReason = VariantAnalysisFailureReason.NoReposQueried; + variantAnalysis.actionsWorkflowRunId = undefined; + render({ variantAnalysis }); + + expect( + screen.queryByText("We are getting everything ready"), + ).not.toBeInTheDocument(); + + expect( + screen.getByText( + "No repositories available after processing. No repositories were analyzed.", + ), + ).toBeInTheDocument(); + }); +});