Skip to content

Commit 98bae32

Browse files
committed
Merge branch 'koesie10/variant-analysis-header' into koesie10/variant-analysis-stats
2 parents 70098aa + 1261fdd commit 98bae32

5 files changed

Lines changed: 155 additions & 99 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import React from 'react';
2+
3+
import { ComponentMeta, ComponentStory } from '@storybook/react';
4+
5+
import { VariantAnalysisContainer } from '../../view/variant-analysis/VariantAnalysisContainer';
6+
import { QueryDetails as QueryDetailsComponent } from '../../view/variant-analysis/QueryDetails';
7+
8+
export default {
9+
title: 'Variant Analysis/Query Details',
10+
component: QueryDetailsComponent,
11+
decorators: [
12+
(Story) => (
13+
<VariantAnalysisContainer>
14+
<Story />
15+
</VariantAnalysisContainer>
16+
)
17+
],
18+
argTypes: {
19+
onOpenQueryFileClick: {
20+
action: 'open-query-file-clicked',
21+
table: {
22+
disable: true,
23+
},
24+
},
25+
onViewQueryTextClick: {
26+
action: 'view-query-text-clicked',
27+
table: {
28+
disable: true,
29+
},
30+
},
31+
}
32+
} as ComponentMeta<typeof QueryDetailsComponent>;
33+
34+
const Template: ComponentStory<typeof QueryDetailsComponent> = (args) => (
35+
<QueryDetailsComponent {...args} />
36+
);
37+
38+
export const QueryDetails = Template.bind({});
39+
QueryDetails.args = {
40+
queryName: 'Query name',
41+
queryFileName: 'example.ql',
42+
};
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import React from 'react';
2+
3+
import { ComponentMeta, ComponentStory } from '@storybook/react';
4+
5+
import { VariantAnalysisContainer } from '../../view/variant-analysis/VariantAnalysisContainer';
6+
import { VariantAnalysisStatus } from '../../remote-queries/shared/variant-analysis';
7+
import { VariantAnalysisActions } from '../../view/variant-analysis/VariantAnalysisActions';
8+
9+
export default {
10+
title: 'Variant Analysis/Variant Analysis Actions',
11+
component: VariantAnalysisActions,
12+
decorators: [
13+
(Story) => (
14+
<VariantAnalysisContainer>
15+
<Story />
16+
</VariantAnalysisContainer>
17+
)
18+
],
19+
argTypes: {
20+
onStopQueryClick: {
21+
action: 'stop-query-clicked',
22+
table: {
23+
disable: true,
24+
},
25+
},
26+
onCopyRepositoryListClick: {
27+
action: 'copy-repository-list-clicked',
28+
table: {
29+
disable: true,
30+
},
31+
},
32+
onExportResultsClick: {
33+
action: 'export-results-clicked',
34+
table: {
35+
disable: true,
36+
},
37+
},
38+
}
39+
} as ComponentMeta<typeof VariantAnalysisActions>;
40+
41+
const Template: ComponentStory<typeof VariantAnalysisActions> = (args) => (
42+
<VariantAnalysisActions {...args} />
43+
);
44+
45+
export const InProgress = Template.bind({});
46+
InProgress.args = {
47+
variantAnalysisStatus: VariantAnalysisStatus.InProgress,
48+
};
49+
50+
export const Succeeded = Template.bind({});
51+
Succeeded.args = {
52+
...InProgress.args,
53+
variantAnalysisStatus: VariantAnalysisStatus.Succeeded,
54+
};
55+
56+
export const Failed = Template.bind({});
57+
Failed.args = {
58+
...InProgress.args,
59+
variantAnalysisStatus: VariantAnalysisStatus.Failed,
60+
};

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import styled from 'styled-components';
33
import ViewTitle from '../remote-queries/ViewTitle';
44
import { LinkIconButton } from './LinkIconButton';
55

6-
type Props = {
6+
export type QueryDetailsProps = {
77
queryName: string;
88
queryFileName: string;
99

@@ -25,7 +25,7 @@ export const QueryDetails = ({
2525
queryFileName,
2626
onOpenQueryFileClick,
2727
onViewQueryTextClick,
28-
}: Props) => {
28+
}: QueryDetailsProps) => {
2929
return (
3030
<Container>
3131
<ViewTitle>{queryName}</ViewTitle>
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import * as React from 'react';
2+
import { render as reactRender, screen } from '@testing-library/react';
3+
import userEvent from '@testing-library/user-event';
4+
import { QueryDetails, QueryDetailsProps } from '../QueryDetails';
5+
6+
describe(QueryDetails.name, () => {
7+
const onOpenQueryFileClick = jest.fn();
8+
const onViewQueryTextClick = jest.fn();
9+
const onStopQueryClick = jest.fn();
10+
const onCopyRepositoryListClick = jest.fn();
11+
const onExportResultsClick = jest.fn();
12+
13+
afterEach(() => {
14+
onOpenQueryFileClick.mockReset();
15+
onViewQueryTextClick.mockReset();
16+
onStopQueryClick.mockReset();
17+
onCopyRepositoryListClick.mockReset();
18+
onExportResultsClick.mockReset();
19+
});
20+
21+
const render = (props: Partial<QueryDetailsProps> = {}) =>
22+
reactRender(
23+
<QueryDetails
24+
queryName="Query name"
25+
queryFileName="example.ql"
26+
onOpenQueryFileClick={onOpenQueryFileClick}
27+
onViewQueryTextClick={onViewQueryTextClick}
28+
{...props}
29+
/>
30+
);
31+
32+
it('renders correctly', () => {
33+
render();
34+
35+
expect(screen.getByText('Query name')).toBeInTheDocument();
36+
});
37+
38+
it('renders the query file name as a button', async () => {
39+
render();
40+
41+
await userEvent.click(screen.getByText('example.ql'));
42+
expect(onOpenQueryFileClick).toHaveBeenCalledTimes(1);
43+
});
44+
45+
it('renders a view query button', async () => {
46+
render();
47+
48+
await userEvent.click(screen.getByText('View query'));
49+
expect(onViewQueryTextClick).toHaveBeenCalledTimes(1);
50+
});
51+
});

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

Lines changed: 0 additions & 97 deletions
This file was deleted.

0 commit comments

Comments
 (0)