Skip to content

Commit eb65769

Browse files
committed
fix: enforce no nesting, adjsut enzyme test and move setup to testing-library
1 parent 4730c18 commit eb65769

File tree

2 files changed

+58
-49
lines changed

2 files changed

+58
-49
lines changed

configs/testing-library-compass/src/index.tsx

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ import {
4545
ReadOnlyPreferenceAccess,
4646
} from 'compass-preferences-model/provider';
4747
import { TelemetryProvider } from '@mongodb-js/compass-telemetry/provider';
48-
import { CompassComponentsProvider } from '@mongodb-js/compass-components';
48+
import {
49+
CompassComponentsProvider,
50+
ContextMenuProvider,
51+
} from '@mongodb-js/compass-components';
4952
import {
5053
TestEnvCurrentConnectionContext,
5154
ConnectionInfoProvider,
@@ -349,41 +352,43 @@ function createWrapper(
349352
<PreferencesProvider value={wrapperState.preferences}>
350353
<LoggerProvider value={logger}>
351354
<TelemetryProvider options={telemetryOptions}>
352-
<ConnectionStorageProvider
353-
value={wrapperState.connectionStorage}
354-
>
355-
<ConnectFnProvider connect={wrapperState.connect}>
356-
<CompassConnections
357-
appName={options.appName ?? 'TEST'}
358-
onFailToLoadConnections={
359-
options.onFailToLoadConnections ??
360-
(() => {
361-
// noop
362-
})
363-
}
364-
onExtraConnectionDataRequest={
365-
options.onExtraConnectionDataRequest ??
366-
(() => {
367-
return Promise.resolve([{}, null] as [any, null]);
368-
})
369-
}
370-
onAutoconnectInfoRequest={
371-
options.onAutoconnectInfoRequest
372-
}
373-
preloadStorageConnectionInfos={connections}
374-
>
375-
<StoreGetter>
376-
<TestEnvCurrentConnectionContext.Provider
377-
value={TEST_ENV_CURRENT_CONNECTION}
378-
>
379-
<TestingLibraryWrapper {...props}>
380-
{children}
381-
</TestingLibraryWrapper>
382-
</TestEnvCurrentConnectionContext.Provider>
383-
</StoreGetter>
384-
</CompassConnections>
385-
</ConnectFnProvider>
386-
</ConnectionStorageProvider>
355+
<ContextMenuProvider>
356+
<ConnectionStorageProvider
357+
value={wrapperState.connectionStorage}
358+
>
359+
<ConnectFnProvider connect={wrapperState.connect}>
360+
<CompassConnections
361+
appName={options.appName ?? 'TEST'}
362+
onFailToLoadConnections={
363+
options.onFailToLoadConnections ??
364+
(() => {
365+
// noop
366+
})
367+
}
368+
onExtraConnectionDataRequest={
369+
options.onExtraConnectionDataRequest ??
370+
(() => {
371+
return Promise.resolve([{}, null] as [any, null]);
372+
})
373+
}
374+
onAutoconnectInfoRequest={
375+
options.onAutoconnectInfoRequest
376+
}
377+
preloadStorageConnectionInfos={connections}
378+
>
379+
<StoreGetter>
380+
<TestEnvCurrentConnectionContext.Provider
381+
value={TEST_ENV_CURRENT_CONNECTION}
382+
>
383+
<TestingLibraryWrapper {...props}>
384+
{children}
385+
</TestingLibraryWrapper>
386+
</TestEnvCurrentConnectionContext.Provider>
387+
</StoreGetter>
388+
</CompassConnections>
389+
</ConnectFnProvider>
390+
</ConnectionStorageProvider>
391+
</ContextMenuProvider>
387392
</TelemetryProvider>
388393
</LoggerProvider>
389394
</PreferencesProvider>

packages/compass-crud/src/components/document-list-view.spec.tsx

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,32 @@
11
import React from 'react';
22
import { mount } from 'enzyme';
3+
import type { ReactWrapper } from 'enzyme';
34
import HadronDocument from 'hadron-document';
45
import { expect } from 'chai';
5-
import sinon from 'sinon';
66

77
import DocumentListView from './document-list-view';
8+
import { ContextMenuProvider } from '@mongodb-js/compass-components';
89

910
describe('<DocumentListView />', function () {
1011
describe('#render', function () {
1112
context('when the documents have objects for ids', function () {
1213
const docs = [{ _id: { name: 'test-1' } }, { _id: { name: 'test-2' } }];
1314
const hadronDocs = docs.map((doc) => new HadronDocument(doc));
14-
const component = mount(
15-
<DocumentListView
16-
docs={hadronDocs}
17-
isEditable={false}
18-
isTimeSeries={false}
19-
copyToClipboard={sinon.spy()}
20-
removeDocument={sinon.spy()}
21-
replaceDocument={sinon.spy()}
22-
updateDocument={sinon.spy()}
23-
openInsertDocumentDialog={sinon.spy()}
24-
/>
25-
);
15+
let component: ReactWrapper;
16+
beforeEach(function () {
17+
component = mount(
18+
<DocumentListView
19+
docs={hadronDocs}
20+
isEditable={false}
21+
isTimeSeries={false}
22+
/>,
23+
{ wrappingComponent: ContextMenuProvider }
24+
);
25+
});
26+
27+
afterEach(function () {
28+
component?.unmount();
29+
});
2630

2731
it('renders all the documents', function () {
2832
const wrapper = component.find('[data-testid="readonly-document"]');

0 commit comments

Comments
 (0)