From b63bfd2e0a1219dfb446335a7937be23a751d23a Mon Sep 17 00:00:00 2001 From: spalger Date: Sun, 17 Apr 2016 05:19:39 -0700 Subject: [PATCH 1/2] [test] setup babel for the functional tests --- package.json | 1 + .../apps/discover/_collapse_expand.js | 32 +++++----- test/functional/apps/discover/_discover.js | 32 +++++----- test/functional/apps/discover/_field_data.js | 32 +++++----- .../functional/apps/discover/_shared_links.js | 25 +++----- test/functional/apps/discover/index.js | 30 +++------ .../apps/settings/_advanced_settings.js | 25 ++++---- .../apps/settings/_creation_form_changes.js | 27 ++++---- .../settings/_index_pattern_create_delete.js | 28 ++++----- .../settings/_index_pattern_popularity.js | 27 ++++---- .../settings/_index_pattern_results_sort.js | 32 +++++----- .../apps/settings/_initial_state.js | 25 ++++---- test/functional/apps/settings/index.js | 31 +++------ test/functional/apps/visualize/_area_chart.js | 40 +++++------- .../functional/apps/visualize/_chart_types.js | 29 ++++----- test/functional/apps/visualize/_data_table.js | 44 +++++-------- test/functional/apps/visualize/_line_chart.js | 39 +++++------- .../apps/visualize/_metric_chart.js | 42 +++++-------- test/functional/apps/visualize/_pie_chart.js | 37 +++++------ test/functional/apps/visualize/_tile_map.js | 42 +++++-------- .../apps/visualize/_vertical_bar_chart.js | 45 +++++-------- test/functional/apps/visualize/index.js | 63 ++++--------------- test/functional/index.js | 29 +++++++++ test/functional/status_page/index.js | 15 ++--- test/intern.js | 19 ++---- test/support/env_setup.js | 10 +++ test/support/index.js | 35 +++++++++++ test/support/pages/common.js | 28 ++++----- test/support/pages/discover_page.js | 13 ++-- test/support/pages/header_page.js | 14 ++--- test/support/pages/settings_page.js | 15 ++--- test/support/pages/visualize_page.js | 15 ++--- 32 files changed, 389 insertions(+), 532 deletions(-) create mode 100644 test/functional/index.js create mode 100644 test/support/env_setup.js create mode 100644 test/support/index.js diff --git a/package.json b/package.json index 6b28d111e7e646..a56a20c5f53b27 100644 --- a/package.json +++ b/package.json @@ -187,6 +187,7 @@ "simple-git": "1.8.0", "sinon": "1.17.2", "source-map": "0.4.4", + "source-map-support": "0.4.0", "supertest-as-promised": "2.0.2" }, "engines": { diff --git a/test/functional/apps/discover/_collapse_expand.js b/test/functional/apps/discover/_collapse_expand.js index d4ade8faeb4e5b..25b9a116f23b83 100644 --- a/test/functional/apps/discover/_collapse_expand.js +++ b/test/functional/apps/discover/_collapse_expand.js @@ -1,24 +1,20 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + discoverPage, + headerPage, + scenarioManager, + settingsPage, +} from '../../../support'; - return function (bdd, scenarioManager) { +(function () { + var expect = require('expect.js'); + + (function () { bdd.describe('discover tab', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; var baseUrl; bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - baseUrl = common.getHostPort(); var fromTime = '2015-09-19 06:31:44.000'; @@ -89,5 +85,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/discover/_discover.js b/test/functional/apps/discover/_discover.js index 9cec39dc31cafa..f56b6f9de806bf 100644 --- a/test/functional/apps/discover/_discover.js +++ b/test/functional/apps/discover/_discover.js @@ -1,22 +1,18 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + scenarioManager, + common, + discoverPage, + settingsPage, + headerPage, +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('discover app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('discover app', function describeIndexTests() { bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); var fromTime = '2015-09-19 06:31:44.000'; var toTime = '2015-09-23 18:31:44.000'; @@ -275,5 +271,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/discover/_field_data.js b/test/functional/apps/discover/_field_data.js index 7e90ec9b2e795e..753b3212bf7dcb 100644 --- a/test/functional/apps/discover/_field_data.js +++ b/test/functional/apps/discover/_field_data.js @@ -1,22 +1,18 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + discoverPage, + headerPage, + scenarioManager, + settingsPage +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('discover app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('discover app', function describeIndexTests() { bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); var fromTime = '2015-09-19 06:31:44.000'; var toTime = '2015-09-23 18:31:44.000'; @@ -263,5 +259,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/discover/_shared_links.js b/test/functional/apps/discover/_shared_links.js index 96b000beb13310..529d538c1cb2f5 100644 --- a/test/functional/apps/discover/_shared_links.js +++ b/test/functional/apps/discover/_shared_links.js @@ -1,16 +1,10 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var expect = require('intern/dojo/node!expect.js'); - - return function (bdd, scenarioManager) { +import { bdd, common, discoverPage, headerPage, settingsPage, scenarioManager } from '../../../support'; + +(function () { + var expect = require('expect.js'); + + (function () { bdd.describe('shared links', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; var baseUrl; // The message changes for Firefox < 41 and Firefox >= 41 // var expectedToastMessage = 'Share search: URL selected. Press Ctrl+C to copy.'; @@ -19,11 +13,6 @@ define(function (require) { var expectedToastMessage = /Share search: URL (selected\. Press Ctrl\+C to copy\.|copied to clipboard\.)/; bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - baseUrl = common.getHostPort(); var fromTime = '2015-09-19 06:31:44.000'; @@ -141,5 +130,5 @@ define(function (require) { }); }); - }; + }()); }); diff --git a/test/functional/apps/discover/index.js b/test/functional/apps/discover/index.js index 9fbebd059f08b5..2ff0de86952056 100644 --- a/test/functional/apps/discover/index.js +++ b/test/functional/apps/discover/index.js @@ -1,20 +1,10 @@ -define(function (require) { - var bdd = require('intern!bdd'); - var config = require('intern').config; - var url = require('intern/dojo/node!url'); - var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenario_manager'); - var discoverTest = require('./_discover'); - var fieldData = require('./_field_data'); - var sharedLinks = require('./_shared_links'); - var collapseExpand = require('./_collapse_expand'); +import { bdd, remote, scenarioManager, defaultTimeout } from '../../../support'; +(function () { bdd.describe('discover app', function () { - var remote; - var scenarioManager = new ScenarioManager(url.format(config.servers.elasticsearch)); - this.timeout = config.timeouts.default; + this.timeout = defaultTimeout; bdd.before(function () { - remote = this.remote; return remote.setWindowSize(1200,800); }); @@ -22,13 +12,9 @@ define(function (require) { return scenarioManager.unload('logstashFunctional'); }); - discoverTest(bdd, scenarioManager); - - fieldData(bdd, scenarioManager); - - sharedLinks(bdd, scenarioManager); - - collapseExpand(bdd, scenarioManager); - + require('./_discover'); + require('./_field_data'); + require('./_shared_links'); + require('./_collapse_expand'); }); -}); +}()); diff --git a/test/functional/apps/settings/_advanced_settings.js b/test/functional/apps/settings/_advanced_settings.js index 6a39e5654b5282..e04b9f4f5f360f 100644 --- a/test/functional/apps/settings/_advanced_settings.js +++ b/test/functional/apps/settings/_advanced_settings.js @@ -1,17 +1,16 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var SettingsPage = require('../../../support/pages/settings_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + settingsPage, + scenarioManager +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('creating and deleting default index', function describeIndexTests() { - var common; - var settingsPage; +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('creating and deleting default index', function describeIndexTests() { bdd.before(function () { - common = new Common(this.remote); - settingsPage = new SettingsPage(this.remote); - return scenarioManager.reload('emptyKibana') .then(function () { return settingsPage.navigateTo(); @@ -40,5 +39,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/settings/_creation_form_changes.js b/test/functional/apps/settings/_creation_form_changes.js index b6451f9b0159a0..c7cb2c939b8a63 100644 --- a/test/functional/apps/settings/_creation_form_changes.js +++ b/test/functional/apps/settings/_creation_form_changes.js @@ -1,18 +1,15 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var SettingsPage = require('../../../support/pages/settings_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + settingsPage, + scenarioManager, +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('user input reactions', function () { - var common; - var settingsPage; - - bdd.before(function () { - common = new Common(this.remote); - settingsPage = new SettingsPage(this.remote); - }); +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('user input reactions', function () { bdd.beforeEach(function () { return scenarioManager.reload('emptyKibana') .then(function () { @@ -56,5 +53,5 @@ define(function (require) { .catch(common.handleError(this)); }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/settings/_index_pattern_create_delete.js b/test/functional/apps/settings/_index_pattern_create_delete.js index 294e187a617083..ac966c19ca6827 100644 --- a/test/functional/apps/settings/_index_pattern_create_delete.js +++ b/test/functional/apps/settings/_index_pattern_create_delete.js @@ -1,19 +1,17 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var SettingsPage = require('../../../support/pages/settings_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + remote, + scenarioManager, + settingsPage +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('creating and deleting default index', function describeIndexTests() { - var common; - var settingsPage; - var remote; +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('creating and deleting default index', function describeIndexTests() { bdd.before(function () { - common = new Common(this.remote); - settingsPage = new SettingsPage(this.remote); - remote = this.remote; - return scenarioManager.reload('emptyKibana') .then(function () { return settingsPage.navigateTo(); @@ -101,5 +99,5 @@ define(function (require) { }); }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/settings/_index_pattern_popularity.js b/test/functional/apps/settings/_index_pattern_popularity.js index 42ec83f3e814a6..2d26a5641e3099 100644 --- a/test/functional/apps/settings/_index_pattern_popularity.js +++ b/test/functional/apps/settings/_index_pattern_popularity.js @@ -1,19 +1,16 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var SettingsPage = require('../../../support/pages/settings_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + scenarioManager, + settingsPage +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('index result popularity', function describeIndexTests() { - var common; - var settingsPage; - var remote; +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('index result popularity', function describeIndexTests() { bdd.before(function () { - common = new Common(this.remote); - settingsPage = new SettingsPage(this.remote); - remote = this.remote; - return scenarioManager.reload('emptyKibana') .then(function () { return settingsPage.navigateTo(); @@ -111,5 +108,5 @@ define(function (require) { }); }); // end 'change popularity' }); // end index result popularity - }; -}); + }()); +}()); diff --git a/test/functional/apps/settings/_index_pattern_results_sort.js b/test/functional/apps/settings/_index_pattern_results_sort.js index e91c0ebf6ac5d7..21485231758598 100644 --- a/test/functional/apps/settings/_index_pattern_results_sort.js +++ b/test/functional/apps/settings/_index_pattern_results_sort.js @@ -1,21 +1,17 @@ -define(function (require) { - var config = require('intern').config; - var Common = require('../../../support/pages/common'); - var SettingsPage = require('../../../support/pages/settings_page'); - var expect = require('intern/dojo/node!expect.js'); - - return function (bdd, scenarioManager) { +import { + bdd, + common, + defaultTimeout, + settingsPage, + scenarioManager, +} from '../../../support'; + +(function () { + var expect = require('expect.js'); + + (function () { bdd.describe('index result field sort', function describeIndexTests() { - var common; - var settingsPage; - var remote; - var defaultTimeout = config.timeouts.default; - bdd.before(function () { - common = new Common(this.remote); - settingsPage = new SettingsPage(this.remote); - remote = this.remote; - return scenarioManager.reload('emptyKibana'); }); @@ -133,5 +129,5 @@ define(function (require) { }); }); // end describe pagination }); // end index result field sort - }; -}); + }); +}()); diff --git a/test/functional/apps/settings/_initial_state.js b/test/functional/apps/settings/_initial_state.js index a7d4f2b872ebd6..2456ca9f87a435 100644 --- a/test/functional/apps/settings/_initial_state.js +++ b/test/functional/apps/settings/_initial_state.js @@ -1,17 +1,16 @@ -define(function (require) { - var expect = require('intern/dojo/node!expect.js'); - var Common = require('../../../support/pages/common'); - var SettingsPage = require('../../../support/pages/settings_page'); +import { + bdd, + common, + scenarioManager, + settingsPage +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('initial state', function () { - var common; - var settingsPage; +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('initial state', function () { bdd.before(function () { - common = new Common(this.remote); - settingsPage = new SettingsPage(this.remote); - return scenarioManager.reload('emptyKibana') .then(function () { return settingsPage.navigateTo(); @@ -61,5 +60,5 @@ define(function (require) { .catch(common.handleError(this)); }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/settings/index.js b/test/functional/apps/settings/index.js index 467ee268377aa2..c8b0c8c2ca77b0 100644 --- a/test/functional/apps/settings/index.js +++ b/test/functional/apps/settings/index.js @@ -1,19 +1,8 @@ -define(function (require) { - var bdd = require('intern!bdd'); - var config = require('intern').config; - var url = require('intern/dojo/node!url'); - var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenario_manager'); - - var initialStateTest = require('./_initial_state'); - var creationChangesTest = require('./_creation_form_changes'); - var indexPatternCreateDeleteTest = require('./_index_pattern_create_delete'); - var indexPatternResultsSortTest = require('./_index_pattern_results_sort'); - var indexPatternPopularityTest = require('./_index_pattern_popularity'); - var advancedSettingsTest = require('./_advanced_settings'); +import { bdd, defaultTimeout, scenarioManager } from '../../../support'; +(function () { bdd.describe('settings app', function () { - var scenarioManager = new ScenarioManager(url.format(config.servers.elasticsearch)); - this.timeout = config.timeouts.default; + this.timeout = defaultTimeout; // on setup, we create an settingsPage instance // that we will use for all the tests @@ -31,11 +20,11 @@ define(function (require) { }); }); - advancedSettingsTest(bdd, scenarioManager); - initialStateTest(bdd, scenarioManager); - creationChangesTest(bdd, scenarioManager); - indexPatternCreateDeleteTest(bdd, scenarioManager); - indexPatternResultsSortTest(bdd, scenarioManager); - indexPatternPopularityTest(bdd, scenarioManager); + require('./_initial_state'); + require('./_creation_form_changes'); + require('./_index_pattern_create_delete'); + require('./_index_pattern_results_sort'); + require('./_index_pattern_popularity'); + require('./_advanced_settings'); }); -}); +}()); diff --git a/test/functional/apps/visualize/_area_chart.js b/test/functional/apps/visualize/_area_chart.js index b7c5617f406ccf..6e470e6869a98e 100644 --- a/test/functional/apps/visualize/_area_chart.js +++ b/test/functional/apps/visualize/_area_chart.js @@ -1,29 +1,17 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var VisualizePage = require('../../../support/pages/visualize_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + headerPage, + scenarioManager, + settingsPage, + visualizePage +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('visualize app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; - var visualizePage; - var remote; - - bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - visualizePage = new VisualizePage(this.remote); - remote = this.remote; - }); +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('visualize app', function describeIndexTests() { bdd.before(function () { var fromTime = '2015-09-19 06:31:44.000'; var toTime = '2015-09-23 18:31:44.000'; @@ -210,5 +198,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/visualize/_chart_types.js b/test/functional/apps/visualize/_chart_types.js index 6da1462ec25f69..147566a94d14e1 100644 --- a/test/functional/apps/visualize/_chart_types.js +++ b/test/functional/apps/visualize/_chart_types.js @@ -1,20 +1,17 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var SettingsPage = require('../../../support/pages/settings_page'); - var VisualizePage = require('../../../support/pages/visualize_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + scenarioManager, + settingsPage, + visualizePage +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('visualize app', function describeIndexTests() { - var common; - var settingsPage; - var visualizePage; +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('visualize app', function describeIndexTests() { bdd.before(function () { - common = new Common(this.remote); - settingsPage = new SettingsPage(this.remote); - visualizePage = new VisualizePage(this.remote); - return scenarioManager.reload('emptyKibana') .then(function () { common.debug('navigateTo'); @@ -51,5 +48,5 @@ define(function (require) { }); }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/visualize/_data_table.js b/test/functional/apps/visualize/_data_table.js index 0f4e3a4faaa798..fe7c9826342265 100644 --- a/test/functional/apps/visualize/_data_table.js +++ b/test/functional/apps/visualize/_data_table.js @@ -1,33 +1,21 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var VisualizePage = require('../../../support/pages/visualize_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + headerPage, + scenarioManager, + settingsPage, + visualizePage +} from '../../../support'; - return function (bdd, scenarioManager) { +(function () { + var expect = require('expect.js'); + + (function () { bdd.describe('visualize app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; - var visualizePage; - var remote; - var fromTime; - var toTime; + var fromTime = '2015-09-19 06:31:44.000'; + var toTime = '2015-09-23 18:31:44.000'; bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - visualizePage = new VisualizePage(this.remote); - remote = this.remote; - fromTime = '2015-09-19 06:31:44.000'; - toTime = '2015-09-23 18:31:44.000'; - - return scenarioManager.reload('emptyKibana') .then(function () { common.debug('navigateTo'); @@ -133,5 +121,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/visualize/_line_chart.js b/test/functional/apps/visualize/_line_chart.js index dc748f5d5256bc..3c036fb59517db 100644 --- a/test/functional/apps/visualize/_line_chart.js +++ b/test/functional/apps/visualize/_line_chart.js @@ -1,27 +1,18 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var VisualizePage = require('../../../support/pages/visualize_page'); - var expect = require('intern/dojo/node!expect.js'); - - return function (bdd, scenarioManager) { +import { + bdd, + common, + headerPage, + scenarioManager, + settingsPage, + visualizePage +} from '../../../support'; + +(function () { + var expect = require('expect.js'); + + (function () { bdd.describe('visualize app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; - var visualizePage; - var remote; - bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - visualizePage = new VisualizePage(this.remote); - remote = this.remote; var fromTime = '2015-09-19 06:31:44.000'; var toTime = '2015-09-23 18:31:44.000'; @@ -161,5 +152,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/visualize/_metric_chart.js b/test/functional/apps/visualize/_metric_chart.js index 26137a7a29dacf..d056078d1be5af 100644 --- a/test/functional/apps/visualize/_metric_chart.js +++ b/test/functional/apps/visualize/_metric_chart.js @@ -1,31 +1,21 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var VisualizePage = require('../../../support/pages/visualize_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + headerPage, + scenarioManager, + settingsPage, + visualizePage +} from '../../../support'; - return function (bdd, scenarioManager) { +(function () { + var expect = require('expect.js'); + + (function () { bdd.describe('visualize app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; - var visualizePage; - var remote; - var fromTime; - var toTime; + var fromTime = '2015-09-19 06:31:44.000'; + var toTime = '2015-09-23 18:31:44.000'; bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - visualizePage = new VisualizePage(this.remote); - remote = this.remote; - fromTime = '2015-09-19 06:31:44.000'; - toTime = '2015-09-23 18:31:44.000'; var testSubName = 'MetricChart'; common.debug('Start of test' + testSubName + 'Visualization'); @@ -312,5 +302,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/visualize/_pie_chart.js b/test/functional/apps/visualize/_pie_chart.js index 5490fe6af3a1c5..dec21f618d996f 100644 --- a/test/functional/apps/visualize/_pie_chart.js +++ b/test/functional/apps/visualize/_pie_chart.js @@ -1,27 +1,18 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var VisualizePage = require('../../../support/pages/visualize_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + headerPage, + scenarioManager, + settingsPage, + visualizePage +} from '../../../support'; - return function (bdd, scenarioManager) { - bdd.describe('visualize app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; - var visualizePage; - var remote; +(function () { + var expect = require('expect.js'); + (function () { + bdd.describe('visualize app', function describeIndexTests() { bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - visualizePage = new VisualizePage(this.remote); - remote = this.remote; var fromTime = '2015-09-19 06:31:44.000'; var toTime = '2015-09-23 18:31:44.000'; @@ -161,5 +152,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/visualize/_tile_map.js b/test/functional/apps/visualize/_tile_map.js index bea797df399ed5..75340b90c83377 100644 --- a/test/functional/apps/visualize/_tile_map.js +++ b/test/functional/apps/visualize/_tile_map.js @@ -1,31 +1,21 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var VisualizePage = require('../../../support/pages/visualize_page'); - var expect = require('intern/dojo/node!expect.js'); +import { + bdd, + common, + headerPage, + scenarioManager, + settingsPage, + visualizePage +} from '../../../support'; - return function (bdd, scenarioManager) { +(function () { + var expect = require('expect.js'); + + (function () { bdd.describe('visualize app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; - var visualizePage; - // var remote; - var fromTime; - var toTime; + var fromTime = '2015-09-19 06:31:44.000'; + var toTime = '2015-09-23 18:31:44.000'; bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - visualizePage = new VisualizePage(this.remote); - // remote = this.remote; - fromTime = '2015-09-19 06:31:44.000'; - toTime = '2015-09-23 18:31:44.000'; return scenarioManager.reload('emptyKibana') .then(function () { @@ -147,5 +137,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/visualize/_vertical_bar_chart.js b/test/functional/apps/visualize/_vertical_bar_chart.js index 7f9d942deb0a53..048c80cff5c77b 100644 --- a/test/functional/apps/visualize/_vertical_bar_chart.js +++ b/test/functional/apps/visualize/_vertical_bar_chart.js @@ -1,32 +1,21 @@ -define(function (require) { - var Common = require('../../../support/pages/common'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - var DiscoverPage = require('../../../support/pages/discover_page'); - var VisualizePage = require('../../../support/pages/visualize_page'); - var expect = require('intern/dojo/node!expect.js'); - - return function (bdd, scenarioManager) { +import { + bdd, + common, + headerPage, + scenarioManager, + settingsPage, + visualizePage +} from '../../../support'; + +(function () { + var expect = require('expect.js'); + + (function () { bdd.describe('visualize app', function describeIndexTests() { - var common; - var headerPage; - var settingsPage; - var discoverPage; - var visualizePage; - // var remote; - var fromTime; - var toTime; + var fromTime = '2015-09-19 06:31:44.000'; + var toTime = '2015-09-23 18:31:44.000'; bdd.before(function () { - common = new Common(this.remote); - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - discoverPage = new DiscoverPage(this.remote); - visualizePage = new VisualizePage(this.remote); - // remote = this.remote; - fromTime = '2015-09-19 06:31:44.000'; - toTime = '2015-09-23 18:31:44.000'; - return scenarioManager.reload('emptyKibana') .then(function () { common.debug('navigateTo'); @@ -169,5 +158,5 @@ define(function (require) { }); }); - }; -}); + }()); +}()); diff --git a/test/functional/apps/visualize/index.js b/test/functional/apps/visualize/index.js index 21ecf1777a3e85..250744ea058427 100644 --- a/test/functional/apps/visualize/index.js +++ b/test/functional/apps/visualize/index.js @@ -1,39 +1,8 @@ -define(function (require) { - var bdd = require('intern!bdd'); - var expect = require('intern/dojo/node!expect.js'); - var config = require('intern').config; - var url = require('intern/dojo/node!url'); - var _ = require('intern/dojo/node!lodash'); - var Common = require('../../../support/pages/common'); - var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenario_manager'); - var HeaderPage = require('../../../support/pages/header_page'); - var SettingsPage = require('../../../support/pages/settings_page'); - - var chartTypeTest = require('./_chart_types'); - var areaChartTest = require('./_area_chart'); - var lineChartTest = require('./_line_chart'); - var dataTableTest = require('./_data_table'); - var metricChartTest = require('./_metric_chart'); - var pieChartTest = require('./_pie_chart'); - var tileMapTest = require('./_tile_map'); - var verticalBarChartTest = require('./_vertical_bar_chart'); +import { bdd, remote, common, defaultTimeout, scenarioManager } from '../../../support'; +(function () { bdd.describe('visualize app', function () { - var common; - var remote; - var headerPage; - var settingsPage; - var scenarioManager = new ScenarioManager(url.format(config.servers.elasticsearch)); - this.timeout = config.timeouts.default; - - // on setup, we create an settingsPage instance - // that we will use for all the tests - bdd.before(function () { - common = new Common(this.remote); - remote = this.remote; - headerPage = new HeaderPage(this.remote); - settingsPage = new SettingsPage(this.remote); - }); + this.timeout = defaultTimeout; bdd.before(function () { var self = this; @@ -48,21 +17,13 @@ define(function (require) { return scenarioManager.unload('logstashFunctional'); }); - chartTypeTest(bdd, scenarioManager); - - areaChartTest(bdd, scenarioManager); - - lineChartTest(bdd, scenarioManager); - - dataTableTest(bdd, scenarioManager); - - metricChartTest(bdd, scenarioManager); - - pieChartTest(bdd, scenarioManager); - - tileMapTest(bdd, scenarioManager); - - verticalBarChartTest(bdd, scenarioManager); - + require('./_chart_types'); + require('./_area_chart'); + require('./_line_chart'); + require('./_data_table'); + require('./_metric_chart'); + require('./_pie_chart'); + require('./_tile_map'); + require('./_vertical_bar_chart'); }); -}); +}()); diff --git a/test/functional/index.js b/test/functional/index.js new file mode 100644 index 00000000000000..368c9f357c5059 --- /dev/null +++ b/test/functional/index.js @@ -0,0 +1,29 @@ +define(function (require) { + require('intern/dojo/node!../support/env_setup'); + + const bdd = require('intern!bdd'); + const intern = require('intern'); + const earliestBeforeCbs = []; + + function onEarliestBefore(cb) { + earliestBeforeCbs.push(cb); + } + + global.__kibana__intern__ = { intern, bdd, onEarliestBefore }; + + bdd.describe('kibana', function () { + bdd.before(function () { + earliestBeforeCbs.forEach(cb => { + cb.call(this); + }); + }); + + require([ + 'intern/dojo/node!../support/index', + 'intern/dojo/node!./apps/discover', + 'intern/dojo/node!./status_page', + 'intern/dojo/node!./apps/settings', + 'intern/dojo/node!./apps/visualize' + ], function () {}); + }); +}); diff --git a/test/functional/status_page/index.js b/test/functional/status_page/index.js index b4b27607bc03aa..a2bf49b29f37d9 100644 --- a/test/functional/status_page/index.js +++ b/test/functional/status_page/index.js @@ -1,15 +1,10 @@ -define(function (require) { - var bdd = require('intern!bdd'); - var expect = require('intern/dojo/node!expect.js'); - var config = require('intern').config; - var Common = require('../../support/pages/common'); +import { bdd, common } from '../../support'; - bdd.describe('status page', function () { - var common; +(function () { + var expect = require('expect.js'); + bdd.describe('status page', function () { bdd.before(function () { - common = new Common(this.remote); - // load the status page return common.navigateToApp('status_page', false); }); @@ -27,4 +22,4 @@ define(function (require) { .catch(common.handleError(self)); }); }); -}); +}()); diff --git a/test/intern.js b/test/intern.js index 2ee453d0c0ac21..ac47a97a88abca 100644 --- a/test/intern.js +++ b/test/intern.js @@ -14,21 +14,10 @@ define(function (require) { }], tunnelOptions: serverConfig.servers.webdriver, functionalSuites: [ - 'test/functional/status_page/index', - 'test/functional/apps/settings/index', - 'test/functional/apps/discover/index', - 'test/functional/apps/visualize/index' + 'test/functional/index' ], - excludeInstrumentation: /(fixtures|node_modules)\//, - loaderOptions: { - paths: { - 'bluebird': './node_modules/bluebird/js/browser/bluebird.js', - 'moment': './node_modules/moment/moment.js' - } - }, - timeouts: { - // this is how long a test can run before timing out - default: 90000 - }, + excludeInstrumentation: /.*/, + // this is how long a test can run before timing out + defaultTimeout: 90000, }, serverConfig); }); diff --git a/test/support/env_setup.js b/test/support/env_setup.js new file mode 100644 index 00000000000000..0ced6024f85bb4 --- /dev/null +++ b/test/support/env_setup.js @@ -0,0 +1,10 @@ +var defaults = require('lodash').defaults; +const babelOptions = require('../../src/optimize/babel_options'); + +require('source-map-support').install(); +require('babel/register')(defaults({ + ignore: [ + 'test/fixtures/scenarios/**/*', + 'node_modules/**', + ] +}, babelOptions.node)); diff --git a/test/support/index.js b/test/support/index.js new file mode 100644 index 00000000000000..9d87c4633f17bc --- /dev/null +++ b/test/support/index.js @@ -0,0 +1,35 @@ +import url from 'url'; +import ScenarioManager from '../fixtures/scenario_manager'; +import Common from './pages/common'; +import DiscoverPage from './pages/discover_page'; +import SettingsPage from './pages/settings_page'; +import HeaderPage from './pages/header_page'; +import VisualizePage from './pages/visualize_page'; + +const kbnInternVars = global.__kibana__intern__; + +const NOT_AVAILABLE = { + toString() { return 'NOT AVAILABLE UNTIL TESTS START TO RUN'; } +}; + +export const bdd = kbnInternVars.bdd; +export const intern = kbnInternVars.intern; +export const config = intern.config; +export const defaultTimeout = config.defaultTimeout; +export const scenarioManager = new ScenarioManager(url.format(config.servers.elasticsearch)); + +export let remote = NOT_AVAILABLE; +export let common = NOT_AVAILABLE; +export let discoverPage = NOT_AVAILABLE; +export let settingsPage = NOT_AVAILABLE; +export let headerPage = NOT_AVAILABLE; +export let visualizePage = NOT_AVAILABLE; + +kbnInternVars.onEarliestBefore(function () { + remote = this.remote; + common = new Common(); + discoverPage = new DiscoverPage(); + headerPage = new HeaderPage(); + settingsPage = new SettingsPage(); + visualizePage = new VisualizePage(); +}); diff --git a/test/support/pages/common.js b/test/support/pages/common.js index bb8faaa9708875..906231b894ed4a 100644 --- a/test/support/pages/common.js +++ b/test/support/pages/common.js @@ -1,15 +1,15 @@ -// in test/support/pages/common.js -define(function (require) { - var config = require('intern').config; +import { common, config, defaultTimeout, remote } from '../'; + +export default (function () { var Promise = require('bluebird'); var moment = require('moment'); - var testSubjSelector = require('intern/dojo/node!@spalger/test-subj-selector'); - var getUrl = require('intern/dojo/node!../../utils/get_url'); - var fs = require('intern/dojo/node!fs'); - var _ = require('intern/dojo/node!lodash'); - var parse = require('intern/dojo/node!url').parse; - var format = require('intern/dojo/node!url').format; - var path = require('intern/dojo/node!path'); + var testSubjSelector = require('@spalger/test-subj-selector'); + var getUrl = require('../../utils/get_url'); + var fs = require('fs'); + var _ = require('lodash'); + var parse = require('url').parse; + var format = require('url').format; + var path = require('path'); function injectTimestampQuery(func, url) { var formatted = modifyQueryString(url, function (parsed) { @@ -36,7 +36,7 @@ define(function (require) { return format(_.pick(parsed, 'protocol', 'hostname', 'port', 'pathname', 'query', 'hash', 'auth')); } - function Common(remote) { + function Common() { this.remote = remote; if (remote.get.wrapper !== injectTimestampQuery) { this.remote.get = _.wrap(this.remote.get, injectTimestampQuery); @@ -46,8 +46,6 @@ define(function (require) { } - var defaultTimeout = config.timeouts.default; - Common.prototype = { constructor: Common, @@ -234,7 +232,7 @@ define(function (require) { return self.saveScreenshot(filename) .finally(function () { - throw new Error(reason); + throw reason; }); }; }, @@ -263,4 +261,4 @@ define(function (require) { }; return Common; -}); +}()); diff --git a/test/support/pages/discover_page.js b/test/support/pages/discover_page.js index ced12f51efb757..f3ea45b26769d7 100644 --- a/test/support/pages/discover_page.js +++ b/test/support/pages/discover_page.js @@ -1,15 +1,10 @@ -// in test/support/pages/discover_page.js -define(function (require) { - var config = require('intern').config; - var Common = require('./common'); +import { remote, common, defaultTimeout } from '../'; - var defaultTimeout = config.timeouts.default; - var common; +export default (function () { var thisTime; - function DiscoverPage(remote) { + function DiscoverPage() { this.remote = remote; - common = new Common(this.remote); thisTime = this.remote.setFindTimeout(defaultTimeout); } @@ -221,4 +216,4 @@ define(function (require) { }; return DiscoverPage; -}); +}()); diff --git a/test/support/pages/header_page.js b/test/support/pages/header_page.js index b87c29095bc21a..88f22360694a34 100644 --- a/test/support/pages/header_page.js +++ b/test/support/pages/header_page.js @@ -1,20 +1,14 @@ -// in test/support/pages/header_page.js -define(function (require) { - var config = require('intern').config; - var Common = require('./common'); +import { common, remote, defaultTimeout } from '../'; - var common; +export default (function () { // the page object is created as a constructor // so we can provide the remote Command object // at runtime - function HeaderPage(remote) { + function HeaderPage() { this.remote = remote; - common = new Common(this.remote); } - var defaultTimeout = config.timeouts.default; - HeaderPage.prototype = { constructor: HeaderPage, @@ -140,4 +134,4 @@ define(function (require) { }; return HeaderPage; -}); +}()); diff --git a/test/support/pages/settings_page.js b/test/support/pages/settings_page.js index e330e92e538773..666d5e6b5d4c0d 100644 --- a/test/support/pages/settings_page.js +++ b/test/support/pages/settings_page.js @@ -1,15 +1,10 @@ // in test/support/pages/settings_page.js -define(function (require) { - var config = require('intern').config; - var Promise = require('bluebird'); - var Common = require('./common'); +var Promise = require('bluebird'); +import { common, remote, defaultTimeout } from '../'; - var defaultTimeout = config.timeouts.default; - var common; - - function settingsPage(remote) { +export default (function () { + function settingsPage() { this.remote = remote; - common = new Common(this.remote); } settingsPage.prototype = { @@ -341,4 +336,4 @@ define(function (require) { }; return settingsPage; -}); +}()); diff --git a/test/support/pages/visualize_page.js b/test/support/pages/visualize_page.js index 02e969d6855e18..64bef1d1ac1595 100644 --- a/test/support/pages/visualize_page.js +++ b/test/support/pages/visualize_page.js @@ -1,15 +1,8 @@ -define(function (require) { +import { common, defaultTimeout, remote } from '../'; - var config = require('intern').config; - var registerSuite = require('intern!object'); - var Common = require('./common'); - - var defaultTimeout = config.timeouts.default; - var common; - - function VisualizePage(remote) { +export default (function () { + function VisualizePage() { this.remote = remote; - common = new Common(this.remote); } VisualizePage.prototype = { @@ -688,4 +681,4 @@ define(function (require) { }; return VisualizePage; -}); +}()); From 263b55360f60472335df9c0da9d315a9a60efcd6 Mon Sep 17 00:00:00 2001 From: spalger Date: Sun, 17 Apr 2016 18:06:00 -0700 Subject: [PATCH 2/2] [test/functional/support] throw errors on invalid export usage --- .../functional/apps/discover/_shared_links.js | 2 +- .../settings/_index_pattern_results_sort.js | 2 +- test/support/index.js | 54 +++++++++++-------- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/test/functional/apps/discover/_shared_links.js b/test/functional/apps/discover/_shared_links.js index 529d538c1cb2f5..8c21f0254b06ae 100644 --- a/test/functional/apps/discover/_shared_links.js +++ b/test/functional/apps/discover/_shared_links.js @@ -131,4 +131,4 @@ import { bdd, common, discoverPage, headerPage, settingsPage, scenarioManager } }); }); }()); -}); +}()); diff --git a/test/functional/apps/settings/_index_pattern_results_sort.js b/test/functional/apps/settings/_index_pattern_results_sort.js index 21485231758598..9ad2e3d710815a 100644 --- a/test/functional/apps/settings/_index_pattern_results_sort.js +++ b/test/functional/apps/settings/_index_pattern_results_sort.js @@ -129,5 +129,5 @@ import { }); }); // end describe pagination }); // end index result field sort - }); + }()); }()); diff --git a/test/support/index.js b/test/support/index.js index 9d87c4633f17bc..2580401c68b643 100644 --- a/test/support/index.js +++ b/test/support/index.js @@ -8,28 +8,38 @@ import VisualizePage from './pages/visualize_page'; const kbnInternVars = global.__kibana__intern__; -const NOT_AVAILABLE = { - toString() { return 'NOT AVAILABLE UNTIL TESTS START TO RUN'; } -}; +exports.bdd = kbnInternVars.bdd; +exports.intern = kbnInternVars.intern; +exports.config = exports.intern.config; +exports.defaultTimeout = exports.config.defaultTimeout; +exports.scenarioManager = new ScenarioManager(url.format(exports.config.servers.elasticsearch)); -export const bdd = kbnInternVars.bdd; -export const intern = kbnInternVars.intern; -export const config = intern.config; -export const defaultTimeout = config.defaultTimeout; -export const scenarioManager = new ScenarioManager(url.format(config.servers.elasticsearch)); +defineDelayedExport('remote', (suite) => suite.remote); +defineDelayedExport('common', () => new Common()); +defineDelayedExport('discoverPage', () => new DiscoverPage()); +defineDelayedExport('headerPage', () => new HeaderPage()); +defineDelayedExport('settingsPage', () => new SettingsPage()); +defineDelayedExport('visualizePage', () => new VisualizePage()); -export let remote = NOT_AVAILABLE; -export let common = NOT_AVAILABLE; -export let discoverPage = NOT_AVAILABLE; -export let settingsPage = NOT_AVAILABLE; -export let headerPage = NOT_AVAILABLE; -export let visualizePage = NOT_AVAILABLE; +// creates an export for values that aren't actually avaialable until +// until tests start to run. These getters will throw errors if the export +// is accessed before it's available, hopefully making debugging easier. +// Once the first before() handler is called the onEarliestBefore() handlers +// will fire and rewrite all of these exports to be their correct value. +function defineDelayedExport(name, define) { + Object.defineProperty(exports, name, { + configurable: true, + get() { + throw new TypeError( + 'remote is not available until tests start to run. Move your ' + + 'usage of the import inside a test setup hook or a test itself.' + ); + } + }); -kbnInternVars.onEarliestBefore(function () { - remote = this.remote; - common = new Common(); - discoverPage = new DiscoverPage(); - headerPage = new HeaderPage(); - settingsPage = new SettingsPage(); - visualizePage = new VisualizePage(); -}); + kbnInternVars.onEarliestBefore(function () { + Object.defineProperty(exports, name, { + value: define(this), + }); + }); +}