Skip to content

Commit

Permalink
Merge branch '8.11' into backport/8.11/pr-171497
Browse files Browse the repository at this point in the history
  • Loading branch information
tomsonpl authored Nov 20, 2023
2 parents 0eaaee4 + dc03884 commit c690122
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 16 deletions.
10 changes: 6 additions & 4 deletions src/plugins/links/common/persistable_state/references.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
*/

import { Reference } from '@kbn/content-management-utils';
import { omit } from 'lodash';
import { DASHBOARD_LINK_TYPE, LinksAttributes } from '../content_management';

export function extractReferences({
Expand All @@ -22,23 +23,24 @@ export function extractReferences({

const { links } = attributes;
const extractedReferences: Reference[] = [];
links.forEach((link) => {

const newLinks = links.map((link) => {
if (link.type === DASHBOARD_LINK_TYPE && link.destination) {
const refName = `link_${link.id}_dashboard`;
link.destinationRefName = refName;
extractedReferences.push({
name: refName,
type: 'dashboard',
id: link.destination,
});
delete link.destination;
return { ...omit(link, 'destination'), destinationRefName: refName };
}
return link;
});

return {
attributes: {
...attributes,
links,
links: newLinks,
},
references: references.concat(extractedReferences),
};
Expand Down
39 changes: 27 additions & 12 deletions test/functional/apps/dashboard_elements/links/links_create_edit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,18 +78,33 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboard.clickDiscardChanges();
});

it('can create a new by-value links panel', async () => {
await dashboardAddPanel.clickEditorMenuButton();
await dashboardAddPanel.clickAddNewEmbeddableLink('links');
await dashboardLinks.setLayout('horizontal');
await createSomeLinks();
await dashboardLinks.toggleSaveByReference(false);
await dashboardLinks.clickPanelEditorSaveButton();
await testSubjects.exists('addObjectToDashboardSuccess');

expect(await testSubjects.existOrFail('links--component'));
expect(await dashboardLinks.getNumberOfLinksInPanel()).to.equal(4);
await dashboard.clickDiscardChanges();
describe('by-value links panel', async () => {
it('can create a new by-value links panel', async () => {
await dashboardAddPanel.clickEditorMenuButton();
await dashboardAddPanel.clickAddNewEmbeddableLink('links');
await dashboardLinks.setLayout('horizontal');
await createSomeLinks();
await dashboardLinks.toggleSaveByReference(false);
await dashboardLinks.clickPanelEditorSaveButton();
await testSubjects.exists('addObjectToDashboardSuccess');

expect(await testSubjects.existOrFail('links--component'));
expect(await dashboardLinks.getNumberOfLinksInPanel()).to.equal(4);
});

it('can save by-value links panel to the library', async () => {
/** Navigate away to test non-extensible input */
await dashboard.gotoDashboardLandingPage();
await dashboard.clickUnsavedChangesContinueEditing(DASHBOARD_NAME);

await dashboard.waitForRenderComplete();
await dashboardPanelActions.saveToLibrary('Some more links');
await testSubjects.existOrFail('addPanelToLibrarySuccess');
});

after(async () => {
await dashboard.clickDiscardChanges();
});
});
});

Expand Down

0 comments on commit c690122

Please sign in to comment.