Skip to content

Commit 8a1762e

Browse files
authored
test: Add E2E tests for k8s dashboard (#1192)
Closes HDX-2449 This PR adds e2e tests for the preset k8s dashboard.
1 parent a971535 commit 8a1762e

File tree

7 files changed

+188
-20
lines changed

7 files changed

+188
-20
lines changed

packages/app/src/AppNav.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,7 @@ export default function AppNav({ fixed = false }: { fixed?: boolean }) {
822822
[styles.listLinkActive]:
823823
pathname.startsWith('/kubernetes'),
824824
})}
825+
data-testid="k8s-dashboard-nav-link"
825826
>
826827
Kubernetes
827828
</Link>

packages/app/src/KubernetesDashboardPage.tsx

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ export const InfraPodsStatusTable = ({
291291
});
292292

293293
return (
294-
<Card p="md">
294+
<Card p="md" data-testid="k8s-pods-table">
295295
<Card.Section p="md" py="xs" withBorder>
296296
<Group align="center" justify="space-between">
297297
Pods
@@ -354,7 +354,11 @@ export const InfraPodsStatusTable = ({
354354
<Link key={pod.id} href={getLink(pod.name)} legacyBehavior>
355355
<Table.Tr className="cursor-pointer">
356356
<Table.Td>{pod.name}</Table.Td>
357-
<Table.Td>{pod.namespace}</Table.Td>
357+
<Table.Td
358+
data-testid={`k8s-pods-table-namespace-${pod.id}`}
359+
>
360+
{pod.namespace}
361+
</Table.Td>
358362
<Table.Td>{pod.node}</Table.Td>
359363
<Table.Td>
360364
<FormatPodStatus status={pod.phase} />
@@ -513,7 +517,7 @@ const NodesTable = ({
513517
}, [data]);
514518

515519
return (
516-
<Card p="md">
520+
<Card p="md" data-testid="k8s-nodes-table">
517521
<Card.Section p="md" py="xs" withBorder>
518522
Nodes
519523
</Card.Section>
@@ -677,7 +681,7 @@ const NamespacesTable = ({
677681
}, []);
678682

679683
return (
680-
<Card p="md">
684+
<Card p="md" data-testid="k8s-namespaces-table">
681685
<Card.Section p="md" py="xs" withBorder>
682686
Namespaces
683687
</Card.Section>
@@ -909,7 +913,7 @@ function KubernetesDashboardPage() {
909913
<Tabs.Panel value="pods">
910914
<Grid>
911915
<Grid.Col span={6}>
912-
<Card p="md">
916+
<Card p="md" data-testid="pod-cpu-usage-chart">
913917
<Card.Section p="md" py="xs" withBorder>
914918
CPU Usage
915919
</Card.Section>
@@ -948,7 +952,7 @@ function KubernetesDashboardPage() {
948952
</Card>
949953
</Grid.Col>
950954
<Grid.Col span={6}>
951-
<Card p="md">
955+
<Card p="md" data-testid="pod-memory-usage-chart">
952956
<Card.Section p="md" py="xs" withBorder>
953957
Memory Usage
954958
</Card.Section>
@@ -996,7 +1000,7 @@ function KubernetesDashboardPage() {
9961000
)}
9971001
</Grid.Col>
9981002
<Grid.Col span={12}>
999-
<Card p="md">
1003+
<Card p="md" data-testid="k8s-warning-events-table">
10001004
<Card.Section p="md" py="xs" withBorder>
10011005
<Flex justify="space-between">
10021006
Latest Kubernetes Warning Events
@@ -1076,7 +1080,7 @@ function KubernetesDashboardPage() {
10761080
<Tabs.Panel value="nodes">
10771081
<Grid>
10781082
<Grid.Col span={6}>
1079-
<Card p="md">
1083+
<Card p="md" data-testid="nodes-cpu-usage-chart">
10801084
<Card.Section p="md" py="xs" withBorder>
10811085
CPU Usage
10821086
</Card.Section>
@@ -1115,7 +1119,7 @@ function KubernetesDashboardPage() {
11151119
</Card>
11161120
</Grid.Col>
11171121
<Grid.Col span={6}>
1118-
<Card p="md">
1122+
<Card p="md" data-testid="nodes-memory-usage-chart">
11191123
<Card.Section p="md" py="xs" withBorder>
11201124
Memory Usage
11211125
</Card.Section>
@@ -1167,7 +1171,7 @@ function KubernetesDashboardPage() {
11671171
<Tabs.Panel value="namespaces">
11681172
<Grid>
11691173
<Grid.Col span={6}>
1170-
<Card p="md">
1174+
<Card p="md" data-testid="namespaces-cpu-usage-chart">
11711175
<Card.Section p="md" py="xs" withBorder>
11721176
CPU Usage
11731177
</Card.Section>
@@ -1206,7 +1210,7 @@ function KubernetesDashboardPage() {
12061210
</Card>
12071211
</Grid.Col>
12081212
<Grid.Col span={6}>
1209-
<Card p="md">
1213+
<Card p="md" data-testid="namespaces-memory-usage-chart">
12101214
<Card.Section p="md" py="xs" withBorder>
12111215
Memory Usage
12121216
</Card.Section>

packages/app/src/NamespaceDetailsSidePanel.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,10 @@ const NamespaceDetails = ({
100100

101101
return (
102102
<Grid.Col span={12}>
103-
<div className="p-2 gap-2 d-flex flex-wrap">
103+
<div
104+
className="p-2 gap-2 d-flex flex-wrap"
105+
data-testid="k8s-namespace-details-panel"
106+
>
104107
<PodDetailsProperty label="Namespace" value={name} />
105108
{properties.ready !== undefined && (
106109
<PodDetailsProperty
@@ -354,7 +357,7 @@ export default function NamespaceDetailsSidePanel({
354357
metricSource={metricSource}
355358
/>
356359
<Grid.Col span={6}>
357-
<Card p="md">
360+
<Card p="md" data-testid="namespace-details-cpu-usage-chart">
358361
<Card.Section p="md" py="xs" withBorder>
359362
CPU Usage by Pod
360363
</Card.Section>
@@ -389,7 +392,7 @@ export default function NamespaceDetailsSidePanel({
389392
</Card>
390393
</Grid.Col>
391394
<Grid.Col span={6}>
392-
<Card p="md">
395+
<Card p="md" data-testid="namespace-details-memory-usage-chart">
393396
<Card.Section p="md" py="xs" withBorder>
394397
Memory Usage by Pod
395398
</Card.Section>

packages/app/src/NodeDetailsSidePanel.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ export default function NodeDetailsSidePanel({
360360
zIndex={drawerZIndex}
361361
>
362362
<ZIndexContext.Provider value={drawerZIndex}>
363-
<div className={styles.panel}>
363+
<div className={styles.panel} data-testid="k8s-node-details-panel">
364364
<DrawerHeader
365365
header={`Details for ${nodeName}`}
366366
onClose={handleClose}
@@ -373,7 +373,7 @@ export default function NodeDetailsSidePanel({
373373
metricSource={metricSource}
374374
/>
375375
<Grid.Col span={6}>
376-
<Card p="md">
376+
<Card p="md" data-testid="nodes-details-cpu-usage-chart">
377377
<Card.Section p="md" py="xs" withBorder>
378378
CPU Usage by Pod
379379
</Card.Section>
@@ -407,7 +407,7 @@ export default function NodeDetailsSidePanel({
407407
</Card.Section>
408408
</Card>
409409
</Grid.Col>
410-
<Grid.Col span={6}>
410+
<Grid.Col span={6} data-testid="nodes-details-memory-usage-chart">
411411
<Card p="md">
412412
<Card.Section p="md" py="xs" withBorder>
413413
Memory Usage by Pod

packages/app/src/PodDetailsSidePanel.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ export default function PodDetailsSidePanel({
352352
zIndex={drawerZIndex}
353353
>
354354
<ZIndexContext.Provider value={drawerZIndex}>
355-
<div className={styles.panel}>
355+
<div className={styles.panel} data-testid="k8s-pod-details-panel">
356356
<DrawerHeader
357357
header={`Details for ${podName}`}
358358
onClose={handleClose}
@@ -365,7 +365,7 @@ export default function PodDetailsSidePanel({
365365
podName={podName}
366366
/>
367367
<Grid.Col span={6}>
368-
<Card p="md">
368+
<Card p="md" data-testid="pod-details-cpu-usage-chart">
369369
<Card.Section p="md" py="xs" withBorder>
370370
CPU Usage
371371
</Card.Section>
@@ -401,7 +401,7 @@ export default function PodDetailsSidePanel({
401401
</Card>
402402
</Grid.Col>
403403
<Grid.Col span={6}>
404-
<Card p="md">
404+
<Card p="md" data-testid="pod-details-memory-usage-chart">
405405
<Card.Section p="md" py="xs" withBorder>
406406
Memory Usage
407407
</Card.Section>

packages/app/src/components/KubernetesFilters.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type FilterSelectProps = {
2424
value: string | null;
2525
onChange: (value: string | null) => void;
2626
chartConfig: ChartConfigWithDateRange;
27+
dataTestId?: string;
2728
};
2829

2930
const FilterSelect: React.FC<FilterSelectProps> = ({
@@ -33,6 +34,7 @@ const FilterSelect: React.FC<FilterSelectProps> = ({
3334
value,
3435
onChange,
3536
chartConfig,
37+
dataTestId,
3638
}) => {
3739
const { data, isLoading } = useGetKeyValues({
3840
chartConfigs: chartConfig,
@@ -54,6 +56,7 @@ const FilterSelect: React.FC<FilterSelectProps> = ({
5456
variant="filled"
5557
w={200}
5658
limit={20}
59+
data-testid={dataTestId}
5760
/>
5861
);
5962
};
@@ -186,6 +189,7 @@ export const KubernetesFilters: React.FC<KubernetesFiltersProps> = ({
186189
value={podName}
187190
onChange={value => updateSearchQuery('k8s.pod.name', value, setPodName)}
188191
chartConfig={chartConfig}
192+
dataTestId="pod-filter-select"
189193
/>
190194

191195
<FilterSelect
@@ -197,6 +201,7 @@ export const KubernetesFilters: React.FC<KubernetesFiltersProps> = ({
197201
updateSearchQuery('k8s.deployment.name', value, setDeploymentName)
198202
}
199203
chartConfig={chartConfig}
204+
dataTestId="deployment-filter-select"
200205
/>
201206

202207
<FilterSelect
@@ -208,6 +213,7 @@ export const KubernetesFilters: React.FC<KubernetesFiltersProps> = ({
208213
updateSearchQuery('k8s.node.name', value, setNodeName)
209214
}
210215
chartConfig={chartConfig}
216+
dataTestId="node-filter-select"
211217
/>
212218

213219
<FilterSelect
@@ -219,6 +225,7 @@ export const KubernetesFilters: React.FC<KubernetesFiltersProps> = ({
219225
updateSearchQuery('k8s.namespace.name', value, setNamespaceName)
220226
}
221227
chartConfig={chartConfig}
228+
dataTestId="namespace-filter-select"
222229
/>
223230

224231
<FilterSelect
@@ -230,6 +237,7 @@ export const KubernetesFilters: React.FC<KubernetesFiltersProps> = ({
230237
updateSearchQuery('k8s.cluster.name', value, setClusterName)
231238
}
232239
chartConfig={chartConfig}
240+
dataTestId="cluster-filter-select"
233241
/>
234242
<SearchInputV2
235243
tableConnections={tcFromSource(metricSource)}
@@ -239,6 +247,7 @@ export const KubernetesFilters: React.FC<KubernetesFiltersProps> = ({
239247
control={control}
240248
size="xs"
241249
enableHotkey
250+
data-testid="k8s-search-input"
242251
/>
243252
</Group>
244253
);

0 commit comments

Comments
 (0)