[Sample data] Use Lens in flights dashboard (#104780)

* [Sample data] Use Lens in flights sample data

* Fix test issues

* Fix functional tests

* Fix a11y test names

* Fix tests again

* Fix test

* Update from comments

* Fix sizing from feedback

* Fix typo

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Wylie Conlon 2021-07-16 12:01:05 -04:00 committed by GitHub
parent 26c3362892
commit 8ad443aa6c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 406 additions and 581 deletions

File diff suppressed because one or more lines are too long

View file

@ -143,12 +143,16 @@ export class SampleDataRegistry {
reference.type = embeddableType; reference.type = embeddableType;
reference.id = embeddableId; reference.id = embeddableId;
const referenceName = reference.name.includes(':')
? reference.name.split(':')[1]
: reference.name;
const panels = JSON.parse(dashboard.attributes.panelsJSON); const panels = JSON.parse(dashboard.attributes.panelsJSON);
const panel = panels.find((panelItem: any) => { const panel = panels.find((panelItem: any) => {
return panelItem.panelRefName === reference.name; return panelItem.panelRefName === referenceName;
}); });
if (!panel) { if (!panel) {
throw new Error(`Unable to find panel for reference: ${reference.name}`); throw new Error(`Unable to find panel for reference: ${referenceName}`);
} }
panel.embeddableConfig = embeddableConfig; panel.embeddableConfig = embeddableConfig;
dashboard.attributes.panelsJSON = JSON.stringify(panels); dashboard.attributes.panelsJSON = JSON.stringify(panels);

View file

@ -100,7 +100,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
}); });
it('Add one more saved object to cancel it', async () => { it('Add one more saved object to cancel it', async () => {
await testSubjects.click('savedObjectTitle[Flights]-Average-Ticket-Price'); await testSubjects.click('savedObjectTitle[Flights]-Destination-Weather');
await a11y.testAppSnapshot(); await a11y.testAppSnapshot();
}); });

View file

