Merge pull request #1808 from github/robertbrignull/failed_analysis_pending

Don't show pending state when analysis has failed
This commit is contained in:
Robert
2022-11-30 15:18:11 +00:00
committed by GitHub
2 changed files with 57 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import {
VariantAnalysis as VariantAnalysisDomainModel,
VariantAnalysisScannedRepositoryResult,
VariantAnalysisScannedRepositoryState,
VariantAnalysisStatus,
} from "../../remote-queries/shared/variant-analysis";
import { VariantAnalysisHeader } from "./VariantAnalysisHeader";
import { VariantAnalysisOutcomePanels } from "./VariantAnalysisOutcomePanels";
@@ -16,7 +17,7 @@ import {
RepositoriesFilterSortState,
} from "../../pure/variant-analysis-filter-sort";
type Props = {
export type VariantAnalysisProps = {
variantAnalysis?: VariantAnalysisDomainModel;
repoStates?: VariantAnalysisScannedRepositoryState[];
repoResults?: VariantAnalysisScannedRepositoryResult[];
@@ -50,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);
@@ -128,7 +129,11 @@ export function VariantAnalysis({
});
}, [filterSortState, selectedRepositoryIds]);
if (variantAnalysis?.actionsWorkflowRunId === undefined) {
if (
variantAnalysis === undefined ||
(variantAnalysis.status === VariantAnalysisStatus.InProgress &&
variantAnalysis.actionsWorkflowRunId === undefined)
) {
return <VariantAnalysisLoading />;
}

View File

@@ -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<VariantAnalysisProps> = {}) =>
reactRender(
<VariantAnalysis
variantAnalysis={createMockVariantAnalysis({})}
{...props}
/>,
);
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();
});
});