Merge pull request #1808 from github/robertbrignull/failed_analysis_pending
Don't show pending state when analysis has failed
This commit is contained in:
@@ -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 />;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user