Skip to content

Commit 161dbb8

Browse files
committed
Wait for crud elements to become visible before interacting
1 parent 4db143a commit 161dbb8

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

packages/compass-crud/src/components/bulk-update-modal.spec.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -218,15 +218,16 @@ describe('BulkUpdateModal Component', function () {
218218
expect(onUpdateSpy).to.have.been.calledOnce;
219219
});
220220

221-
it('saves the query when a name is provided', function () {
221+
it('saves the query when a name is provided', async function () {
222222
const saveUpdateQuerySpy = sinon.spy();
223-
renderBulkUpdateModal({ saveUpdateQuery: saveUpdateQuerySpy });
223+
renderBulkUpdateModal({
224+
saveUpdateQuery: saveUpdateQuerySpy,
225+
});
224226

225227
userEvent.click(screen.getByTestId('inline-save-query-modal-opener'));
226-
userEvent.type(
227-
screen.getByTestId('inline-save-query-modal-input'),
228-
'MySavedQuery'
229-
);
228+
const inputElement = screen.getByTestId('inline-save-query-modal-input');
229+
await waitFor(() => expect(inputElement).to.be.visible);
230+
userEvent.type(inputElement, 'MySavedQuery');
230231

231232
userEvent.click(screen.getByTestId('inline-save-query-modal-submit'));
232233
expect(saveUpdateQuerySpy).to.have.been.calledOnceWith('MySavedQuery');

packages/compass-crud/src/components/crud-toolbar.spec.tsx

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
within,
77
userEvent,
88
renderWithConnections,
9+
waitFor,
910
} from '@mongodb-js/testing-library-compass';
1011
import type { PreferencesAccess } from 'compass-preferences-model';
1112
import { createSandboxFromDefaultPreferences } from 'compass-preferences-model';
@@ -20,6 +21,7 @@ const noop = () => {
2021

2122
const testOutdatedMessageId = 'crud-outdated-message-id';
2223
const testErrorMessageId = 'document-list-error-summary';
24+
const testDocumentsPerPageId = 'crud-document-per-page-selector';
2325

2426
const addDataText = 'Add Data';
2527
const updateDataText = 'Update';
@@ -480,20 +482,24 @@ describe('CrudToolbar Component', function () {
480482
});
481483

482484
describe('documents per page select', function () {
483-
it('should render a select to update documents fetched per page', function () {
485+
it('should render a select to update documents fetched per page', async function () {
484486
renderCrudToolbar();
485-
expect(screen.getByLabelText('Update number of documents per page')).to.be
486-
.visible;
487+
488+
await waitFor(
489+
() => expect(screen.getByTestId(testDocumentsPerPageId)).to.be.visible
490+
);
487491
});
488492

489-
it('should call updateDocumentsPerPage when select value changes', function () {
493+
it('should call updateDocumentsPerPage when select value changes', async function () {
490494
const stub = sinon.stub();
491495
renderCrudToolbar({
492496
updateMaxDocumentsPerPage: stub,
493497
});
494-
userEvent.click(
495-
screen.getByLabelText('Update number of documents per page')
496-
);
498+
499+
const selector = screen.getByTestId(testDocumentsPerPageId);
500+
501+
await waitFor(() => expect(selector).to.be.visible);
502+
userEvent.click(selector);
497503
userEvent.click(screen.getByText('75'));
498504
expect(stub).to.be.calledWithExactly(75);
499505
});

packages/compass-crud/src/components/crud-toolbar.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@ const CrudToolbar: React.FunctionComponent<CrudToolbarProps> = ({
394394
</div>
395395
<div className={toolbarRightActionStyles}>
396396
<Select
397+
data-testid="crud-document-per-page-selector"
397398
size="xsmall"
398399
disabled={isFetching}
399400
allowDeselect={false}

0 commit comments

Comments
 (0)