diff --git a/src/platform/plugins/shared/visualizations/public/embeddable/visualize_embeddable.tsx b/src/platform/plugins/shared/visualizations/public/embeddable/visualize_embeddable.tsx index 2e741939daf2b..445b3f0e40545 100644 --- a/src/platform/plugins/shared/visualizations/public/embeddable/visualize_embeddable.tsx +++ b/src/platform/plugins/shared/visualizations/public/embeddable/visualize_embeddable.tsx @@ -158,7 +158,7 @@ export const getVisualizeEmbeddableFactory: (deps: { linkedToLibraryArg: boolean ) => { return serializeState({ - serializedVis: serializedVis$.value, + serializedVis: vis$.getValue().serialize(), titles: titleManager.getLatestState(), id: savedObjectId, linkedToLibrary: linkedToLibraryArg, diff --git a/src/platform/test/functional/apps/visualize/group3/_add_to_dashboard.ts b/src/platform/test/functional/apps/visualize/group3/_add_to_dashboard.ts index 3f6c70d9ebb84..2345bc7488bd9 100644 --- a/src/platform/test/functional/apps/visualize/group3/_add_to_dashboard.ts +++ b/src/platform/test/functional/apps/visualize/group3/_add_to_dashboard.ts @@ -17,13 +17,15 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const listingTable = getService('listingTable'); - const { common, dashboard, visualize, timePicker, timeToVisualize } = getPageObjects([ - 'common', - 'dashboard', - 'visualize', - 'timePicker', - 'timeToVisualize', - ]); + const { common, dashboard, visualize, timePicker, timeToVisualize, visualBuilder } = + getPageObjects([ + 'common', + 'dashboard', + 'visualize', + 'timePicker', + 'timeToVisualize', + 'visualBuilder', + ]); describe('Add to Dashboard', function describeIndexTests() { before(async () => { @@ -33,6 +35,32 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { after(async () => { await common.unsetTime(); }); + + it('add a TSVB to a new dashboard by ref and clone the panel', async () => { + await visualize.gotoVisualizationLandingPage(); + await visualize.navigateToNewVisualization(); + await visualize.clickVisualBuilder(); + await visualBuilder.checkVisualBuilderIsPresent(); + await visualBuilder.clickMetric(); + await visualBuilder.checkMetricTabIsPresent(); + await visualBuilder.clickPanelOptions('metric'); + await visualBuilder.setIndexPatternValue('long-window-logstash-*', true); + const value = await visualBuilder.getMetricValue(); + expect(value).to.eql('35'); + await testSubjects.click('visualizeSaveButton'); + await timeToVisualize.saveFromModal('TSVB count', { + addToDashboard: 'new', + saveToLibrary: true, + }); + await dashboard.waitForRenderComplete(); + await dashboardExpect.tsvbMetricValuesExist(['35']); + await dashboardPanelActions.openContextMenuByTitle('TSVB count'); + await testSubjects.click('embeddablePanelAction-clonePanel'); + await dashboard.waitForRenderComplete(); + await dashboardExpect.tsvbMetricValuesExist(['35', '35']); + await timeToVisualize.resetNewDashboard(); + }); + it('adding a new metric to a new dashboard by value', async function () { await visualize.navigateToNewAggBasedVisualization(); await visualize.clickMetric();