Skip to content

Commit d9d269b

Browse files
committed
Add frontend tests of connector reset
1 parent 26e075d commit d9d269b

File tree

2 files changed

+46
-7
lines changed

2 files changed

+46
-7
lines changed

frontend/src/components/Connect/Details/Actions/__tests__/Actions.spec.tsx

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const expectActionButtonsExists = () => {
4040
expect(screen.getByText('Restart Connector')).toBeInTheDocument();
4141
expect(screen.getByText('Restart All Tasks')).toBeInTheDocument();
4242
expect(screen.getByText('Restart Failed Tasks')).toBeInTheDocument();
43+
expect(screen.getByText('Reset Offsets')).toBeInTheDocument();
4344
expect(screen.getByText('Delete')).toBeInTheDocument();
4445
};
4546
const afterClickDropDownButton = async () => {
@@ -82,6 +83,7 @@ describe('Actions', () => {
8283
expect(screen.getAllByRole('menuitem').length).toEqual(4);
8384
expect(screen.getByText('Resume')).toBeInTheDocument();
8485
expect(screen.queryByText('Pause')).not.toBeInTheDocument();
86+
expect(screen.queryByText('Stop')).not.toBeInTheDocument();
8587
expectActionButtonsExists();
8688
});
8789

@@ -94,6 +96,7 @@ describe('Actions', () => {
9496
expect(screen.getAllByRole('menuitem').length).toEqual(3);
9597
expect(screen.queryByText('Resume')).not.toBeInTheDocument();
9698
expect(screen.queryByText('Pause')).not.toBeInTheDocument();
99+
expect(screen.queryByText('Stop')).not.toBeInTheDocument();
97100
expectActionButtonsExists();
98101
});
99102

@@ -106,6 +109,7 @@ describe('Actions', () => {
106109
expect(screen.getAllByRole('menuitem').length).toEqual(3);
107110
expect(screen.queryByText('Resume')).not.toBeInTheDocument();
108111
expect(screen.queryByText('Pause')).not.toBeInTheDocument();
112+
expect(screen.queryByText('Stop')).not.toBeInTheDocument();
109113
expectActionButtonsExists();
110114
});
111115

@@ -118,6 +122,7 @@ describe('Actions', () => {
118122
expect(screen.getAllByRole('menuitem').length).toEqual(4);
119123
expect(screen.queryByText('Resume')).not.toBeInTheDocument();
120124
expect(screen.getByText('Pause')).toBeInTheDocument();
125+
expect(screen.getByText('Stop')).toBeInTheDocument();
121126
expectActionButtonsExists();
122127
});
123128

@@ -137,6 +142,15 @@ describe('Actions', () => {
137142
expect(screen.getByRole('dialog')).toBeInTheDocument();
138143
});
139144

145+
it('opens confirmation modal when reset offsets button clicked', async () => {
146+
renderComponent();
147+
await afterClickDropDownButton();
148+
await waitFor(async () =>
149+
userEvent.click(screen.getByRole('menuitem', { name: 'Reset Offsets' }))
150+
);
151+
expect(screen.getByRole('dialog')).toBeInTheDocument();
152+
});
153+
140154
it('calls restartConnector when restart button clicked', async () => {
141155
const restartConnector = jest.fn();
142156
(useUpdateConnectorState as jest.Mock).mockImplementation(() => ({
@@ -191,7 +205,18 @@ describe('Actions', () => {
191205
expect(pauseConnector).toHaveBeenCalledWith(ConnectorAction.PAUSE);
192206
});
193207

194-
it('calls resumeConnector when resume button clicked', async () => {
208+
it('calls stopConnector when stop button clicked', async () => {
209+
const stopConnector = jest.fn();
210+
(useUpdateConnectorState as jest.Mock).mockImplementation(() => ({
211+
mutateAsync: stopConnector,
212+
}));
213+
renderComponent();
214+
await afterClickRestartButton();
215+
await userEvent.click(screen.getByRole('menuitem', { name: 'Stop' }));
216+
expect(stopConnector).toHaveBeenCalledWith(ConnectorAction.STOP);
217+
});
218+
219+
it('calls resumeConnector when resume button clicked from PAUSED state', async () => {
195220
const resumeConnector = jest.fn();
196221
(useConnector as jest.Mock).mockImplementation(() => ({
197222
data: setConnectorStatus(connector, ConnectorState.PAUSED),
@@ -204,6 +229,20 @@ describe('Actions', () => {
204229
await userEvent.click(screen.getByRole('menuitem', { name: 'Resume' }));
205230
expect(resumeConnector).toHaveBeenCalledWith(ConnectorAction.RESUME);
206231
});
232+
233+
it('calls resumeConnector when resume button clicked from STOPPED state', async () => {
234+
const resumeConnector = jest.fn();
235+
(useConnector as jest.Mock).mockImplementation(() => ({
236+
data: setConnectorStatus(connector, ConnectorState.STOPPED),
237+
}));
238+
(useUpdateConnectorState as jest.Mock).mockImplementation(() => ({
239+
mutateAsync: resumeConnector,
240+
}));
241+
renderComponent();
242+
await afterClickRestartButton();
243+
await userEvent.click(screen.getByRole('menuitem', { name: 'Resume' }));
244+
expect(resumeConnector).toHaveBeenCalledWith(ConnectorAction.RESUME);
245+
});
207246
});
208247
});
209248
});

frontend/src/components/Connect/List/__tests__/List.spec.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ describe('Connectors List', () => {
9494
});
9595
});
9696

97-
describe('when remove connector modal is open', () => {
97+
describe('when delete modal is open', () => {
9898
beforeEach(() => {
9999
(useConnectors as jest.Mock).mockImplementation(() => ({
100100
data: connectors,
@@ -104,10 +104,10 @@ describe('Connectors List', () => {
104104
}));
105105
});
106106

107-
it('calls removeConnector on confirm', async () => {
107+
it('calls deleteConnector on confirm', async () => {
108108
renderComponent();
109-
const removeButton = screen.getAllByText('Remove Connector')[0];
110-
await waitFor(() => userEvent.click(removeButton));
109+
const deleteButton = screen.getAllByText('Delete')[0];
110+
await waitFor(() => userEvent.click(deleteButton));
111111

112112
const submitButton = screen.getAllByRole('button', {
113113
name: 'Confirm',
@@ -118,8 +118,8 @@ describe('Connectors List', () => {
118118

119119
it('closes the modal when cancel button is clicked', async () => {
120120
renderComponent();
121-
const removeButton = screen.getAllByText('Remove Connector')[0];
122-
await waitFor(() => userEvent.click(removeButton));
121+
const deleteButton = screen.getAllByText('Delete')[0];
122+
await waitFor(() => userEvent.click(deleteButton));
123123

124124
const cancelButton = screen.getAllByRole('button', {
125125
name: 'Cancel',

0 commit comments

Comments
 (0)