Skip to content

Commit 4771d9b

Browse files
Add tests of a pending and failed variant analysis
1 parent 339819c commit 4771d9b

2 files changed

Lines changed: 51 additions & 2 deletions

File tree

extensions/ql-vscode/src/view/variant-analysis/VariantAnalysis.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
RepositoriesFilterSortState,
1818
} from "../../pure/variant-analysis-filter-sort";
1919

20-
type Props = {
20+
export type VariantAnalysisProps = {
2121
variantAnalysis?: VariantAnalysisDomainModel;
2222
repoStates?: VariantAnalysisScannedRepositoryState[];
2323
repoResults?: VariantAnalysisScannedRepositoryResult[];
@@ -51,7 +51,7 @@ export function VariantAnalysis({
5151
variantAnalysis: initialVariantAnalysis,
5252
repoStates: initialRepoStates = [],
5353
repoResults: initialRepoResults = [],
54-
}: Props): JSX.Element {
54+
}: VariantAnalysisProps): JSX.Element {
5555
const [variantAnalysis, setVariantAnalysis] = useState<
5656
VariantAnalysisDomainModel | undefined
5757
>(initialVariantAnalysis);
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import * as React from "react";
2+
import { render as reactRender, screen } from "@testing-library/react";
3+
import {
4+
VariantAnalysisFailureReason,
5+
VariantAnalysisStatus,
6+
} from "../../../remote-queries/shared/variant-analysis";
7+
import { VariantAnalysis, VariantAnalysisProps } from "../VariantAnalysis";
8+
import { createMockVariantAnalysis } from "../../../vscode-tests/factories/remote-queries/shared/variant-analysis";
9+
10+
describe(VariantAnalysis.name, () => {
11+
const render = (props: Partial<VariantAnalysisProps> = {}) =>
12+
reactRender(
13+
<VariantAnalysis
14+
variantAnalysis={createMockVariantAnalysis({})}
15+
{...props}
16+
/>,
17+
);
18+
19+
it("renders a pending analysis", () => {
20+
const variantAnalysis = createMockVariantAnalysis({
21+
status: VariantAnalysisStatus.InProgress,
22+
});
23+
variantAnalysis.actionsWorkflowRunId = undefined;
24+
render({ variantAnalysis });
25+
26+
expect(
27+
screen.getByText("We are getting everything ready"),
28+
).toBeInTheDocument();
29+
});
30+
31+
it("renders an analysis where there were no repos to analyse", () => {
32+
const variantAnalysis = createMockVariantAnalysis({
33+
status: VariantAnalysisStatus.Failed,
34+
});
35+
variantAnalysis.failureReason = VariantAnalysisFailureReason.NoReposQueried;
36+
variantAnalysis.actionsWorkflowRunId = undefined;
37+
render({ variantAnalysis });
38+
39+
expect(
40+
screen.queryByText("We are getting everything ready"),
41+
).not.toBeInTheDocument();
42+
43+
expect(
44+
screen.getByText(
45+
"No repositories available after processing. No repositories were analyzed.",
46+
),
47+
).toBeInTheDocument();
48+
});
49+
});

0 commit comments

Comments
 (0)