Skip to content

Commit 783340f

Browse files
committed
wip test
1 parent 93b63f6 commit 783340f

File tree

3 files changed

+45
-7
lines changed

3 files changed

+45
-7
lines changed

packages/compass-data-modeling/src/store/diagram.spec.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,17 +90,21 @@ describe('Data Modeling store', function () {
9090
expect(initialDiagram.connectionId).to.equal(newDiagram.connectionId);
9191
expect(initialDiagram.edits).to.have.length(1);
9292
expect(initialDiagram.edits[0].type).to.equal('SetModel');
93-
expect(initialDiagram.edits[0].model.collections[0]).to.deep.include({
93+
const initialEdit = initialDiagram.edits[0] as Extract<
94+
Edit,
95+
{ type: 'SetModel' }
96+
>;
97+
expect(initialEdit.model.collections[0]).to.deep.include({
9498
ns: newDiagram.collections[0].ns,
9599
jsonSchema: newDiagram.collections[0].schema,
96100
displayPosition: [-1, -1],
97101
});
98-
expect(initialDiagram.edits[0].model.collections[1]).to.deep.include({
102+
expect(initialEdit.model.collections[1]).to.deep.include({
99103
ns: newDiagram.collections[1].ns,
100104
jsonSchema: newDiagram.collections[1].schema,
101105
displayPosition: [-1, -1],
102106
});
103-
expect(initialDiagram.edits[0].model.relationships).to.deep.equal(
107+
expect(initialEdit.model.relationships).to.deep.equal(
104108
newDiagram.relations
105109
);
106110

@@ -116,17 +120,21 @@ describe('Data Modeling store', function () {
116120
expect(diagramWithLayout.connectionId).to.equal(newDiagram.connectionId);
117121
expect(diagramWithLayout.edits).to.have.length(1);
118122
expect(diagramWithLayout.edits[0].type).to.equal('SetModel');
119-
expect(diagramWithLayout.edits[0].model.collections[0]).to.deep.include({
123+
const initialEditWithPositions = diagramWithLayout.edits[0] as Extract<
124+
Edit,
125+
{ type: 'SetModel' }
126+
>;
127+
expect(initialEditWithPositions.model.collections[0]).to.deep.include({
120128
ns: newDiagram.collections[0].ns,
121129
jsonSchema: newDiagram.collections[0].schema,
122130
displayPosition: positions[newDiagram.collections[0].ns],
123131
});
124-
expect(diagramWithLayout.edits[0].model.collections[1]).to.deep.include({
132+
expect(initialEditWithPositions.model.collections[1]).to.deep.include({
125133
ns: newDiagram.collections[1].ns,
126134
jsonSchema: newDiagram.collections[1].schema,
127135
displayPosition: positions[newDiagram.collections[1].ns],
128136
});
129-
expect(diagramWithLayout.edits[0].model.relationships).to.deep.equal(
137+
expect(initialEditWithPositions.model.relationships).to.deep.equal(
130138
newDiagram.relations
131139
);
132140
});

packages/compass-data-modeling/src/store/diagram.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ export function getCurrentModel(
354354
description: MongoDBDataModelDescription
355355
): StaticModel {
356356
// Get the last 'SetModel' edit.
357+
console.log('DESCRIPTION', description);
357358
const reversedSetModelEditIndex = description.edits
358359
.slice()
359360
.reverse()

packages/compass-data-modeling/test/setup-store.tsx

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import React from 'react';
2-
import { renderWithConnections } from '@mongodb-js/testing-library-compass';
2+
import {
3+
renderWithConnections,
4+
waitFor,
5+
} from '@mongodb-js/testing-library-compass';
36
import { createActivateHelpers } from '@mongodb-js/compass-app-registry';
47
import { createNoopTrack } from '@mongodb-js/compass-telemetry/provider';
58
import { createNoopLogger } from '@mongodb-js/compass-logging/provider';
@@ -9,6 +12,9 @@ import { activateDataModelingStore } from '../src/store';
912
import type { DataModelingStoreServices } from '../src/store';
1013
import { noopDataModelStorageService } from '../src/provider';
1114
import { Provider } from 'react-redux';
15+
import { openDiagram } from '../src/store/diagram';
16+
import { expect } from 'chai';
17+
import type { MongoDBDataModelDescription } from '../src/services/data-model-storage';
1218

1319
type ConnectionInfoWithMockData = ConnectionInfo & {
1420
databases: Array<{
@@ -197,3 +203,26 @@ export const renderWithStore = (
197203
);
198204
return { ...renderResult, store };
199205
};
206+
export const renderWithOpenedDiagramStore = async (
207+
component: JSX.Element,
208+
{
209+
services = {},
210+
connections = testConnections,
211+
}: {
212+
services?: Partial<DataModelingStoreServices>;
213+
connections?: ConnectionInfoWithMockData[];
214+
} = {},
215+
diagram: MongoDBDataModelDescription
216+
) => {
217+
const store = setupStore(services, connections);
218+
store.dispatch(openDiagram(diagram));
219+
await waitFor(() => {
220+
expect(store.getState().diagram?.edits.current).to.have.lengthOf(1);
221+
console.log('HAS A DIAGRAM', store.getState().diagram?.edits.current[0]);
222+
});
223+
const renderResult = renderWithConnections(
224+
<Provider store={store}>{component}</Provider>,
225+
{ connections }
226+
);
227+
return { ...renderResult, store };
228+
};

0 commit comments

Comments
 (0)