Skip to content

Commit 68e9cac

Browse files
authored
Cleanup in comparison table stories (#1771)
1 parent b9f016d commit 68e9cac

File tree

4 files changed

+30
-34
lines changed

4 files changed

+30
-34
lines changed

webview/src/plots/components/comparisonTable/ComparisonTable.test.tsx

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -213,16 +213,6 @@ describe('ComparisonTable', () => {
213213
expect(headers).toStrictEqual([...namedRevisions, newRevName])
214214
})
215215

216-
it('should pin the current pinned column on first render', () => {
217-
const pinnedRevision = 'main'
218-
219-
renderTable({ ...basicProps, currentPinnedColumn: pinnedRevision })
220-
221-
const [pinnedColumn] = getHeaders()
222-
223-
expect(pinnedColumn.textContent).toBe(pinnedRevision)
224-
})
225-
226216
it('should display a refresh button for each revision that has a missing image', () => {
227217
const revisionWithNoData = 'missing-data'
228218

webview/src/plots/components/comparisonTable/ComparisonTable.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,16 @@ import plotsStyles from '../styles.module.scss'
1515
import { withScale } from '../../../util/styles'
1616
import { sendMessage } from '../../../shared/vscode'
1717

18-
export interface ComparisonTableProps
19-
extends Omit<PlotsComparisonData, 'sectionName' | 'size'> {
20-
currentPinnedColumn?: string
21-
}
18+
export type ComparisonTableProps = Omit<
19+
PlotsComparisonData,
20+
'sectionName' | 'size'
21+
>
2222

2323
export const ComparisonTable: React.FC<ComparisonTableProps> = ({
2424
plots,
25-
revisions,
26-
currentPinnedColumn
25+
revisions
2726
}) => {
28-
const pinnedColumn = useRef(currentPinnedColumn || '')
27+
const pinnedColumn = useRef('')
2928
const [columns, setColumns] = useState<ComparisonTableColumn[]>([])
3029
const [comparisonPlots, setComparisonPlots] = useState<ComparisonPlots>([])
3130

webview/src/plots/components/comparisonTable/ComparisonTableHeader.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ export const ComparisonTableHeader: React.FC<ComparisonTableHeaderProps> = ({
2121
})
2222

2323
return (
24-
<div className={styles.header}>
24+
<div
25+
className={styles.header}
26+
data-testid={`${children?.toString().split(',')[0]}-header`}
27+
>
2528
{!isPinned && <GripIcon className={styles.gripIcon} />}
2629
<button className={pinClasses} onClick={onClicked}>
2730
<Pin />

webview/src/stories/ComparisonTable.stories.tsx

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Meta, Story } from '@storybook/react/types-6-0'
2+
import { fireEvent, within } from '@testing-library/react'
23
import React from 'react'
34
import { ComparisonRevisionData } from 'dvc/src/plots/webview/contract'
45
import comparisonTableFixture from 'dvc/src/test/fixtures/plotsDiff/comparison'
@@ -7,33 +8,36 @@ import {
78
ComparisonTableProps
89
} from '../plots/components/comparisonTable/ComparisonTable'
910
import { Theme } from '../shared/components/theme/Theme'
11+
import { DragDropProvider } from '../shared/components/dragDrop/DragDropContext'
1012

1113
export default {
1214
args: comparisonTableFixture,
1315
component: ComparisonTable,
1416
title: 'Comparison Table'
1517
} as Meta
1618

17-
const Template: Story<ComparisonTableProps> = ({
18-
plots,
19-
revisions,
20-
currentPinnedColumn
21-
}) => (
22-
<Theme>
23-
<ComparisonTable
24-
plots={plots}
25-
revisions={revisions}
26-
currentPinnedColumn={currentPinnedColumn}
27-
/>
28-
</Theme>
29-
)
19+
const Template: Story<ComparisonTableProps> = ({ plots, revisions }) => {
20+
return (
21+
<Theme>
22+
<DragDropProvider>
23+
<ComparisonTable plots={plots} revisions={revisions} />
24+
</DragDropProvider>
25+
</Theme>
26+
)
27+
}
3028

3129
export const Basic = Template.bind({})
3230

3331
export const WithPinnedColumn = Template.bind({})
34-
WithPinnedColumn.args = {
35-
...comparisonTableFixture,
36-
currentPinnedColumn: 'main'
32+
WithPinnedColumn.parameters = {
33+
chromatic: { delay: 300 }
34+
}
35+
WithPinnedColumn.play = async ({ canvasElement }) => {
36+
const canvas = within(canvasElement)
37+
const mainHeader = await canvas.findByTestId('main-header')
38+
const pin = within(mainHeader).getByRole('button')
39+
40+
fireEvent.click(pin)
3741
}
3842

3943
const removeSingleImage = (

0 commit comments

Comments
 (0)