@ -26,7 +26,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
}); });
it('dashboard panel open ', async () => { it('dashboard panel open ', async () => {
const header = await dashboardPanelActions.getPanelHeading('[Flights] Airline Carrier'); const header = await dashboardPanelActions.getPanelHeading('[Flights] Flight count');
await dashboardPanelActions.toggleContextMenu(header); await dashboardPanelActions.toggleContextMenu(header);
await a11y.testAppSnapshot(); await a11y.testAppSnapshot();
// doing this again will close the Context Menu, so that next snapshot can start clean. // doing this again will close the Context Menu, so that next snapshot can start clean.
@ -34,7 +34,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
}); });
it('dashboard panel inspect', async () => { it('dashboard panel inspect', async () => {
await dashboardPanelActions.openInspectorByTitle('[Flights] Airline Carrier'); await dashboardPanelActions.openInspectorByTitle('[Flights] Flight count');
await a11y.testAppSnapshot(); await a11y.testAppSnapshot();
}); });
@ -61,9 +61,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
}); });
it('dashboard panel full screen', async () => { it('dashboard panel full screen', async () => {
const header = await dashboardPanelActions.getPanelHeading('[Flights] Airline Carrier'); const header = await dashboardPanelActions.getPanelHeading('[Flights] Flight count');
await dashboardPanelActions.toggleContextMenu(header); await dashboardPanelActions.toggleContextMenu(header);
await dashboardPanelActions.clickContextMenuMoreItem();
await testSubjects.click('embeddablePanelAction-togglePanel'); await testSubjects.click('embeddablePanelAction-togglePanel');
await a11y.testAppSnapshot(); await a11y.testAppSnapshot();

View file

@ -43,7 +43,7 @@ export default function ({ getService }: FtrProviderContext) {
expect(resp.body).to.eql({ expect(resp.body).to.eql({
elasticsearchIndicesCreated: { kibana_sample_data_flights: 13059 }, elasticsearchIndicesCreated: { kibana_sample_data_flights: 13059 },
kibanaSavedObjectsLoaded: 23, kibanaSavedObjectsLoaded: 11,
}); });
}); });

View file

@ -15,7 +15,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const find = getService('find'); const find = getService('find');
const log = getService('log'); const log = getService('log');
const security = getService('security'); const security = getService('security');
const pieChart = getService('pieChart'); const elasticChart = getService('elasticChart');
const renderable = getService('renderable'); const renderable = getService('renderable');
const dashboardExpect = getService('dashboardExpect'); const dashboardExpect = getService('dashboardExpect');
const PageObjects = getPageObjects(['common', 'header', 'home', 'dashboard', 'timePicker']); const PageObjects = getPageObjects(['common', 'header', 'home', 'dashboard', 'timePicker']);
@ -89,17 +89,15 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const toTime = `${todayYearMonthDay} @ 23:59:59.999`; const toTime = `${todayYearMonthDay} @ 23:59:59.999`;
await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime); await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime);
const panelCount = await PageObjects.dashboard.getPanelCount(); const panelCount = await PageObjects.dashboard.getPanelCount();
expect(panelCount).to.be(18); expect(panelCount).to.be(17);
}); });
it('should render visualizations', async () => { it('should render visualizations', async () => {
await PageObjects.home.launchSampleDashboard('flights'); await PageObjects.home.launchSampleDashboard('flights');
await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.header.waitUntilLoadingHasFinished();
await renderable.waitForRender(); await renderable.waitForRender();
log.debug('Checking pie charts rendered'); log.debug('Checking charts rendered');
await pieChart.expectPieSliceCount(4); await elasticChart.waitForRenderComplete('lnsVisualizationContainer');
log.debug('Checking area, bar and heatmap charts rendered');
await dashboardExpect.seriesElementCount(15);
log.debug('Checking saved searches rendered'); log.debug('Checking saved searches rendered');
await dashboardExpect.savedSearchRowCount(10); await dashboardExpect.savedSearchRowCount(10);
log.debug('Checking input controls rendered'); log.debug('Checking input controls rendered');
@ -107,8 +105,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug('Checking tag cloud rendered'); log.debug('Checking tag cloud rendered');
await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']); await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']);
log.debug('Checking vega chart rendered'); log.debug('Checking vega chart rendered');
const tsvb = await find.existsByCssSelector('.vgaVis__view'); expect(await find.existsByCssSelector('.vgaVis__view')).to.be(true);
expect(tsvb).to.be(true);
}); });
it('should launch sample logs data set dashboard', async () => { it('should launch sample logs data set dashboard', async () => {

View file

@ -24,7 +24,7 @@ const layerList = [
{ {
id: 'jzppx', id: 'jzppx',
label: 'Flights', label: 'Flights',
minZoom: 9, minZoom: 8,
maxZoom: 24, maxZoom: 24,
alpha: 1, alpha: 1,
sourceDescriptor: { sourceDescriptor: {
@ -45,26 +45,41 @@ const layerList = [
'AvgTicketPrice', 'AvgTicketPrice',
'FlightDelay', 'FlightDelay',
], ],
applyGlobalQuery: true,
scalingType: 'MVT',
sortField: 'timestamp',
indexPatternRefName: 'layer_1_source_index_pattern', indexPatternRefName: 'layer_1_source_index_pattern',
}, },
visible: true, visible: true,
style: { style: {
type: 'VECTOR', type: 'VECTOR',
properties: { properties: {
icon: {
type: 'STATIC',
options: {
value: 'marker',
},
},
fillColor: { fillColor: {
type: 'DYNAMIC', type: 'DYNAMIC',
options: { options: {
field: { field: {
name: 'FlightTimeMin', name: 'FlightDelayMin',
origin: 'source', origin: 'source',
}, },
color: 'Greens', color: 'Yellow to Red',
fieldMetaOptions: {
isEnabled: false,
sigma: 3,
},
type: 'ORDINAL',
useCustomColorRamp: false,
}, },
}, },
lineColor: { lineColor: {
type: 'STATIC', type: 'STATIC',
options: { options: {
color: '#FFFFFF', color: '#000',
}, },
}, },
lineWidth: { lineWidth: {
@ -74,25 +89,61 @@ const layerList = [
}, },
}, },
iconSize: { iconSize: {
type: 'DYNAMIC', type: 'STATIC',
options: { options: {
field: { size: 6,
name: 'DistanceMiles',
origin: 'source',
}, },
minSize: 1, },
maxSize: 32, iconOrientation: {
type: 'STATIC',
options: {
orientation: 0,
},
},
labelText: {
type: 'STATIC',
options: {
value: '',
},
},
labelColor: {
type: 'STATIC',
options: {
color: '#000000',
},
},
labelSize: {
type: 'STATIC',
options: {
size: 14,
},
},
labelBorderColor: {
type: 'STATIC',
options: {
color: '#FFFFFF',
},
},
symbolizeAs: {
options: {
value: 'circle',
},
},
labelBorderSize: {
options: {
size: 'SMALL',
}, },
}, },
}, },
isTimeAware: true,
}, },
type: 'VECTOR', type: 'TILED_VECTOR',
}, },
{ {
id: 'y4jsz', id: 'y4jsz',
label: 'Flight Origin Location', label: 'Flight Origin Location',
minZoom: 0, minZoom: 0,
maxZoom: 9, maxZoom: 8,
alpha: 1, alpha: 1,
sourceDescriptor: { sourceDescriptor: {
type: 'ES_GEO_GRID', type: 'ES_GEO_GRID',
@ -106,25 +157,37 @@ const layerList = [
label: 'flight count', label: 'flight count',
}, },
{ {
type: 'avg', type: 'sum',
field: 'FlightTimeMin', field: 'FlightDelayMin',
label: 'minimum flight time',
}, },
], ],
applyGlobalQuery: true,
indexPatternRefName: 'layer_2_source_index_pattern', indexPatternRefName: 'layer_2_source_index_pattern',
}, },
visible: true, visible: true,
style: { style: {
type: 'VECTOR', type: 'VECTOR',
properties: { properties: {
icon: {
type: 'STATIC',
options: {
value: 'marker',
},
},
fillColor: { fillColor: {
type: 'DYNAMIC', type: 'DYNAMIC',
options: { options: {
color: 'Yellow to Red',
fieldMetaOptions: {
isEnabled: false,
sigma: 3,
},
type: 'ORDINAL',
useCustomColorRamp: false,
field: { field: {
name: 'doc_count', name: 'sum_of_FlightDelayMin',
origin: 'source', origin: 'source',
}, },
color: 'Blues',
}, },
}, },
lineColor: { lineColor: {
@ -143,80 +206,59 @@ const layerList = [
type: 'DYNAMIC', type: 'DYNAMIC',
options: { options: {
field: { field: {
name: 'avg_of_FlightTimeMin',
origin: 'source', origin: 'source',
},
minSize: 1,
maxSize: 32,
},
},
},
},
type: 'VECTOR',
},
{
id: 'x8xpo',
label: 'Flight Destination Location',
minZoom: 0,
maxZoom: 9,
alpha: 1,
sourceDescriptor: {
type: 'ES_GEO_GRID',
resolution: 'COARSE',
id: '60a7346a-8c5f-4c03-b7d1-e8b36e847551',
geoField: 'DestLocation',
requestType: 'point',
metrics: [
{
type: 'count',
label: 'flight count',
},
{
type: 'avg',
field: 'FlightDelayMin',
label: 'average delay',
},
],
indexPatternRefName: 'layer_3_source_index_pattern',
},
visible: true,
style: {
type: 'VECTOR',
properties: {
fillColor: {
type: 'DYNAMIC',
options: {
field: {
name: 'doc_count', name: 'doc_count',
origin: 'source',
}, },
color: 'Reds', minSize: 4,
},
},
lineColor: {
type: 'STATIC',
options: {
color: '#af0303',
},
},
lineWidth: {
type: 'STATIC',
options: {
size: 1,
},
},
iconSize: {
type: 'DYNAMIC',
options: {
field: {
name: 'avg_of_FlightDelayMin',
origin: 'source',
},
minSize: 1,
maxSize: 32, maxSize: 32,
fieldMetaOptions: {
isEnabled: false,
sigma: 3,
}, },
}, },
}, },
iconOrientation: {
type: 'STATIC',
options: {
orientation: 0,
},
},
labelText: {
type: 'STATIC',
options: {
value: '',
},
},
labelColor: {
type: 'STATIC',
options: {
color: '#000000',
},
},
labelSize: {
type: 'STATIC',
options: {
size: 14,
},
},
labelBorderColor: {
type: 'STATIC',
options: {
color: '#FFFFFF',
},
},
symbolizeAs: {
options: {
value: 'circle',
},
},
labelBorderSize: {
options: {
size: 'SMALL',
},
},
},
isTimeAware: true,
}, },
type: 'VECTOR', type: 'VECTOR',
}, },
@ -227,45 +269,34 @@ export const getFlightsSavedObjects = () => {
{ {
id: '5dd88580-1906-11e9-919b-ffe5949a18d2', id: '5dd88580-1906-11e9-919b-ffe5949a18d2',
type: 'map', type: 'map',
updated_at: '2019-01-15T20:44:54.767Z', updated_at: '2021-07-07T02:20:04.294Z',
version: 2, version: '3',
references: [
{
name: 'layer_1_source_index_pattern',
type: 'index-pattern',
id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d',
},
{
name: 'layer_2_source_index_pattern',
type: 'index-pattern',
id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d',
},
{
name: 'layer_3_source_index_pattern',
type: 'index-pattern',
id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d',
},
],
migrationVersion: {
map: '7.4.0',
},
attributes: { attributes: {
title: i18n.translate('xpack.maps.sampleData.flightaSpec.mapsTitle', { title: i18n.translate('xpack.maps.sampleData.flightsSpec.mapsTitle', {
defaultMessage: '[Flights] Origin and Destination Flight Time', defaultMessage: '[Flights] Origin Time Delayed',
}), }),
description: '', description: '',
mapStateJSON:
'{"zoom":3.14,"center":{"lon":-89.58746,"lat":38.38637},"timeFilters":{"from":"now-7d","to":"now"},"refreshConfig":{"isPaused":true,"interval":0},"query":{"query":"","language":"kuery"}}',
layerListJSON: JSON.stringify(layerList), layerListJSON: JSON.stringify(layerList),
uiStateJSON: '{"isDarkMode":false}', mapStateJSON:
bounds: { '{"zoom":4.28,"center":{"lon":-112.44472,"lat":34.65823},"timeFilters":{"from":"now-7d","to":"now"},"refreshConfig":{"isPaused":true,"interval":0},"query":{"query":"","language":"kuery"},"filters":[],"settings":{"autoFitToDataBounds":false,"backgroundColor":"#ffffff","disableInteractive":false,"disableTooltipControl":false,"hideToolbarOverlay":false,"hideLayerControl":false,"hideViewControl":false,"initialLocation":"LAST_SAVED_LOCATION","fixedLocation":{"lat":0,"lon":0,"zoom":2},"browserLocation":{"zoom":2},"maxZoom":24,"minZoom":0,"showScaleControl":false,"showSpatialFilters":true,"showTimesliderToggleButton":true,"spatialFiltersAlpa":0.3,"spatialFiltersFillColor":"#DA8B45","spatialFiltersLineColor":"#DA8B45"}}',
type: 'envelope', title: '[Flights] Origin Time Delayed',
coordinates: [ uiStateJSON: '{"isLayerTOCOpen":true,"openTOCDetails":[]}',
[-139.83779, 56.64828], },
[-39.33713, 14.04811], migrationVersion: {
map: '7.14.0',
},
references: [
{
id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d',
name: 'layer_1_source_index_pattern',
type: 'index-pattern',
},
{
id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d',
name: 'layer_2_source_index_pattern',
type: 'index-pattern',
},
], ],
}, },
},
},
]; ];
}; };

