* Makes lens default editor in dashboard Added all editors menu to dashboard panel toolbar Fixed toggle on editor menu Removed unnecessary comments Added data test subjects to editor menu buttons Populated editor menu with vis types Removed unused imports Fixed imports Adds showCreateNewMenu prop to AddPanelFlyout Rearranged order of editor menu options Fixed ts errors Added groupnig to embeddable factory Use embeddable state transfer service to redirect to editors Added showGroups to TypeSelectionState Fixed add panel flyout test Fixed data test subjects Fixed factory groupings Removed unused import Fixed page object Added telemtry to dashboard toolbar Added telemtry to editor menu Fix ml embeddable functional tests Fix lens dashboard test Fix empty dashboard test Fixed ts errors Fixed time to visualize security test Fixed empty dashboard test Fixed clickAddNewEmbeddableLink in dashboardAddPanel service Fixed agg based vis functional tests Revert test changes Fixed typo Fix tests Fix more tests Fix ts errors Fixed more tests Fixed toolbar sizes and margins to align with lens Fix tests Fixed callbacks Fixed button prop type New vis modal copy updates Added savedObjectMetaData to log stream embeddable factory Addressed feedback Fixed ts error Fix more tests Fixed ts errors Updated dashboard empty prompt copy Adds tooltip to log stream embeddable factory saved object meta data Made icons monochrome in toolbar Fixed icon colors in dark mode Cleaned up css Fixed ts errors Updated snapshot Fixed map icon color * Added tooltips for ML embeddables * Restored test * Added empty dashboard panel test * Fixed i18n id * Fix dashboard_embedding test * Removed unused service * Fixed i18n error * Added icon and description properties to embeddable factory definition * Fixed ts errors * Fixed expected value Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
70 lines
3 KiB
TypeScript
70 lines
3 KiB
TypeScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
* Side Public License, v 1.
|
|
*/
|
|
|
|
import { FtrProviderContext } from 'test/functional/ftr_provider_context';
|
|
import expect from '@kbn/expect';
|
|
|
|
/**
|
|
* This tests both that one of each visualization can be added to a dashboard (as opposed to opening an existing
|
|
* dashboard with the visualizations already on it), as well as conducts a rough type of snapshot testing by checking
|
|
* for various ui components. The downside is these tests are a bit fragile to css changes (though not as fragile as
|
|
* actual screenshot snapshot regression testing), and can be difficult to diagnose failures (which visualization
|
|
* broke?). The upside is that this offers very good coverage with a minimal time investment.
|
|
*/
|
|
|
|
// eslint-disable-next-line import/no-default-export
|
|
export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|
const esArchiver = getService('esArchiver');
|
|
const kibanaServer = getService('kibanaServer');
|
|
const dashboardExpect = getService('dashboardExpect');
|
|
const dashboardVisualizations = getService('dashboardVisualizations');
|
|
const PageObjects = getPageObjects([
|
|
'common',
|
|
'dashboard',
|
|
'header',
|
|
'visualize',
|
|
'discover',
|
|
'timePicker',
|
|
]);
|
|
|
|
describe('Dashboard Embedding', function describeIndexTests() {
|
|
before(async () => {
|
|
await esArchiver.load('kibana');
|
|
await kibanaServer.uiSettings.replace({
|
|
defaultIndex: '0bf35f60-3dc9-11e8-8660-4d65aa086b3c',
|
|
});
|
|
await PageObjects.common.navigateToApp('dashboard');
|
|
await PageObjects.dashboard.preserveCrossAppState();
|
|
await PageObjects.dashboard.clickNewDashboard();
|
|
});
|
|
|
|
it('adding a metric visualization', async function () {
|
|
const originalPanelCount = await PageObjects.dashboard.getPanelCount();
|
|
expect(originalPanelCount).to.eql(0);
|
|
await dashboardVisualizations.createAndEmbedMetric('Embedding Vis Test');
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
await dashboardExpect.metricValuesExist(['0']);
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
expect(panelCount).to.eql(1);
|
|
});
|
|
|
|
it('adding a markdown', async function () {
|
|
const originalPanelCount = await PageObjects.dashboard.getPanelCount();
|
|
expect(originalPanelCount).to.eql(1);
|
|
await dashboardVisualizations.createAndEmbedMarkdown({
|
|
name: 'Embedding Markdown Test',
|
|
markdown: 'Nice to meet you, markdown is my name',
|
|
});
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
await dashboardExpect.markdownWithValuesExists(['Nice to meet you, markdown is my name']);
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
expect(panelCount).to.eql(2);
|
|
});
|
|
});
|
|
}
|