Skip to content

Commit 20808a7

Browse files
committed
🐛 Refactor test code to work with new replace logic
1 parent 8fd7316 commit 20808a7

File tree

2 files changed

+11
-30
lines changed

2 files changed

+11
-30
lines changed

src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -124,19 +124,15 @@ test('Add to library is not compatible when embeddable is not in a dashboard con
124124
expect(await action.isCompatible({ embeddable: orphanContactCard })).toBe(false);
125125
});
126126

127-
test('Add to library replaces embeddableId but retains panel count', async () => {
127+
test('Add to library replaces embeddableId and retains panel count', async () => {
128128
const dashboard = embeddable.getRoot() as IContainer;
129129
const originalPanelCount = Object.keys(dashboard.getInput().panels).length;
130-
const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels));
130+
131131
const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts });
132132
await action.execute({ embeddable });
133133
expect(Object.keys(container.getInput().panels).length).toEqual(originalPanelCount);
134-
135-
const newPanelId = Object.keys(container.getInput().panels).find(
136-
(key) => !originalPanelKeySet.has(key)
137-
);
138-
expect(newPanelId).toBeDefined();
139-
const newPanel = container.getInput().panels[newPanelId!];
134+
expect(Object.keys(container.getInput().panels)).toContain(embeddable.id);
135+
const newPanel = container.getInput().panels[embeddable.id!];
140136
expect(newPanel.type).toEqual(embeddable.type);
141137
});
142138

@@ -152,15 +148,10 @@ test('Add to library returns reference type input', async () => {
152148
mockedByReferenceInput: { savedObjectId: 'testSavedObjectId', id: embeddable.id },
153149
mockedByValueInput: { attributes: complicatedAttributes, id: embeddable.id } as EmbeddableInput,
154150
});
155-
const dashboard = embeddable.getRoot() as IContainer;
156-
const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels));
157151
const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts });
158152
await action.execute({ embeddable });
159-
const newPanelId = Object.keys(container.getInput().panels).find(
160-
(key) => !originalPanelKeySet.has(key)
161-
);
162-
expect(newPanelId).toBeDefined();
163-
const newPanel = container.getInput().panels[newPanelId!];
153+
expect(Object.keys(container.getInput().panels)).toContain(embeddable.id);
154+
const newPanel = container.getInput().panels[embeddable.id!];
164155
expect(newPanel.type).toEqual(embeddable.type);
165156
expect(newPanel.explicitInput.attributes).toBeUndefined();
166157
expect(newPanel.explicitInput.savedObjectId).toBe('testSavedObjectId');

src/plugins/dashboard/public/application/actions/unlink_from_library_action.test.tsx

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,14 @@ test('Unlink is not compatible when embeddable is not in a dashboard container',
118118
expect(await action.isCompatible({ embeddable: orphanContactCard })).toBe(false);
119119
});
120120

121-
test('Unlink replaces embeddableId but retains panel count', async () => {
121+
test('Unlink replaces embeddableId and retains panel count', async () => {
122122
const dashboard = embeddable.getRoot() as IContainer;
123123
const originalPanelCount = Object.keys(dashboard.getInput().panels).length;
124-
const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels));
125124
const action = new UnlinkFromLibraryAction({ toasts: coreStart.notifications.toasts });
126125
await action.execute({ embeddable });
127126
expect(Object.keys(container.getInput().panels).length).toEqual(originalPanelCount);
128-
129-
const newPanelId = Object.keys(container.getInput().panels).find(
130-
(key) => !originalPanelKeySet.has(key)
131-
);
132-
expect(newPanelId).toBeDefined();
133-
const newPanel = container.getInput().panels[newPanelId!];
127+
expect(Object.keys(container.getInput().panels)).toContain(embeddable.id);
128+
const newPanel = container.getInput().panels[embeddable.id!];
134129
expect(newPanel.type).toEqual(embeddable.type);
135130
});
136131

@@ -150,15 +145,10 @@ test('Unlink unwraps all attributes from savedObject', async () => {
150145
mockedByReferenceInput: { savedObjectId: 'testSavedObjectId', id: embeddable.id },
151146
mockedByValueInput: { attributes: complicatedAttributes, id: embeddable.id },
152147
});
153-
const dashboard = embeddable.getRoot() as IContainer;
154-
const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels));
155148
const action = new UnlinkFromLibraryAction({ toasts: coreStart.notifications.toasts });
156149
await action.execute({ embeddable });
157-
const newPanelId = Object.keys(container.getInput().panels).find(
158-
(key) => !originalPanelKeySet.has(key)
159-
);
160-
expect(newPanelId).toBeDefined();
161-
const newPanel = container.getInput().panels[newPanelId!];
150+
expect(Object.keys(container.getInput().panels)).toContain(embeddable.id);
151+
const newPanel = container.getInput().panels[embeddable.id!];
162152
expect(newPanel.type).toEqual(embeddable.type);
163153
expect(newPanel.explicitInput.attributes).toEqual(complicatedAttributes);
164154
});

0 commit comments

Comments
 (0)