View file

@ -1951,26 +1951,14 @@
"home.sampleData.ecommerceSpec.totalRevenueTitle": "[e コマース] 合計収益", "home.sampleData.ecommerceSpec.totalRevenueTitle": "[e コマース] 合計収益",
"home.sampleData.ecommerceSpecDescription": "e コマースの注文をトラッキングするサンプルデータ、ビジュアライゼーション、ダッシュボードです。", "home.sampleData.ecommerceSpecDescription": "e コマースの注文をトラッキングするサンプルデータ、ビジュアライゼーション、ダッシュボードです。",
"home.sampleData.ecommerceSpecTitle": "サンプル e コマース注文", "home.sampleData.ecommerceSpecTitle": "サンプル e コマース注文",
"home.sampleData.flightsSpec.airlineCarrierTitle": "[フライト] 航空会社",
"home.sampleData.flightsSpec.airportConnectionsTitle": "[フライト] 空港乗り継ぎ (空港にカーソルを合わせてください) ", "home.sampleData.flightsSpec.airportConnectionsTitle": "[フライト] 空港乗り継ぎ (空港にカーソルを合わせてください) ",
"home.sampleData.flightsSpec.averageTicketPriceTitle": "[フライト] 平均運賃",
"home.sampleData.flightsSpec.controlsTitle": "[フライト] コントロール",
"home.sampleData.flightsSpec.delayBucketsTitle": "[フライト] 遅延バケット", "home.sampleData.flightsSpec.delayBucketsTitle": "[フライト] 遅延バケット",
"home.sampleData.flightsSpec.delaysAndCancellationsTitle": "[フライト] 遅延・欠航", "home.sampleData.flightsSpec.delaysAndCancellationsTitle": "[フライト] 遅延・欠航",
"home.sampleData.flightsSpec.delayTypeTitle": "[フライト] 遅延タイプ",
"home.sampleData.flightsSpec.departuresCountMapTitle": "[フライト] 出発カウントマップ", "home.sampleData.flightsSpec.departuresCountMapTitle": "[フライト] 出発カウントマップ",
"home.sampleData.flightsSpec.destinationWeatherTitle": "[フライト] 目的地の天候", "home.sampleData.flightsSpec.destinationWeatherTitle": "[フライト] 目的地の天候",
"home.sampleData.flightsSpec.flightCancellationsTitle": "[フライト] フライト欠航",
"home.sampleData.flightsSpec.flightCountAndAverageTicketPriceTitle": "[フライト] カウントと平均運賃",
"home.sampleData.flightsSpec.flightDelaysTitle": "[フライト] フライトの遅延",
"home.sampleData.flightsSpec.flightLogTitle": "[フライト] 飛行記録", "home.sampleData.flightsSpec.flightLogTitle": "[フライト] 飛行記録",
"home.sampleData.flightsSpec.globalFlightDashboardDescription": "ES-Air、Logstash Airways、Kibana Airlines、JetBeats のサンプル飛行データを分析します", "home.sampleData.flightsSpec.globalFlightDashboardDescription": "ES-Air、Logstash Airways、Kibana Airlines、JetBeats のサンプル飛行データを分析します",
"home.sampleData.flightsSpec.globalFlightDashboardTitle": "[フライト] グローバルフライトダッシュボード", "home.sampleData.flightsSpec.globalFlightDashboardTitle": "[フライト] グローバルフライトダッシュボード",
"home.sampleData.flightsSpec.markdownInstructionsTitle": "[フライト] マークダウンの指示",
"home.sampleData.flightsSpec.originCountryTitle": "[Flights] 出発国と到着国の比較",
"home.sampleData.flightsSpec.totalFlightCancellationsTitle": "[フライト] フライト欠航合計",
"home.sampleData.flightsSpec.totalFlightDelaysTitle": "[フライト] フライト遅延合計",
"home.sampleData.flightsSpec.totalFlightsTitle": "[フライト] フライト合計",
"home.sampleData.flightsSpecDescription": "飛行ルートを監視するサンプルデータ、ビジュアライゼーション、ダッシュボードです。", "home.sampleData.flightsSpecDescription": "飛行ルートを監視するサンプルデータ、ビジュアライゼーション、ダッシュボードです。",
"home.sampleData.flightsSpecTitle": "サンプル飛行データ", "home.sampleData.flightsSpecTitle": "サンプル飛行データ",
"home.sampleData.logsSpec.fileTypeScatterPlotTitle": "[ログ] ファイルタイプ散布図", "home.sampleData.logsSpec.fileTypeScatterPlotTitle": "[ログ] ファイルタイプ散布図",
@ -13286,7 +13274,6 @@
"xpack.maps.observability.uniqueCountMetricName": "ユニークカウント", "xpack.maps.observability.uniqueCountMetricName": "ユニークカウント",
"xpack.maps.sampleData.ecommerceSpec.mapsTitle": "[e コマース] 国別の注文", "xpack.maps.sampleData.ecommerceSpec.mapsTitle": "[e コマース] 国別の注文",
"xpack.maps.sampleData.flightaSpec.logsTitle": "[ログ ] 合計リクエスト数とバイト数", "xpack.maps.sampleData.flightaSpec.logsTitle": "[ログ ] 合計リクエスト数とバイト数",
"xpack.maps.sampleData.flightaSpec.mapsTitle": "[フライト] 出発地と目的地の飛行時間",
"xpack.maps.sampleDataLinkLabel": "マップ", "xpack.maps.sampleDataLinkLabel": "マップ",
"xpack.maps.security.desc": "セキュリティレイヤー", "xpack.maps.security.desc": "セキュリティレイヤー",
"xpack.maps.security.disabledDesc": "セキュリティインデックスパターンが見つかりません。セキュリティを開始するには、[セキュリティ]>[概要]に移動します。", "xpack.maps.security.disabledDesc": "セキュリティインデックスパターンが見つかりません。セキュリティを開始するには、[セキュリティ]>[概要]に移動します。",

