Skip to content

Commit e07ce28

Browse files
kamsharipovaKamila AlekbaevailiaxMgrdich
authored
Fix UI broker list display in some cases (#2903)
* UI now showing broker list when DISABLELOGDIRSCOLLECTION=true * specs fix * code review fixes * fix the diskUsage check in the empty array case * fix the diskUsage check in the empty array case minor segment size fix Co-authored-by: Kamila Alekbaeva <[email protected]> Co-authored-by: Ilya Kuramshin <[email protected]> Co-authored-by: Mgrdich <[email protected]>
1 parent fdde380 commit e07ce28

File tree

2 files changed

+64
-9
lines changed

2 files changed

+64
-9
lines changed

kafka-ui-react-app/src/components/Brokers/BrokersList/BrokersList.tsx

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import Table, { LinkCell, SizeCell } from 'components/common/NewTable';
1010
import { ColumnDef } from '@tanstack/react-table';
1111
import { clusterBrokerPath } from 'lib/paths';
1212

13+
const NA = 'N/A';
14+
1315
const BrokersList: React.FC = () => {
1416
const navigate = useNavigate();
1517
const { clusterName } = useAppParams<{ clusterName: ClusterName }>();
@@ -29,14 +31,26 @@ const BrokersList: React.FC = () => {
2931
} = clusterStats;
3032

3133
const rows = React.useMemo(() => {
32-
if (!diskUsage) return [];
34+
let brokersResource;
35+
if (!diskUsage || !diskUsage?.length) {
36+
brokersResource =
37+
brokers?.map((broker) => {
38+
return {
39+
brokerId: broker.id,
40+
segmentSize: NA,
41+
segmentCount: NA,
42+
};
43+
}) || [];
44+
} else {
45+
brokersResource = diskUsage;
46+
}
3347

34-
return diskUsage.map(({ brokerId, segmentSize, segmentCount }) => {
48+
return brokersResource.map(({ brokerId, segmentSize, segmentCount }) => {
3549
const broker = brokers?.find(({ id }) => id === brokerId);
3650
return {
3751
brokerId,
38-
size: segmentSize,
39-
count: segmentCount,
52+
size: segmentSize || NA,
53+
count: segmentCount || NA,
4054
port: broker?.port,
4155
host: broker?.host,
4256
};
@@ -55,7 +69,24 @@ const BrokersList: React.FC = () => {
5569
/>
5670
),
5771
},
58-
{ header: 'Segment Size', accessorKey: 'size', cell: SizeCell },
72+
{
73+
header: 'Segment Size',
74+
accessorKey: 'size',
75+
// eslint-disable-next-line react/no-unstable-nested-components
76+
cell: ({ getValue, table, cell, column, renderValue, row }) =>
77+
getValue() === NA ? (
78+
NA
79+
) : (
80+
<SizeCell
81+
table={table}
82+
column={column}
83+
row={row}
84+
cell={cell}
85+
getValue={getValue}
86+
renderValue={renderValue}
87+
/>
88+
),
89+
},
5990
{ header: 'Segment Count', accessorKey: 'count' },
6091
{ header: 'Port', accessorKey: 'port' },
6192
{ header: 'Host', accessorKey: 'host' },

kafka-ui-react-app/src/components/Brokers/BrokersList/__test__/BrokersList.spec.tsx

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,12 +134,36 @@ describe('BrokersList Component', () => {
134134
}));
135135
});
136136

137-
it('renders empty table', async () => {
137+
describe('when it has no brokers', () => {
138+
beforeEach(() => {
139+
(useBrokers as jest.Mock).mockImplementation(() => ({
140+
data: [],
141+
}));
142+
});
143+
144+
it('renders empty table', async () => {
145+
renderComponent();
146+
expect(screen.getByRole('table')).toBeInTheDocument();
147+
expect(
148+
screen.getByRole('row', { name: 'Disk usage data not available' })
149+
).toBeInTheDocument();
150+
});
151+
});
152+
153+
it('renders list of all brokers', async () => {
138154
renderComponent();
139155
expect(screen.getByRole('table')).toBeInTheDocument();
140-
expect(
141-
screen.getByRole('row', { name: 'Disk usage data not available' })
142-
).toBeInTheDocument();
156+
expect(screen.getAllByRole('row').length).toEqual(3);
157+
});
158+
it('opens broker when row clicked', async () => {
159+
renderComponent();
160+
await userEvent.click(screen.getByRole('cell', { name: '1' }));
161+
162+
await waitFor(() =>
163+
expect(mockedUsedNavigate).toBeCalledWith(
164+
clusterBrokerPath(clusterName, '1')
165+
)
166+
);
143167
});
144168
});
145169
});

0 commit comments

Comments
 (0)