Skip to content

Commit 45a8719

Browse files
Merge pull request #1808 from github/robertbrignull/failed_analysis_pending
Don't show pending state when analysis has failed
2 parents 74e047c + 4771d9b commit 45a8719

2 files changed

Lines changed: 57 additions & 3 deletions

File tree

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
VariantAnalysis as VariantAnalysisDomainModel,
66
VariantAnalysisScannedRepositoryResult,
77
VariantAnalysisScannedRepositoryState,
8+
VariantAnalysisStatus,
89
} from "../../remote-queries/shared/variant-analysis";
910
import { VariantAnalysisHeader } from "./VariantAnalysisHeader";
1011
import { VariantAnalysisOutcomePanels } from "./VariantAnalysisOutcomePanels";
@@ -16,7 +17,7 @@ import {
1617
RepositoriesFilterSortState,
1718
} from "../../pure/variant-analysis-filter-sort";
1819

19-
type Props = {
20+
export type VariantAnalysisProps = {
2021
variantAnalysis?: VariantAnalysisDomainModel;
2122
repoStates?: VariantAnalysisScannedRepositoryState[];
2223
repoResults?: VariantAnalysisScannedRepositoryResult[];
@@ -50,7 +51,7 @@ export function VariantAnalysis({
5051
variantAnalysis: initialVariantAnalysis,
5152
repoStates: initialRepoStates = [],
5253
repoResults: initialRepoResults = [],
53-
}: Props): JSX.Element {
54+
}: VariantAnalysisProps): JSX.Element {
5455
const [variantAnalysis, setVariantAnalysis] = useState<
5556
VariantAnalysisDomainModel | undefined
5657
>(initialVariantAnalysis);
@@ -128,7 +129,11 @@ export function VariantAnalysis({
128129
});
129130
}, [filterSortState, selectedRepositoryIds]);
130131

131-
if (variantAnalysis?.actionsWorkflowRunId === undefined) {
132+
if (
133+
variantAnalysis === undefined ||
134+
(variantAnalysis.status === VariantAnalysisStatus.InProgress &&
135+
variantAnalysis.actionsWorkflowRunId === undefined)
136+
) {
132137
return <VariantAnalysisLoading />;
133138
}
134139

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)