View file

@ -1963,26 +1963,14 @@
"home.sampleData.ecommerceSpec.totalRevenueTitle": "[电子商务] 总收入", "home.sampleData.ecommerceSpec.totalRevenueTitle": "[电子商务] 总收入",
"home.sampleData.ecommerceSpecDescription": "用于追踪电子商务订单的样例数据、可视化和仪表板。", "home.sampleData.ecommerceSpecDescription": "用于追踪电子商务订单的样例数据、可视化和仪表板。",
"home.sampleData.ecommerceSpecTitle": "样例电子商务订单", "home.sampleData.ecommerceSpecTitle": "样例电子商务订单",
"home.sampleData.flightsSpec.airlineCarrierTitle": "[航班] 航空公司",
"home.sampleData.flightsSpec.airportConnectionsTitle": "[航班] 机场航线 (将鼠标悬停在机场上) ", "home.sampleData.flightsSpec.airportConnectionsTitle": "[航班] 机场航线 (将鼠标悬停在机场上) ",
"home.sampleData.flightsSpec.averageTicketPriceTitle": "[航班] 平均票价",
"home.sampleData.flightsSpec.controlsTitle": "[航班] 控制",
"home.sampleData.flightsSpec.delayBucketsTitle": "[航班] 延误存储桶", "home.sampleData.flightsSpec.delayBucketsTitle": "[航班] 延误存储桶",
"home.sampleData.flightsSpec.delaysAndCancellationsTitle": "[航班] 延误与取消", "home.sampleData.flightsSpec.delaysAndCancellationsTitle": "[航班] 延误与取消",
"home.sampleData.flightsSpec.delayTypeTitle": "[航班] 延误类型",
"home.sampleData.flightsSpec.departuresCountMapTitle": "[航班] 离港计数地图", "home.sampleData.flightsSpec.departuresCountMapTitle": "[航班] 离港计数地图",
"home.sampleData.flightsSpec.destinationWeatherTitle": "[航班] 到达地天气", "home.sampleData.flightsSpec.destinationWeatherTitle": "[航班] 到达地天气",
"home.sampleData.flightsSpec.flightCancellationsTitle": "[航班] 航班取消",
"home.sampleData.flightsSpec.flightCountAndAverageTicketPriceTitle": "[航班] 航班计数和平均票价",
"home.sampleData.flightsSpec.flightDelaysTitle": "[航班] 航班延误",
"home.sampleData.flightsSpec.flightLogTitle": "[航班] 飞行日志", "home.sampleData.flightsSpec.flightLogTitle": "[航班] 飞行日志",
"home.sampleData.flightsSpec.globalFlightDashboardDescription": "分析 ES-Air、Logstash Airways、Kibana Airlines 和 JetBeats 的模拟航班数据", "home.sampleData.flightsSpec.globalFlightDashboardDescription": "分析 ES-Air、Logstash Airways、Kibana Airlines 和 JetBeats 的模拟航班数据",
"home.sampleData.flightsSpec.globalFlightDashboardTitle": "[航班] 全球航班仪表板", "home.sampleData.flightsSpec.globalFlightDashboardTitle": "[航班] 全球航班仪表板",
"home.sampleData.flightsSpec.markdownInstructionsTitle": "[航班] Markdown 说明",
"home.sampleData.flightsSpec.originCountryTitle": "[航班] 始发国/地区与到达国/地区",
"home.sampleData.flightsSpec.totalFlightCancellationsTitle": "[航班] 航班取消总数",
"home.sampleData.flightsSpec.totalFlightDelaysTitle": "[航班] 航班延误总数",
"home.sampleData.flightsSpec.totalFlightsTitle": "[航班] 航班总数",
"home.sampleData.flightsSpecDescription": "用于监测航班路线的样例数据、可视化和仪表板。", "home.sampleData.flightsSpecDescription": "用于监测航班路线的样例数据、可视化和仪表板。",
"home.sampleData.flightsSpecTitle": "样例航班数据", "home.sampleData.flightsSpecTitle": "样例航班数据",
"home.sampleData.logsSpec.fileTypeScatterPlotTitle": "[日志] 文件类型散点图", "home.sampleData.logsSpec.fileTypeScatterPlotTitle": "[日志] 文件类型散点图",
@ -13464,7 +13452,6 @@
"xpack.maps.observability.uniqueCountMetricName": "唯一计数", "xpack.maps.observability.uniqueCountMetricName": "唯一计数",
"xpack.maps.sampleData.ecommerceSpec.mapsTitle": "[电子商务] 订单 (按国家/地区) ", "xpack.maps.sampleData.ecommerceSpec.mapsTitle": "[电子商务] 订单 (按国家/地区) ",
"xpack.maps.sampleData.flightaSpec.logsTitle": "[日志] 请求和字节总数", "xpack.maps.sampleData.flightaSpec.logsTitle": "[日志] 请求和字节总数",
"xpack.maps.sampleData.flightaSpec.mapsTitle": "[航班] 始发地和到达地航班时间",
"xpack.maps.sampleDataLinkLabel": "地图", "xpack.maps.sampleDataLinkLabel": "地图",
"xpack.maps.security.desc": "安全层", "xpack.maps.security.desc": "安全层",
"xpack.maps.security.disabledDesc": "找不到安全索引模式。要开始使用“安全性”,请前往“安全性”>“概览”。", "xpack.maps.security.disabledDesc": "找不到安全索引模式。要开始使用“安全性”,请前往“安全性”>“概览”。",

