Merge pull request #1835 from github/koesie10/hide-analyzed-when-failed

Hide analyzed panel when it's empty
This commit is contained in:
Koen Vlaswinkel
2022-12-05 14:51:11 +01:00
committed by GitHub
3 changed files with 75 additions and 16 deletions

View File

@@ -385,3 +385,19 @@ Failed.args = {
repoStates,
repoResults,
};
export const FailedInternal = Template.bind({});
FailedInternal.args = {
variantAnalysis: {
...variantAnalysis,
status: VariantAnalysisStatus.Failed,
failureReason: VariantAnalysisFailureReason.InternalError,
completedAt: new Date(
new Date(variantAnalysis.createdAt).getTime() + 100_000,
).toISOString(),
scannedRepos: [],
skippedRepos: {},
},
repoStates,
repoResults,
};

View File

@@ -110,6 +110,14 @@ export const VariantAnalysisOutcomePanels = ({
</WarningsContainer>
);
const noPanels =
scannedReposCount === 0 &&
!noCodeqlDbRepos?.repositoryCount &&
!notFoundRepos?.repositoryCount;
if (noPanels) {
return warnings;
}
if (!noCodeqlDbRepos?.repositoryCount && !notFoundRepos?.repositoryCount) {
return (
<>
@@ -138,12 +146,14 @@ export const VariantAnalysisOutcomePanels = ({
onChange={setFilterSortState}
/>
<VSCodePanels>
<Tab>
Analyzed
<VSCodeBadge appearance="secondary">
{formatDecimal(variantAnalysis.scannedRepos?.length ?? 0)}
</VSCodeBadge>
</Tab>
{scannedReposCount > 0 && (
<Tab>
Analyzed
<VSCodeBadge appearance="secondary">
{formatDecimal(variantAnalysis.scannedRepos?.length ?? 0)}
</VSCodeBadge>
</Tab>
)}
{notFoundRepos?.repositoryCount && (
<Tab>
No access
@@ -160,16 +170,18 @@ export const VariantAnalysisOutcomePanels = ({
</VSCodeBadge>
</Tab>
)}
<VSCodePanelView>
<VariantAnalysisAnalyzedRepos
variantAnalysis={variantAnalysis}
repositoryStates={repositoryStates}
repositoryResults={repositoryResults}
filterSortState={filterSortState}
selectedRepositoryIds={selectedRepositoryIds}
setSelectedRepositoryIds={setSelectedRepositoryIds}
/>
</VSCodePanelView>
{scannedReposCount > 0 && (
<VSCodePanelView>
<VariantAnalysisAnalyzedRepos
variantAnalysis={variantAnalysis}
repositoryStates={repositoryStates}
repositoryResults={repositoryResults}
filterSortState={filterSortState}
selectedRepositoryIds={selectedRepositoryIds}
setSelectedRepositoryIds={setSelectedRepositoryIds}
/>
</VSCodePanelView>
)}
{notFoundRepos?.repositoryCount && (
<VSCodePanelView>
<VariantAnalysisSkippedRepositoriesTab

View File

@@ -2,6 +2,7 @@ import * as React from "react";
import { render as reactRender, screen } from "@testing-library/react";
import {
VariantAnalysis,
VariantAnalysisFailureReason,
VariantAnalysisRepoStatus,
VariantAnalysisStatus,
} from "../../../remote-queries/shared/variant-analysis";
@@ -144,6 +145,36 @@ describe(VariantAnalysisOutcomePanels.name, () => {
expect(screen.getByText("No database")).toBeInTheDocument();
});
it("does not render analyzed panel when there are no scanned repos", () => {
render({
scannedRepos: [],
skippedRepos: {
notFoundRepos: defaultVariantAnalysis.skippedRepos.notFoundRepos,
noCodeqlDbRepos: defaultVariantAnalysis.skippedRepos.noCodeqlDbRepos,
},
});
expect(screen.queryByRole("Analyzed")).not.toBeInTheDocument();
expect(screen.getByText("No access")).toBeInTheDocument();
expect(screen.getByText("No database")).toBeInTheDocument();
});
it("does not render any tabs when there are no repos", () => {
render({
status: VariantAnalysisStatus.Failed,
failureReason: VariantAnalysisFailureReason.InternalError,
scannedRepos: [],
skippedRepos: {},
});
expect(screen.queryByRole("Analyzed")).not.toBeInTheDocument();
expect(screen.queryByRole("No access")).not.toBeInTheDocument();
expect(screen.queryByRole("No database")).not.toBeInTheDocument();
expect(
screen.getByText("Error: Something unexpected happened"),
).toBeInTheDocument();
});
it("renders warning with canceled variant analysis", () => {
render({
status: VariantAnalysisStatus.Canceled,