Skip to content

Commit e164bbb

Browse files
committed
Handle canceled status in variant analysis view
The variant analysis view was missing an alert when the variant analysis was canceled. This adds it, and also adds a story for checking what the view of a canceled variant analysis looks like.
1 parent bbdad0a commit e164bbb

File tree

3 files changed

+123
-1
lines changed

3 files changed

+123
-1
lines changed

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

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,3 +256,109 @@ FullExampleWithoutSkipped.args = {
256256
repoStates,
257257
repoResults,
258258
};
259+
260+
export const Canceled = Template.bind({});
261+
Canceled.args = {
262+
variantAnalysis: {
263+
...variantAnalysis,
264+
status: VariantAnalysisStatus.Canceled,
265+
completedAt: new Date(new Date(variantAnalysis.createdAt).getTime() + 100_000).toISOString(),
266+
scannedRepos: [
267+
{
268+
repository: {
269+
...createMockRepositoryWithMetadata(),
270+
id: 1,
271+
fullName: 'octodemo/hello-world-1',
272+
private: false,
273+
},
274+
analysisStatus: VariantAnalysisRepoStatus.Succeeded,
275+
resultCount: 200,
276+
},
277+
{
278+
repository: {
279+
...createMockRepositoryWithMetadata(),
280+
id: 2,
281+
fullName: 'octodemo/hello-world-2',
282+
private: false,
283+
},
284+
analysisStatus: VariantAnalysisRepoStatus.Succeeded,
285+
resultCount: 10_000,
286+
},
287+
{
288+
repository: {
289+
...createMockRepositoryWithMetadata(),
290+
id: 3,
291+
fullName: 'octodemo/hello-world-3',
292+
private: false,
293+
},
294+
analysisStatus: VariantAnalysisRepoStatus.Succeeded,
295+
resultCount: 500,
296+
},
297+
{
298+
repository: {
299+
...createMockRepositoryWithMetadata(),
300+
id: 4,
301+
fullName: 'octodemo/hello-world-4',
302+
private: false,
303+
},
304+
analysisStatus: VariantAnalysisRepoStatus.Canceled,
305+
},
306+
{
307+
repository: {
308+
...createMockRepositoryWithMetadata(),
309+
id: 5,
310+
fullName: 'octodemo/hello-world-5',
311+
private: false,
312+
},
313+
analysisStatus: VariantAnalysisRepoStatus.Failed,
314+
},
315+
{
316+
repository: {
317+
...createMockRepositoryWithMetadata(),
318+
id: 6,
319+
fullName: 'octodemo/hello-world-6',
320+
private: false,
321+
},
322+
analysisStatus: VariantAnalysisRepoStatus.Canceled,
323+
},
324+
{
325+
repository: {
326+
...createMockRepositoryWithMetadata(),
327+
id: 7,
328+
fullName: 'octodemo/hello-world-7',
329+
private: false,
330+
},
331+
analysisStatus: VariantAnalysisRepoStatus.Canceled,
332+
},
333+
{
334+
repository: {
335+
...createMockRepositoryWithMetadata(),
336+
id: 8,
337+
fullName: 'octodemo/hello-world-8',
338+
private: false,
339+
},
340+
analysisStatus: VariantAnalysisRepoStatus.Canceled,
341+
},
342+
{
343+
repository: {
344+
...createMockRepositoryWithMetadata(),
345+
id: 9,
346+
fullName: 'octodemo/hello-world-9',
347+
private: false,
348+
},
349+
analysisStatus: VariantAnalysisRepoStatus.Canceled,
350+
},
351+
{
352+
repository: {
353+
...createMockRepositoryWithMetadata(),
354+
id: 10,
355+
fullName: 'octodemo/hello-world-10',
356+
private: false,
357+
},
358+
analysisStatus: VariantAnalysisRepoStatus.Canceled,
359+
},
360+
],
361+
},
362+
repoStates,
363+
repoResults,
364+
};

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { formatDecimal } from '../../pure/number';
66
import {
77
VariantAnalysis,
88
VariantAnalysisScannedRepositoryResult,
9-
VariantAnalysisScannedRepositoryState
9+
VariantAnalysisScannedRepositoryState,
10+
VariantAnalysisStatus,
1011
} from '../../remote-queries/shared/variant-analysis';
1112
import { VariantAnalysisAnalyzedRepos } from './VariantAnalysisAnalyzedRepos';
1213
import { Alert } from '../common';
@@ -54,6 +55,13 @@ export const VariantAnalysisOutcomePanels = ({
5455

5556
const warnings = (
5657
<WarningsContainer>
58+
{variantAnalysis.status === VariantAnalysisStatus.Canceled && (
59+
<Alert
60+
type="warning"
61+
title="Query manually stopped"
62+
message="This query was manually stopped before the analysis completed. Results may be partial."
63+
/>
64+
)}
5765
{overLimitRepositoryCount > 0 && (
5866
<Alert
5967
type="warning"

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,14 @@ describe(VariantAnalysisOutcomePanels.name, () => {
136136
expect(screen.getByText('No database')).toBeInTheDocument();
137137
});
138138

139+
it('renders warning with canceled variant analysis', () => {
140+
render({
141+
status: VariantAnalysisStatus.Canceled,
142+
});
143+
144+
expect(screen.getByText('Warning: Query manually stopped')).toBeInTheDocument();
145+
});
146+
139147
it('renders warning with access mismatch repos', () => {
140148
render({
141149
skippedRepos: {

0 commit comments

Comments
 (0)