View file

@ -15,7 +15,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const kibanaServer = getService('kibanaServer'); const kibanaServer = getService('kibanaServer');
const esArchiver = getService('esArchiver'); const esArchiver = getService('esArchiver');
const log = getService('log'); const log = getService('log');
const pieChart = getService('pieChart'); const elasticChart = getService('elasticChart');
const find = getService('find'); const find = getService('find');
const renderable = getService('renderable'); const renderable = getService('renderable');
const dashboardExpect = getService('dashboardExpect'); const dashboardExpect = getService('dashboardExpect');
@ -136,8 +136,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
// check at least one visualization // check at least one visualization
await renderable.waitForRender(); await renderable.waitForRender();
log.debug('Checking pie charts rendered'); log.debug('Checking charts rendered');
await pieChart.expectPieSliceCount(4); await elasticChart.waitForRenderComplete('lnsVisualizationContainer');
await appMenu.clickLink('Discover'); await appMenu.clickLink('Discover');
await retry.try(async function () { await retry.try(async function () {
@ -147,8 +147,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await appMenu.clickLink('Dashboard'); await appMenu.clickLink('Dashboard');
await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.header.waitUntilLoadingHasFinished();
await renderable.waitForRender(); await renderable.waitForRender();
log.debug('Checking pie charts rendered'); log.debug('Checking charts rendered');
await pieChart.expectPieSliceCount(4); await elasticChart.waitForRenderComplete('lnsVisualizationContainer');
}); });
it('toggle from Discover to Dashboard attempt 1', async () => { it('toggle from Discover to Dashboard attempt 1', async () => {
@ -160,8 +160,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await appMenu.clickLink('Dashboard'); await appMenu.clickLink('Dashboard');
await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.header.waitUntilLoadingHasFinished();
await renderable.waitForRender(); await renderable.waitForRender();
log.debug('Checking pie charts rendered'); log.debug('Checking charts rendered');
await pieChart.expectPieSliceCount(4); await elasticChart.waitForRenderComplete('lnsVisualizationContainer');
}); });
it('toggle from Discover to Dashboard attempt 2', async () => { it('toggle from Discover to Dashboard attempt 2', async () => {
@ -173,11 +173,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await appMenu.clickLink('Dashboard'); await appMenu.clickLink('Dashboard');
await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.header.waitUntilLoadingHasFinished();
await renderable.waitForRender(); await renderable.waitForRender();
log.debug('Checking pie charts rendered'); log.debug('Checking charts rendered');
await pieChart.expectPieSliceCount(4); await elasticChart.waitForRenderComplete('lnsVisualizationContainer');
log.debug('Checking area, bar and heatmap charts rendered');
await dashboardExpect.seriesElementCount(15);
log.debug('Checking saved searches rendered'); log.debug('Checking saved searches rendered');
await dashboardExpect.savedSearchRowCount(10); await dashboardExpect.savedSearchRowCount(10);
log.debug('Checking input controls rendered'); log.debug('Checking input controls rendered');
@ -185,8 +183,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug('Checking tag cloud rendered'); log.debug('Checking tag cloud rendered');
await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']); await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']);
log.debug('Checking vega chart rendered'); log.debug('Checking vega chart rendered');
const tsvb = await find.existsByCssSelector('.vgaVis__view'); expect(await find.existsByCssSelector('.vgaVis__view')).to.be(true);
expect(tsvb).to.be(true);
}); });
}); });
} }

