Skip to content

Commit b91e31c

Browse files
authored
Merge pull request #1835 from github/koesie10/hide-analyzed-when-failed
Hide analyzed panel when it's empty
2 parents 272aed7 + 96850e4 commit b91e31c

File tree

3 files changed

+75
-16
lines changed

3 files changed

+75
-16
lines changed

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,3 +385,19 @@ Failed.args = {
385385
repoStates,
386386
repoResults,
387387
};
388+
389+
export const FailedInternal = Template.bind({});
390+
FailedInternal.args = {
391+
variantAnalysis: {
392+
...variantAnalysis,
393+
status: VariantAnalysisStatus.Failed,
394+
failureReason: VariantAnalysisFailureReason.InternalError,
395+
completedAt: new Date(
396+
new Date(variantAnalysis.createdAt).getTime() + 100_000,
397+
).toISOString(),
398+
scannedRepos: [],
399+
skippedRepos: {},
400+
},
401+
repoStates,
402+
repoResults,
403+
};

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

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,14 @@ export const VariantAnalysisOutcomePanels = ({
110110
</WarningsContainer>
111111
);
112112

113+
const noPanels =
114+
scannedReposCount === 0 &&
115+
!noCodeqlDbRepos?.repositoryCount &&
116+
!notFoundRepos?.repositoryCount;
117+
if (noPanels) {
118+
return warnings;
119+
}
120+
113121
if (!noCodeqlDbRepos?.repositoryCount && !notFoundRepos?.repositoryCount) {
114122
return (
115123
<>
@@ -138,12 +146,14 @@ export const VariantAnalysisOutcomePanels = ({
138146
onChange={setFilterSortState}
139147
/>
140148
<VSCodePanels>
141-
<Tab>
142-
Analyzed
143-
<VSCodeBadge appearance="secondary">
144-
{formatDecimal(variantAnalysis.scannedRepos?.length ?? 0)}
145-
</VSCodeBadge>
146-
</Tab>
149+
{scannedReposCount > 0 && (
150+
<Tab>
151+
Analyzed
152+
<VSCodeBadge appearance="secondary">
153+
{formatDecimal(variantAnalysis.scannedRepos?.length ?? 0)}
154+
</VSCodeBadge>
155+
</Tab>
156+
)}
147157
{notFoundRepos?.repositoryCount && (
148158
<Tab>
149159
No access
@@ -160,16 +170,18 @@ export const VariantAnalysisOutcomePanels = ({
160170
</VSCodeBadge>
161171
</Tab>
162172
)}
163-
<VSCodePanelView>
164-
<VariantAnalysisAnalyzedRepos
165-
variantAnalysis={variantAnalysis}
166-
repositoryStates={repositoryStates}
167-
repositoryResults={repositoryResults}
168-
filterSortState={filterSortState}
169-
selectedRepositoryIds={selectedRepositoryIds}
170-
setSelectedRepositoryIds={setSelectedRepositoryIds}
171-
/>
172-
</VSCodePanelView>
173+
{scannedReposCount > 0 && (
174+
<VSCodePanelView>
175+
<VariantAnalysisAnalyzedRepos
176+
variantAnalysis={variantAnalysis}
177+
repositoryStates={repositoryStates}
178+
repositoryResults={repositoryResults}
179+
filterSortState={filterSortState}
180+
selectedRepositoryIds={selectedRepositoryIds}
181+
setSelectedRepositoryIds={setSelectedRepositoryIds}
182+
/>
183+
</VSCodePanelView>
184+
)}
173185
{notFoundRepos?.repositoryCount && (
174186
<VSCodePanelView>
175187
<VariantAnalysisSkippedRepositoriesTab

extensions/ql-vscode/src/view/variant-analysis/__tests__/VariantAnalysisOutcomePanels.spec.tsx

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import * as React from "react";
22
import { render as reactRender, screen } from "@testing-library/react";
33
import {
44
VariantAnalysis,
5+
VariantAnalysisFailureReason,
56
VariantAnalysisRepoStatus,
67
VariantAnalysisStatus,
78
} from "../../../remote-queries/shared/variant-analysis";
@@ -144,6 +145,36 @@ describe(VariantAnalysisOutcomePanels.name, () => {
144145
expect(screen.getByText("No database")).toBeInTheDocument();
145146
});
146147

148+
it("does not render analyzed panel when there are no scanned repos", () => {
149+
render({
150+
scannedRepos: [],
151+
skippedRepos: {
152+
notFoundRepos: defaultVariantAnalysis.skippedRepos.notFoundRepos,
153+
noCodeqlDbRepos: defaultVariantAnalysis.skippedRepos.noCodeqlDbRepos,
154+
},
155+
});
156+
157+
expect(screen.queryByRole("Analyzed")).not.toBeInTheDocument();
158+
expect(screen.getByText("No access")).toBeInTheDocument();
159+
expect(screen.getByText("No database")).toBeInTheDocument();
160+
});
161+
162+
it("does not render any tabs when there are no repos", () => {
163+
render({
164+
status: VariantAnalysisStatus.Failed,
165+
failureReason: VariantAnalysisFailureReason.InternalError,
166+
scannedRepos: [],
167+
skippedRepos: {},
168+
});
169+
170+
expect(screen.queryByRole("Analyzed")).not.toBeInTheDocument();
171+
expect(screen.queryByRole("No access")).not.toBeInTheDocument();
172+
expect(screen.queryByRole("No database")).not.toBeInTheDocument();
173+
expect(
174+
screen.getByText("Error: Something unexpected happened"),
175+
).toBeInTheDocument();
176+
});
177+
147178
it("renders warning with canceled variant analysis", () => {
148179
render({
149180
status: VariantAnalysisStatus.Canceled,

0 commit comments

Comments
 (0)