View file

@ -135,7 +135,7 @@ export default function ({ getPageObjects, getService, updateBaselines }) {
describe('flights', () => { describe('flights', () => {
before(async () => { before(async () => {
await PageObjects.maps.loadSavedMap('[Flights] Origin and Destination Flight Time'); await PageObjects.maps.loadSavedMap('[Flights] Origin Time Delayed');
await PageObjects.maps.toggleLayerVisibility('Road map'); await PageObjects.maps.toggleLayerVisibility('Road map');
await PageObjects.timePicker.setCommonlyUsedTime('sample_data range'); await PageObjects.timePicker.setCommonlyUsedTime('sample_data range');
await PageObjects.maps.enterFullScreen(); await PageObjects.maps.enterFullScreen();

View file

@ -24,7 +24,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
]); ]);
const dashboardPanelActions = getService('dashboardPanelActions'); const dashboardPanelActions = getService('dashboardPanelActions');
const inspector = getService('inspector'); const inspector = getService('inspector');
const pieChart = getService('pieChart'); const elasticChart = getService('elasticChart');
const find = getService('find'); const find = getService('find');
const dashboardExpect = getService('dashboardExpect'); const dashboardExpect = getService('dashboardExpect');
const searchSessions = getService('searchSessions'); const searchSessions = getService('searchSessions');
@ -57,15 +57,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('Saves and restores a session with relative time ranges', async () => { it('Saves and restores a session with relative time ranges', async () => {
await PageObjects.dashboard.loadSavedDashboard('[Flights] Global Flight Dashboard'); await PageObjects.dashboard.loadSavedDashboard('[Flights] Global Flight Dashboard');
await PageObjects.dashboard.waitForRenderComplete(); await PageObjects.dashboard.waitForRenderComplete();
await PageObjects.timePicker.pauseAutoRefresh(); // sample data has auto-refresh on
await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.dashboard.waitForRenderComplete();
// saving dashboard to populate map buffer. See https://github.com/elastic/kibana/pull/91148 for more info
// This can be removed after a fix to https://github.com/elastic/kibana/issues/98180 is completed
await PageObjects.dashboard.switchToEditMode();
await PageObjects.dashboard.clickQuickSave();
await PageObjects.dashboard.clickCancelOutOfEditMode();
await searchSessions.expectState('completed'); await searchSessions.expectState('completed');
await searchSessions.save(); await searchSessions.save();
@ -94,10 +86,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
async function checkSampleDashboardLoaded() { async function checkSampleDashboardLoaded() {
log.debug('Checking no error labels'); log.debug('Checking no error labels');
await testSubjects.missingOrFail('embeddableErrorLabel'); await testSubjects.missingOrFail('embeddableErrorLabel');
log.debug('Checking pie charts rendered'); log.debug('Checking charts rendered');
await pieChart.expectPieSliceCount(4); await elasticChart.waitForRenderComplete('lnsVisualizationContainer');
log.debug('Checking area, bar and heatmap charts rendered');
await dashboardExpect.seriesElementCount(15);
log.debug('Checking saved searches rendered'); log.debug('Checking saved searches rendered');
await dashboardExpect.savedSearchRowCount(11); await dashboardExpect.savedSearchRowCount(11);
log.debug('Checking input controls rendered'); log.debug('Checking input controls rendered');
@ -105,14 +95,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug('Checking tag cloud rendered'); log.debug('Checking tag cloud rendered');
await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']); await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']);
log.debug('Checking vega chart rendered'); log.debug('Checking vega chart rendered');
const tsvb = await find.existsByCssSelector('.vgaVis__view'); expect(await find.existsByCssSelector('.vgaVis__view')).to.be(true);
expect(tsvb).to.be(true);
log.debug('Checking map rendered'); log.debug('Checking map rendered');
await dashboardPanelActions.openInspectorByTitle( await dashboardPanelActions.openInspectorByTitle('[Flights] Origin Time Delayed');
'[Flights] Origin and Destination Flight Time'
);
await testSubjects.click('inspectorRequestChooser');
await testSubjects.click(`inspectorRequestChooserFlight Origin Location`);
const requestStats = await inspector.getTableData(); const requestStats = await inspector.getTableData();
const totalHits = PageObjects.maps.getInspectorStatRowHit(requestStats, 'Hits'); const totalHits = PageObjects.maps.getInspectorStatRowHit(requestStats, 'Hits');
expect(totalHits).to.equal('0'); expect(totalHits).to.equal('0');

View file

@ -128,7 +128,7 @@ export default function ({
}); });
await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.home.addSampleDataSet('flights'); await PageObjects.home.addSampleDataSet('flights');
await PageObjects.maps.loadSavedMap('[Flights] Origin and Destination Flight Time'); await PageObjects.maps.loadSavedMap('[Flights] Origin Time Delayed');
await PageObjects.maps.toggleLayerVisibility('Road map'); await PageObjects.maps.toggleLayerVisibility('Road map');
await PageObjects.timePicker.setCommonlyUsedTime('sample_data range'); await PageObjects.timePicker.setCommonlyUsedTime('sample_data range');
await PageObjects.maps.enterFullScreen(); await PageObjects.maps.enterFullScreen();