AMBARI-14741. Ambari Web Unit Test failure on trunk (App.WizardStep8Controller) (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ddf479ef Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ddf479ef Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ddf479ef Branch: refs/heads/trunk Commit: ddf479ef9ef1f4754cbfae075f0a9f36d99c901e Parents: 9f76f60 Author: Oleg Nechiporenko <onechipore...@apache.org> Authored: Wed Jan 20 17:30:49 2016 +0200 Committer: Oleg Nechiporenko <onechipore...@apache.org> Committed: Wed Jan 20 19:19:39 2016 +0200 ---------------------------------------------------------------------- ambari-web/app/assets/test/tests.js | 43 ++++ ambari-web/app/router.js | 3 + ambari-web/app/utils/ajax/ajax.js | 6 +- ambari-web/app/utils/ajax/ajax_queue.js | 28 +-- ambari-web/app/utils/helper.js | 2 +- ambari-web/package.json | 2 +- ambari-web/test/controllers/application_test.js | 24 +-- .../global/background_operations_test.js | 19 +- .../global/cluster_controller_test.js | 71 +++---- .../global/update_controller_test.js | 23 +-- .../global/user_settings_controller_test.js | 4 - ambari-web/test/controllers/installer_test.js | 10 - .../progress_controller_test.js | 11 +- .../progress_popup_controller_test.js | 43 +--- .../resourceManager/step3_controller_test.js | 11 +- .../controllers/main/admin/kerberos_test.js | 30 +-- .../admin/stack_and_upgrade_controller_test.js | 175 ++++++---------- .../main/alert_definitions_controller_test.js | 9 +- .../add_alert_definition_controller_test.js | 20 +- .../alerts/alert_instances_controller_test.js | 21 +- .../definitions_configs_controller_test.js | 10 +- .../definitions_details_controller_test.js | 37 +--- ...anage_alert_notifications_controller_test.js | 15 +- .../controllers/main/charts/heatmap_test.js | 61 ++---- .../dashboard/config_history_controller_test.js | 26 +-- .../main/host/add_controller_test.js | 42 ++-- .../test/controllers/main/host/details_test.js | 197 +++++++++--------- ambari-web/test/controllers/main/host_test.js | 14 +- .../main/service/add_controller_test.js | 75 +------ .../main/service/info/config_test.js | 21 +- .../main/service/info/summary_test.js | 107 +--------- .../test/controllers/main/service/item_test.js | 27 +-- .../service/reassign/step1_controller_test.js | 27 +-- .../service/reassign/step4_controller_test.js | 201 +++++++++---------- .../service/reassign/step6_controller_test.js | 24 ++- .../service/reassign/step7_controller_test.js | 53 +++-- .../test/controllers/main/service_test.js | 31 +-- .../controllers/main/views_controller_test.js | 9 +- ambari-web/test/controllers/main_test.js | 25 +-- .../test/controllers/wizard/step2_test.js | 11 +- .../test/controllers/wizard/step3_test.js | 95 ++------- .../test/controllers/wizard/step6_test.js | 9 - .../test/controllers/wizard/step7_test.js | 18 +- .../test/controllers/wizard/step8_test.js | 85 ++------ .../test/controllers/wizard/step9_test.js | 31 +-- ambari-web/test/controllers/wizard_test.js | 8 +- ambari-web/test/helpers.js | 77 +++++++ .../common/table_server_view_mixin_test.js | 1 + .../test/mixins/common/widget_mixin_test.js | 91 ++++----- .../common/widgets/export_metrics_mixin_test.js | 15 +- .../host_components/decommissionable_test.js | 25 +-- .../host_components/install_component_test.js | 97 ++++----- .../wizard/wizardProgressPageController_test.js | 24 +-- ambari-web/test/models/cluster_states_test.js | 2 - ambari-web/test/models/host_test.js | 4 - ambari-web/test/router_test.js | 40 +--- ambari-web/test/utils/ajax/ajax_queue_test.js | 8 - ambari-web/test/utils/ajax/ajax_test.js | 17 +- .../test/utils/batch_scheduled_requests_test.js | 71 ------- .../test/utils/host_progress_popup_test.js | 2 - ambari-web/test/utils/updater_test.js | 149 +++++++------- .../test/views/common/chart/linear_time_test.js | 16 +- .../common/configs/config_history_flow_test.js | 12 +- .../test/views/common/controls_view_test.js | 9 +- .../test/views/common/quick_link_view_test.js | 59 ++---- .../common/widget/gauge_widget_view_test.js | 24 ++- .../common/widget/graph_widget_view_test.js | 12 +- .../common/widget/number_widget_view_test.js | 24 ++- .../stack_upgrade/upgrade_group_view_test.js | 16 +- .../stack_upgrade/upgrade_wizard_view_test.js | 107 ++++++---- .../admin/stack_upgrade/version_view_test.js | 85 ++++---- .../test/views/main/dashboard/widget_test.js | 11 +- .../main/dashboard/widgets/namenode_cpu_test.js | 31 ++- .../test/views/main/dashboard/widgets_test.js | 18 +- .../host_component_views/datanode_view_test.js | 15 +- .../decommissionable_test.js | 28 +-- .../views/main/service/services/ranger_test.js | 10 - 77 files changed, 1151 insertions(+), 1763 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/app/assets/test/tests.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js index d6b0de8..2b801f0 100644 --- a/ambari-web/app/assets/test/tests.js +++ b/ambari-web/app/assets/test/tests.js @@ -341,9 +341,52 @@ var files = [ 'test/views/main/service/menu_test' ]; +var ajaxSendMock = { + complete: Em.K, + success: Em.K, + then: Em.K, + promise: Em.K, + done: Em.clb, + error: Em.K, + retry: function () { + return { + then: Em.K, + complete: Em.K + } + }, + fail: Em.K, + always: Em.clb +}; + +// don't poll anything while test are running +App.bgOperationsUpdateInterval = 3600000; +App.componentsUpdateInterval = 3600000; +App.contentUpdateInterval = 3600000; +App.hostStatusCountersUpdateInterval = 3600000; +App.alertDefinitionsUpdateInterval = 3600000; +App.alertInstancesUpdateInterval = 3600000; +App.alertGroupsUpdateInterval = 3600000; + App.initialize(); describe('Ambari Web Unit tests', function() { + beforeEach(function () { + App.set('testMode', false); // don't even try to write tests for testMode = true + sinon.stub($, 'ajax', Em.K); + sinon.stub(App.ajax, 'send', function () { + return ajaxSendMock; + }); + sinon.stub(App.updater, 'run', Em.K); + sinon.stub(App.updater, 'immediateRun', Em.K); + }); + + afterEach(function () { + App.ajax.send.restore(); + $.ajax.restore(); + App.updater.run.restore(); + App.updater.immediateRun.restore(); + }); + files.forEach(function (file) { describe(file, function() { require(file); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/app/router.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/router.js b/ambari-web/app/router.js index 92b2bae..c7f59c0 100644 --- a/ambari-web/app/router.js +++ b/ambari-web/app/router.js @@ -687,6 +687,9 @@ App.Router = Em.Router.extend({ * If the user is already logged in, redirect to where the user was previously */ enter: function (router, context) { + if ($.mocho) { + return; + } var location = router.location.location.hash; router.getAuthenticated().done(function (loggedIn) { if (loggedIn) { http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/app/utils/ajax/ajax.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js index a7c9e4e..4762d34 100644 --- a/ambari-web/app/utils/ajax/ajax.js +++ b/ambari-web/app/utils/ajax/ajax.js @@ -2808,7 +2808,6 @@ var formatRequest = function (data) { type: this.type || 'GET', timeout: App.timeout, dataType: 'json', - statusCode: require('data/statusCodes'), headers: {} }; if (App.get('testMode')) { @@ -2823,6 +2822,11 @@ var formatRequest = function (data) { if (this.format) { jQuery.extend(opt, this.format(data, opt)); } + var statusCode = jQuery.extend({}, require('data/statusCodes')); + statusCode['404'] = function () { + console.log("Error code 404: URI not found. -> " + opt.url); + }; + opt.statusCode = statusCode; return opt; }; http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/app/utils/ajax/ajax_queue.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/ajax/ajax_queue.js b/ambari-web/app/utils/ajax/ajax_queue.js index 7187788..1c2106f 100644 --- a/ambari-web/app/utils/ajax/ajax_queue.js +++ b/ambari-web/app/utils/ajax/ajax_queue.js @@ -152,19 +152,21 @@ App.ajaxQueue = Em.Object.extend({ var r = App.ajax.send(queue.shift()); this.propertyDidChange('queue'); if (r) { - r.complete(function(xhr) { - if(xhr.status>=200 && xhr.status <= 299) { - self.runNextRequest(); - } - else { - if (self.get('abortOnError')) { - self.clear(); - } - else { - self.runNextRequest(); - } - } - }); + r.complete(this._complete); + } + else { + if (this.get('abortOnError')) { + this.clear(); + } + else { + this.runNextRequest(); + } + } + }, + + _complete: function(xhr) { + if(xhr.status>=200 && xhr.status <= 299) { + this.runNextRequest(); } else { if (this.get('abortOnError')) { http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/app/utils/helper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/helper.js b/ambari-web/app/utils/helper.js index 296a8e8..a1d4b30 100644 --- a/ambari-web/app/utils/helper.js +++ b/ambari-web/app/utils/helper.js @@ -736,7 +736,7 @@ App.popover = function (self, options) { * @param {object} options */ App.tooltip = function (self, options) { - if (!self) return; + if (!self || !self.tooltip) return; self.tooltip(options); /* istanbul ignore next */ self.on("remove", function () { http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/package.json ---------------------------------------------------------------------- diff --git a/ambari-web/package.json b/ambari-web/package.json index 10a9314..550d293 100644 --- a/ambari-web/package.json +++ b/ambari-web/package.json @@ -1,7 +1,7 @@ { "name": "Ambari", "description": "Front-end package for the Apache Ambari Project", - "version": "2.2.0", + "version": "2.4.0", "homepage": "http://ambari.apache.org/", "repository": { "type": "git", http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/application_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/application_test.js b/ambari-web/test/controllers/application_test.js index efe5103..cdeb06e 100644 --- a/ambari-web/test/controllers/application_test.js +++ b/ambari-web/test/controllers/application_test.js @@ -19,6 +19,7 @@ var App = require('app'); require('models/cluster'); +var testHelpers = require('test/helpers'); function getController() { return App.ApplicationController.create(); @@ -90,30 +91,15 @@ describe('App.ApplicationController', function () { }); describe('#getStack', function() { - var res; - beforeEach(function () { - sinon.stub(App.ajax, 'send', function(data) { - res = data; - }); - }); - afterEach(function () { - App.ajax.send.restore(); - }); + it ('Should return send value', function() { var callback = { 'callback': true }; applicationController.getStack(callback); - res = JSON.parse(JSON.stringify(res)); - expect(res).to.be.eql({ - "name": "router.login.clusters", - "sender": { - "isPollerRunning": true - }, - "callback": { - "callback": true - } - }); + var args = testHelpers.findAjaxRequest('name', 'router.login.clusters'); + expect(args[0]).to.exists; + expect(args[0].callback.callback).to.be.true; }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/global/background_operations_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/global/background_operations_test.js b/ambari-web/test/controllers/global/background_operations_test.js index a602a32..445eeb0 100644 --- a/ambari-web/test/controllers/global/background_operations_test.js +++ b/ambari-web/test/controllers/global/background_operations_test.js @@ -41,7 +41,6 @@ describe('App.BackgroundOperationsController', function () { * */ App.set('clusterName', 'testName'); - App.bgOperationsUpdateInterval = 100; var tests = Em.A([ { @@ -112,13 +111,6 @@ describe('App.BackgroundOperationsController', function () { } ]); - beforeEach(function () { - App.testMode = false; - }); - afterEach(function () { - App.testMode = true; - }); - tests.forEach(function (test) { it(test.m, function () { controller.set('levelInfo', test.levelInfo); @@ -133,11 +125,9 @@ describe('App.BackgroundOperationsController', function () { describe('#startPolling()', function () { beforeEach(function () { - sinon.spy(App.updater, 'run'); sinon.spy(controller, 'requestMostRecent'); }); afterEach(function () { - App.updater.run.restore(); controller.requestMostRecent.restore(); }); @@ -177,6 +167,15 @@ describe('App.BackgroundOperationsController', function () { }); describe('#callBackForMostRecent()', function () { + + beforeEach(function () { + sinon.stub(App.router.get('clusterController'), 'restoreUpgradeState', Em.K); + }); + + afterEach(function () { + App.router.get('clusterController').restoreUpgradeState.restore(); + }); + it('No requests exists', function () { var data = { items: [] http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/global/cluster_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/global/cluster_controller_test.js b/ambari-web/test/controllers/global/cluster_controller_test.js index f72d64f..a791b19 100644 --- a/ambari-web/test/controllers/global/cluster_controller_test.js +++ b/ambari-web/test/controllers/global/cluster_controller_test.js @@ -19,6 +19,7 @@ var App = require('app'); var credentialUtils = require('utils/credentials'); +var testHelpers = require('test/helpers'); require('controllers/global/cluster_controller'); require('models/host_component'); require('utils/http_client'); @@ -74,6 +75,7 @@ describe('App.clusterController', function () { beforeEach(function () { modelSetup.setupStackVersion(this, 'HDP-2.0.5'); + App.ajax.send.restore(); // default ajax-mock can't be used here sinon.stub(App.ajax, 'send', function () { return { then: function (successCallback) { @@ -83,22 +85,22 @@ describe('App.clusterController', function () { } } }); + this.args = testHelpers.findAjaxRequest('name', 'cluster.load_cluster_name'); }); afterEach(function () { modelSetup.restoreStackVersion(this); - App.ajax.send.restore(); }); it('if clusterName is "mycluster" and reload is false then clusterName stays the same', function () { App.set('clusterName', 'mycluster'); controller.loadClusterName(false); - expect(App.ajax.send.called).to.be.false; + expect(this.args).to.not.exists; expect(App.get('clusterName')).to.equal('mycluster'); }); it('reload is true and clusterName is not empty', function () { controller.loadClusterName(true); - expect(App.ajax.send.calledOnce).to.be.true; + expect(this.args).to.exists; expect(App.get('clusterName')).to.equal('clusterNameFromServer'); expect(App.get('currentStackVersion')).to.equal('HDP-2.0.5'); }); @@ -106,7 +108,7 @@ describe('App.clusterController', function () { it('reload is false and clusterName is empty', function () { App.set('clusterName', ''); controller.loadClusterName(false); - expect(App.ajax.send.calledOnce).to.be.true; + expect(this.args).to.exists; expect(App.get('clusterName')).to.equal('clusterNameFromServer'); expect(App.get('currentStackVersion')).to.equal('HDP-2.0.5'); }); @@ -187,14 +189,8 @@ describe('App.clusterController', function () { describe('#getUrl', function () { controller.set('clusterName', 'tdk'); var tests = ['test1', 'test2', 'test3']; - it('testMode = true', function () { - App.testMode = true; - tests.forEach(function (test) { - expect(controller.getUrl(test, test)).to.equal(test); - }); - }); + it('testMode = false', function () { - App.testMode = false; tests.forEach(function (test) { expect(controller.getUrl(test, test)).to.equal(App.apiPrefix + '/clusters/' + controller.get('clusterName') + test); }); @@ -204,9 +200,6 @@ describe('App.clusterController', function () { describe("#createKerberosAdminSession()", function() { beforeEach(function () { - sinon.stub(App.ajax, 'send', function() { - return {success: Em.K} - }); sinon.stub(credentialUtils, 'createOrUpdateCredentials', function() { return $.Deferred().resolve().promise(); }); @@ -215,7 +208,6 @@ describe('App.clusterController', function () { }); afterEach(function () { - App.ajax.send.restore(); credentialUtils.createOrUpdateCredentials.restore(); App.get.restore(); }); @@ -227,18 +219,16 @@ describe('App.clusterController', function () { key: 'pass', type: 'persistent' }, {}); - - expect(App.ajax.send.getCall(0).args[0]).to.eql({ - name: 'common.cluster.update', - sender: controller, - data: { - clusterName: 'test', - data: [{ - session_attributes: { - kerberos_admin: {principal: "admin", password: "pass"} - } - }] - } + var args = testHelpers.findAjaxRequest('name', 'common.cluster.update'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].data).to.be.eql({ + clusterName: 'test', + data: [{ + session_attributes: { + kerberos_admin: {principal: "admin", password: "pass"} + } + }] }); }); it("KDC Store supports enabled, credentials updated via credentials storage call", function() { @@ -248,7 +238,8 @@ describe('App.clusterController', function () { key: 'pass', type: 'persistent' }, {}); - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'common.cluster.update'); + expect(args).to.not.exists; expect(credentialUtils.createOrUpdateCredentials.getCall(0).args).to.eql([ 'test', 'kdc.admin.credential', { principal: 'admin', @@ -282,14 +273,7 @@ describe('App.clusterController', function () { } ]; - beforeEach(function () { - sinon.stub(App.ajax, 'send').returns({ - promise: Em.K - }); - }); - afterEach(function () { - App.ajax.send.restore(); App.get.restore(); }); @@ -301,7 +285,8 @@ describe('App.clusterController', function () { it('request is sent', function () { controller.checkDetailedRepoVersion(); - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'cluster.load_detailed_repo_version'); + expect(args).to.exists; }); }); @@ -316,7 +301,8 @@ describe('App.clusterController', function () { }); it('request is not sent', function () { - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'cluster.load_detailed_repo_version'); + expect(args).to.not.exists; }); it('App.isStormMetricsSupported is ' + item.isStormMetricsSupported, function () { @@ -438,17 +424,10 @@ describe('App.clusterController', function () { describe('#getAllUpgrades()', function () { - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - - afterEach(function () { - App.ajax.send.restore(); - }); - it('should send request to get upgrades data', function () { controller.getAllUpgrades(); - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'cluster.load_last_upgrade'); + expect(args).to.exists; }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/global/update_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/global/update_controller_test.js b/ambari-web/test/controllers/global/update_controller_test.js index 25b2c5b..c0a4760 100644 --- a/ambari-web/test/controllers/global/update_controller_test.js +++ b/ambari-web/test/controllers/global/update_controller_test.js @@ -20,6 +20,7 @@ var App = require('app'); require('utils/updater'); require('controllers/global/update_controller'); +var testHelpers = require('test/helpers'); describe('App.UpdateController', function () { var controller = App.UpdateController.create({ @@ -34,14 +35,6 @@ describe('App.UpdateController', function () { describe('#getUrl()', function () { - beforeEach(function () { - sinon.stub(App, 'get').withArgs('testMode').returns(false); - }); - - afterEach(function () { - App.get.restore(); - }); - it('testMode = false', function () { expect(controller.getUrl('test', '/real')).to.equal('/api/v1/clusters//real'); }); @@ -54,12 +47,6 @@ describe('App.UpdateController', function () { describe('#updateAll()', function () { - beforeEach(function () { - sinon.stub(App.updater, 'run', Em.K); - }); - afterEach(function () { - App.updater.run.restore(); - }); it('isWorking = false', function () { controller.set('isWorking', false); expect(App.updater.run.called).to.equal(false); @@ -266,23 +253,23 @@ describe('App.UpdateController', function () { this.mock = sinon.stub(App.Service, 'find'); sinon.stub(controller, 'computeParameters'); sinon.stub(controller, 'addParamsToHostsUrl'); - sinon.stub(App.ajax, 'send'); }); afterEach(function () { App.Service.find.restore(); controller.computeParameters.restore(); controller.addParamsToHostsUrl.restore(); - App.ajax.send.restore(); }); it("AMBARI_METRICS is not started", function () { this.mock.returns(Em.Object.create({isStarted: false})); expect(controller.loadHostsMetric([])).to.be.null; - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'hosts.metrics.lazy_load'); + expect(args).to.not.exists; }); it("AMBARI_METRICS is started", function () { this.mock.returns(Em.Object.create({isStarted: true})); expect(controller.loadHostsMetric([])).to.be.object; - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'hosts.metrics.lazy_load'); + expect(args).to.exists; }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/global/user_settings_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/global/user_settings_controller_test.js b/ambari-web/test/controllers/global/user_settings_controller_test.js index 7c49645..849fb2f 100644 --- a/ambari-web/test/controllers/global/user_settings_controller_test.js +++ b/ambari-web/test/controllers/global/user_settings_controller_test.js @@ -22,14 +22,10 @@ var userSettingsController; describe('App.UserSettingsController', function () { beforeEach(function () { - sinon.stub(App.ajax, 'send', function () { - return {complete: Em.K} - }); userSettingsController = App.UserSettingsController.create(); }); afterEach(function () { - App.ajax.send.restore(); userSettingsController.destroy(); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/installer_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/installer_test.js b/ambari-web/test/controllers/installer_test.js index cd75ed7..df4ab0e 100644 --- a/ambari-web/test/controllers/installer_test.js +++ b/ambari-web/test/controllers/installer_test.js @@ -30,16 +30,6 @@ describe('App.InstallerController', function () { installerController.destroy(); }); - beforeEach(function () { - sinon.stub(App.ajax, 'send', function () { - return {complete: Em.K}; - }); - }); - - afterEach(function () { - App.ajax.send.restore(); - }); - describe('#init', function () { var c; beforeEach(function () { http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/admin/highAvailability/progress_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/highAvailability/progress_controller_test.js b/ambari-web/test/controllers/main/admin/highAvailability/progress_controller_test.js index 1c4d584..f002754 100644 --- a/ambari-web/test/controllers/main/admin/highAvailability/progress_controller_test.js +++ b/ambari-web/test/controllers/main/admin/highAvailability/progress_controller_test.js @@ -123,12 +123,15 @@ describe('App.HighAvailabilityProgressPageController', function () { } ] }]; - beforeEach(function() { - App.set('testMode', true); + + beforeEach(function () { + sinon.stub(Date.prototype, 'getTime').returns(1); }); - afterEach(function() { - App.set('testMode', false); + + afterEach(function () { + Date.prototype.getTime.restore(); }); + it("reconfigures configs after HA", function() { tests.forEach(function(t) { controller.set('content', t.content); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/admin/highAvailability/progress_popup_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/highAvailability/progress_popup_controller_test.js b/ambari-web/test/controllers/main/admin/highAvailability/progress_popup_controller_test.js index 2a9a4d7..8648181 100644 --- a/ambari-web/test/controllers/main/admin/highAvailability/progress_popup_controller_test.js +++ b/ambari-web/test/controllers/main/admin/highAvailability/progress_popup_controller_test.js @@ -19,6 +19,7 @@ var App = require('app'); require('controllers/main/admin/highAvailability/progress_popup_controller'); +var testHelpers = require('test/helpers'); describe('App.HighAvailabilityProgressPopupController', function () { @@ -34,16 +35,6 @@ describe('App.HighAvailabilityProgressPopupController', function () { describe('#startTaskPolling', function () { - beforeEach(function () { - sinon.stub(App.updater, 'run', Em.K); - sinon.stub(App.updater, 'immediateRun', Em.K); - }); - - afterEach(function () { - App.updater.run.restore(); - App.updater.immediateRun.restore(); - }); - describe('should start task polling', function () { beforeEach(function () { @@ -85,17 +76,10 @@ describe('App.HighAvailabilityProgressPopupController', function () { describe('#updateTask', function () { - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - - afterEach(function () { - App.ajax.send.restore(); - }); - it('should send polling request', function () { controller.updateTask(); - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'background_operations.get_by_task'); + expect(args).to.exists; }); }); @@ -200,14 +184,6 @@ describe('App.HighAvailabilityProgressPopupController', function () { } ]; - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - - afterEach(function () { - App.ajax.send.restore(); - }); - cases.forEach(function (item) { describe(item.title, function () { @@ -217,26 +193,29 @@ describe('App.HighAvailabilityProgressPopupController', function () { stageId: item.stageId }); controller.getHosts(); + this.bgArgs = testHelpers.filterAjaxRequests('name', 'background_operations.get_by_request'); + this.pollingArgs = testHelpers.filterAjaxRequests('name', 'common.request.polling'); + this.args = item.name === 'background_operations.get_by_request' ? this.bgArgs : this.pollingArgs; }); it('two requests are sent', function () { - expect(App.ajax.send.calledTwice).to.be.true; + expect(this.args.length).to.be.equal(2); }); it('1st call name is valid', function () { - expect(App.ajax.send.firstCall.args[0].name).to.equal(item.name); + expect(this.args[0][0].name).to.equal(item.name); }); it('2nd call name is valid', function () { - expect(App.ajax.send.secondCall.args[0].name).to.equal(item.name); + expect(this.args[1][0].name).to.equal(item.name); }); it('1st stageId is valid', function () { - expect(App.ajax.send.firstCall.args[0].data.stageId).to.eql(item.stageIdPassed); + expect(this.args[0][0].data.stageId).to.eql(item.stageIdPassed); }); it('2nd stageId is valid', function () { - expect(App.ajax.send.secondCall.args[0].data.stageId).to.eql(item.stageIdPassed); + expect(this.args[1][0].data.stageId).to.eql(item.stageIdPassed); }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js b/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js index 9a24cf3..3e6f7bb 100644 --- a/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js +++ b/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js @@ -18,6 +18,7 @@ var App = require('app'); require('controllers/main/admin/highAvailability/resourceManager/step3_controller'); +var testHelpers = require('test/helpers'); describe('App.RMHighAvailabilityWizardStep3Controller', function () { @@ -54,14 +55,6 @@ describe('App.RMHighAvailabilityWizardStep3Controller', function () { content: Em.Object.create({}) }); - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - - afterEach(function () { - App.ajax.send.restore(); - }); - it('should send proper ajax request', function () { controller.loadConfigTagsSuccessCallback({ 'Clusters': { @@ -80,7 +73,7 @@ describe('App.RMHighAvailabilityWizardStep3Controller', function () { }, {}, { 'serviceConfig': {} }); - var data = App.ajax.send.args[0][0].data; + var data = testHelpers.findAjaxRequest('name', 'reassign.load_configs')[0].data; expect(data.urlParams).to.equal('(type=zoo.cfg&tag=1)|(type=yarn-site&tag=1)|(type=yarn-env&tag=1)'); expect(data.serviceConfig).to.eql({}); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/admin/kerberos_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/kerberos_test.js b/ambari-web/test/controllers/main/admin/kerberos_test.js index fa23082..d347416 100644 --- a/ambari-web/test/controllers/main/admin/kerberos_test.js +++ b/ambari-web/test/controllers/main/admin/kerberos_test.js @@ -17,6 +17,7 @@ */ var App = require('app'); +var testHelpers = require('test/helpers'); describe('App.MainAdminKerberosController', function() { @@ -131,13 +132,11 @@ describe('App.MainAdminKerberosController', function() { beforeEach(function () { sinon.spy(App.ModalPopup, "show"); - sinon.stub(App.ajax, 'send', Em.K); sinon.spy(controller, 'restartServicesAfterRegenerate'); sinon.spy(controller, 'restartAllServices'); }); afterEach(function () { App.ModalPopup.show.restore(); - App.ajax.send.restore(); controller.restartServicesAfterRegenerate.restore(); controller.restartAllServices.restore(); }); @@ -157,8 +156,8 @@ describe('App.MainAdminKerberosController', function() { var popup2 = popup.onPrimary(); popup2.set('restartComponents', true) popup2.onPrimary(); - - expect(App.ajax.send.args[0][0].data.type).to.equal('missing'); + var args = testHelpers.findAjaxRequest('name', 'admin.kerberos_security.regenerate_keytabs'); + expect(args[0].data.type).to.be.equal('missing'); }); it('user didn\'t check regeneration only for missing host/components', function () { @@ -169,7 +168,8 @@ describe('App.MainAdminKerberosController', function() { popup2.set('restartComponents', true) popup2.onPrimary(); - expect(App.ajax.send.args[0][0].data.type).to.equal('all'); + var args = testHelpers.findAjaxRequest('name', 'admin.kerberos_security.regenerate_keytabs'); + expect(args[0].data.type).to.be.equal('all'); }); it('user checked restart services automatically', function () { @@ -180,7 +180,8 @@ describe('App.MainAdminKerberosController', function() { popup2.set('restartComponents', true) popup2.onPrimary(); - expect(App.ajax.send.args[0][0].data.withAutoRestart).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'admin.kerberos_security.regenerate_keytabs'); + expect(args[0].data.withAutoRestart).to.be.true; }); it('user didn\'t check restart services automatically', function () { @@ -191,7 +192,8 @@ describe('App.MainAdminKerberosController', function() { popup2.set('restartComponents', false) popup2.onPrimary(); - expect(App.ajax.send.args[0][0].data.withAutoRestart).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'admin.kerberos_security.regenerate_keytabs'); + expect(args[0].data.withAutoRestart).to.be.false; }); }); @@ -200,7 +202,6 @@ describe('App.MainAdminKerberosController', function() { var mock = {callback: Em.K}; beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); sinon.spy(mock, 'callback'); sinon.stub(controller, 'getSecurityType', function (c) { c(); @@ -208,7 +209,6 @@ describe('App.MainAdminKerberosController', function() { }); afterEach(function () { - App.ajax.send.restore(); mock.callback.restore(); controller.getSecurityType.restore(); Em.tryInvoke(App.get, 'restore'); @@ -244,6 +244,7 @@ describe('App.MainAdminKerberosController', function() { controller.set('securityEnabled', test.securityEnabled); controller.set('kdc_type', test.kdc_type); controller.getKDCSessionState(mock.callback); + this.args = testHelpers.findAjaxRequest('name', 'kerberos.session.state'); }); @@ -252,7 +253,7 @@ describe('App.MainAdminKerberosController', function() { expect(mock.callback.calledOnce).to.be.false; }); it('1 request is sent', function () { - expect(App.ajax.send.calledOnce).to.be.true; + expect(this.args).to.exists; }); } else { @@ -260,7 +261,7 @@ describe('App.MainAdminKerberosController', function() { expect(mock.callback.calledOnce).to.be.true; }); it('no request is sent', function () { - expect(App.ajax.send.calledOnce).to.be.false; + expect(this.args).to.not.exists; }); } }); @@ -272,12 +273,10 @@ describe('App.MainAdminKerberosController', function() { var mock = {callback: Em.K}; beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); sinon.spy(mock, 'callback'); }); afterEach(function () { - App.ajax.send.restore(); mock.callback.restore(); Em.tryInvoke(App.get, 'restore'); }); @@ -312,6 +311,7 @@ describe('App.MainAdminKerberosController', function() { controller.set('securityEnabled', test.securityEnabled); controller.set('kdc_type', test.kdc_type); controller.getSecurityType(mock.callback); + this.args = testHelpers.findAjaxRequest('name', 'admin.security.cluster_configs.kerberos'); }); if (test.result) { @@ -319,14 +319,14 @@ describe('App.MainAdminKerberosController', function() { expect(mock.callback.calledOnce).to.be.false; }); it('1 request is sent', function () { - expect(App.ajax.send.calledOnce).to.be.true; + expect(this.args).to.exists; }); } else { it('callback is called once', function () { expect(mock.callback.calledOnce).to.be.true; }); it('no request is sent', function () { - expect(App.ajax.send.calledOnce).to.be.false; + expect(this.args).to.not.exists; }); } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js b/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js index fe5d9c8..508e2dd 100644 --- a/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js +++ b/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js @@ -20,6 +20,7 @@ var App = require('app'); require('controllers/main/admin/stack_and_upgrade_controller'); require('utils/string_utils'); +var testHelpers = require('test/helpers'); describe('App.MainAdminStackAndUpgradeController', function() { @@ -139,43 +140,34 @@ describe('App.MainAdminStackAndUpgradeController', function() { }); describe("#loadUpgradeData()", function() { - beforeEach(function () { - sinon.stub(App.ajax, 'send').returns({ - then: Em.K, - complete: Em.K - }); - }); - afterEach(function () { - App.ajax.send.restore(); - }); + it("get entire data", function() { controller.set('upgradeId', 1); controller.loadUpgradeData(); - expect(App.ajax.send.getCall(0).args[0]).to.eql({ - name: 'admin.upgrade.data', - sender: controller, - data: { - id: 1 - }, - success: 'loadUpgradeDataSuccessCallback' - }) + var args = testHelpers.findAjaxRequest('name', 'admin.upgrade.data'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].data).to.be.eql({ + id: 1 + }); }); it("get only state", function() { controller.set('upgradeId', 1); controller.loadUpgradeData(true); - expect(App.ajax.send.getCall(0).args[0]).to.eql({ - name: 'admin.upgrade.state', - sender: controller, - data: { - id: 1 - }, - success: 'loadUpgradeDataSuccessCallback' - }) + var args = testHelpers.findAjaxRequest('name', 'admin.upgrade.state'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].data).to.be.eql({ + id: 1 + }); }); it("upgrade id is null", function() { controller.set('upgradeId', null); controller.loadUpgradeData(); - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'admin.upgrade.state'); + var args2 = testHelpers.findAjaxRequest('name', 'admin.upgrade.data'); + expect(args).to.not.exists; + expect(args2).to.not.exists; }); }); @@ -263,12 +255,7 @@ describe('App.MainAdminStackAndUpgradeController', function() { }); describe("#getUpgradeItem()", function() { - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - afterEach(function () { - App.ajax.send.restore(); - }); + it("default callback", function() { var item = Em.Object.create({ request_id: 1, @@ -276,15 +263,14 @@ describe('App.MainAdminStackAndUpgradeController', function() { stage_id: 3 }); controller.getUpgradeItem(item); - expect(App.ajax.send.getCall(0).args[0]).to.eql({ - name: 'admin.upgrade.upgrade_item', - sender: controller, - data: { - upgradeId: 1, - groupId: 2, - stageId: 3 - }, - success: 'getUpgradeItemSuccessCallback' + var args = testHelpers.findAjaxRequest('name', 'admin.upgrade.upgrade_item'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].success).to.be.equal('getUpgradeItemSuccessCallback'); + expect(args[0].data).to.be.eql({ + upgradeId: 1, + groupId: 2, + stageId: 3 }); }); it("custom callback", function() { @@ -294,15 +280,14 @@ describe('App.MainAdminStackAndUpgradeController', function() { stage_id: 3 }); controller.getUpgradeItem(item, 'customCallback'); - expect(App.ajax.send.getCall(0).args[0]).to.eql({ - name: 'admin.upgrade.upgrade_item', - sender: controller, - data: { - upgradeId: 1, - groupId: 2, - stageId: 3 - }, - success: 'customCallback' + var args = testHelpers.findAjaxRequest('name', 'admin.upgrade.upgrade_item'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].success).to.be.equal('customCallback'); + expect(args[0].data).to.be.eql({ + upgradeId: 1, + groupId: 2, + stageId: 3 }); }); }); @@ -321,12 +306,6 @@ describe('App.MainAdminStackAndUpgradeController', function() { }); describe("#runPreUpgradeCheck()", function() { - before(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - after(function () { - App.ajax.send.restore(); - }); it("make ajax call", function() { controller.runPreUpgradeCheck(Em.Object.create({ repositoryVersion: '2.2', @@ -335,18 +314,15 @@ describe('App.MainAdminStackAndUpgradeController', function() { skipComponentFailures: false, skipSCFailures: false })); - expect(App.ajax.send.getCall(0).args[0]).to.eql({ - name: "admin.upgrade.pre_upgrade_check", - sender: controller, - data: { - value: '2.2', - label: 'HDP-2.2', - type: 'ROLLING', - skipComponentFailures: 'false', - skipSCFailures: 'false' - }, - success: "runPreUpgradeCheckSuccess", - error: "runPreUpgradeCheckError" + var args = testHelpers.findAjaxRequest('name', 'admin.upgrade.pre_upgrade_check'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].data).to.be.eql({ + value: '2.2', + label: 'HDP-2.2', + type: 'ROLLING', + skipComponentFailures: 'false', + skipSCFailures: 'false' }); }); }); @@ -526,7 +502,6 @@ describe('App.MainAdminStackAndUpgradeController', function() { var callArgs; beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); sinon.stub(controller, 'setDBProperty', Em.K); controller.set('currentVersion', { repository_version: '2.2' @@ -535,11 +510,10 @@ describe('App.MainAdminStackAndUpgradeController', function() { value: '2.2', label: 'HDP-2.2' }); - callArgs = App.ajax.send.getCall(0).args[0]; + callArgs = testHelpers.findAjaxRequest('name', 'admin.upgrade.start')[0]; }); afterEach(function () { - App.ajax.send.restore(); controller.setDBProperty.restore(); }); @@ -991,7 +965,6 @@ describe('App.MainAdminStackAndUpgradeController', function() { describe("#downgrade()", function() { beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); sinon.stub(controller, 'abortUpgrade'); sinon.stub(App.RepositoryVersion, 'find').returns([ Em.Object.create({ @@ -1005,11 +978,10 @@ describe('App.MainAdminStackAndUpgradeController', function() { repository_version: '2.2', repository_name: 'HDP-2.2' }), {context: 'context'}); - this.callArgs = App.ajax.send.getCall(0).args[0]; + this.callArgs = testHelpers.findAjaxRequest('name', 'admin.downgrade.start')[0]; }); afterEach(function () { - App.ajax.send.restore(); controller.abortUpgrade.restore(); App.RepositoryVersion.find.restore(); }); @@ -1018,7 +990,7 @@ describe('App.MainAdminStackAndUpgradeController', function() { expect(controller.abortUpgrade.calledOnce).to.be.true; }); it('request-data is valid', function () { - expect(App.ajax.send.getCall(0).args[0].data).to.eql({ + expect(this.callArgs.data).to.eql({ from: '2.3', value: '2.2', label: 'HDP-2.2', @@ -1056,12 +1028,7 @@ describe('App.MainAdminStackAndUpgradeController', function() { }); describe("#installRepoVersion()", function () { - before(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - after(function () { - App.ajax.send.restore(); - }); + it("make ajax call", function () { var repo = Em.Object.create({ stackVersionType: 'HDP', @@ -1070,7 +1037,8 @@ describe('App.MainAdminStackAndUpgradeController', function() { repoId: 1 }); controller.installRepoVersion(repo); - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'admin.stack_version.install.repo_version'); + expect(args).to.exists; }); }); @@ -1109,22 +1077,13 @@ describe('App.MainAdminStackAndUpgradeController', function() { describe("#setUpgradeItemStatus()", function () { var item; beforeEach(function () { - sinon.stub(App.ajax, 'send', function () { - return { - done: Em.clb - } - }); item = Em.Object.create({ request_id: 1, stage_id: 1, group_id: 1 }); controller.setUpgradeItemStatus(item, 'PENDING'); - this.callArgs = App.ajax.send.getCall(0).args[0]; - }); - - afterEach(function () { - App.ajax.send.restore(); + this.callArgs = testHelpers.findAjaxRequest('name', 'admin.upgrade.upgradeItem.setState')[0]; }); it('request-data is valid', function () { @@ -1222,12 +1181,10 @@ describe('App.MainAdminStackAndUpgradeController', function() { before(function(){ this.mock = sinon.stub(controller, 'validateRepoVersions'); sinon.stub(controller, 'prepareRepoForSaving', Em.K); - sinon.stub(App.ajax, 'send').returns({success: Em.K}); }); after(function(){ this.mock.restore(); controller.prepareRepoForSaving.restore(); - App.ajax.send.restore(); }); describe("validation errors present", function() { @@ -1236,6 +1193,7 @@ describe('App.MainAdminStackAndUpgradeController', function() { done: function(callback) {callback([1]);} }); controller.saveRepoOS(Em.Object.create({repoVersionId: 1}), true); + this.args = testHelpers.findAjaxRequest('name', 'admin.stack_versions.edit.repo'); }); it('validateRepoVersions is called with valid arguments', function () { @@ -1247,7 +1205,7 @@ describe('App.MainAdminStackAndUpgradeController', function() { }); it('no requests are sent', function () { - expect(App.ajax.send.called).to.be.false; + expect(this.args).to.not.exists; }); }); @@ -1269,15 +1227,11 @@ describe('App.MainAdminStackAndUpgradeController', function() { }); describe("#validateRepoVersions()", function () { - before(function () { - sinon.stub(App.ajax, 'send').returns({success: Em.K, error: Em.K}); - }); - after(function () { - App.ajax.send.restore(); - }); + it("skip validation", function () { controller.validateRepoVersions(Em.Object.create({repoVersionId: 1}), true); - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'admin.stack_versions.validate.repo'); + expect(args).to.not.exists; }); it("do validation", function () { var repo = Em.Object.create({ @@ -1292,7 +1246,8 @@ describe('App.MainAdminStackAndUpgradeController', function() { ] }); controller.validateRepoVersions(repo, false); - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'admin.stack_versions.validate.repo'); + expect(args[0]).to.exists; }); }); @@ -1304,6 +1259,7 @@ describe('App.MainAdminStackAndUpgradeController', function() { realUpdateUrl: 'realUpdateUrl' }); }); + it("full load is true, stack is null", function() { expect(controller.getUrl(null, true)).to.equal('realRepoUrl'); }); @@ -1401,13 +1357,11 @@ describe('App.MainAdminStackAndUpgradeController', function() { describe('#updateFinalize', function () { beforeEach(function() { - sinon.stub($, 'ajax', Em.K); controller.set('isFinalizeItem', true); this.stub = sinon.stub(App, 'get'); }); afterEach(function () { - $.ajax.restore(); this.stub.restore(); }); @@ -1416,10 +1370,11 @@ describe('App.MainAdminStackAndUpgradeController', function() { beforeEach(function () { this.stub.withArgs('upgradeState').returns('HOLDING'); controller.updateFinalize(); + this.args = testHelpers.findAjaxRequest('name', 'admin.upgrade.finalizeContext'); }); it('request is sent', function () { - expect($.ajax.calledOnce).to.be.true; + expect(this.args[0]).to.exists; }); }); @@ -1429,10 +1384,11 @@ describe('App.MainAdminStackAndUpgradeController', function() { beforeEach(function () { this.stub.withArgs('upgradeState').returns('HOLDING_TIMEDOUT'); controller.updateFinalize(); + this.args = testHelpers.findAjaxRequest('name', 'admin.upgrade.finalizeContext'); }); it('request is not sent', function () { - expect($.ajax.called).to.be.false; + expect(this.args).to.not.exists; }); it('isFinalizeItem is false', function () { @@ -2052,12 +2008,12 @@ describe('App.MainAdminStackAndUpgradeController', function() { action: 'a' }); }); + App.ajax.send.restore(); sinon.stub(App.ajax, 'send').returns({}); }); afterEach(function () { appGetMock.restore(); - App.ajax.send.restore(); }); cases.forEach(function (item) { @@ -2069,6 +2025,7 @@ describe('App.MainAdminStackAndUpgradeController', function() { controller.runPreUpgradeCheckOnly({ type: item.type }); + this.ajaxCalls = testHelpers.filterAjaxRequests('name', 'admin.upgrade.pre_upgrade_check'); }); it('ROLLING properties', function () { @@ -2080,7 +2037,7 @@ describe('App.MainAdminStackAndUpgradeController', function() { }); it(item.ajaxCallCount + ' requests sent', function () { - expect(App.ajax.send.callCount).to.equal(item.ajaxCallCount); + expect(this.ajaxCalls.length).to.be.equal(item.ajaxCallCount); }); it('runningCheckRequests length is ' + item.runningCheckRequestsLength, function () { http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/alert_definitions_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/alert_definitions_controller_test.js b/ambari-web/test/controllers/main/alert_definitions_controller_test.js index 45bbd50..a1f2b9a 100644 --- a/ambari-web/test/controllers/main/alert_definitions_controller_test.js +++ b/ambari-web/test/controllers/main/alert_definitions_controller_test.js @@ -20,6 +20,7 @@ var App = require('app'); require('controllers/main/alert_definitions_controller'); require('models/alerts/alert_definition'); +var testHelpers = require('test/helpers'); var controller; describe('App.MainAlertDefinitionsController', function() { @@ -33,7 +34,6 @@ describe('App.MainAlertDefinitionsController', function() { describe('#toggleDefinitionState', function() { beforeEach(function() { - sinon.stub(App.ajax, 'send', Em.K); controller.reopen({ content: [ App.AlertDefinition.createRecord({id: 1, enabled: true}) @@ -41,14 +41,11 @@ describe('App.MainAlertDefinitionsController', function() { }); }); - afterEach(function() { - App.ajax.send.restore(); - }); - it('should do ajax-request', function() { var alertDefinition = controller.get('content')[0]; controller.toggleDefinitionState(alertDefinition); - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'alerts.update_alert_definition'); + expect(args).to.exists; }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/alerts/add_alert_definition/add_alert_definition_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/alerts/add_alert_definition/add_alert_definition_controller_test.js b/ambari-web/test/controllers/main/alerts/add_alert_definition/add_alert_definition_controller_test.js index 05ab913..bcde3c7 100644 --- a/ambari-web/test/controllers/main/alerts/add_alert_definition/add_alert_definition_controller_test.js +++ b/ambari-web/test/controllers/main/alerts/add_alert_definition/add_alert_definition_controller_test.js @@ -18,7 +18,7 @@ var App = require('app'); require('controllers/main/alerts/add_alert_definition/add_alert_definition_controller'); - +var testHelpers = require('test/helpers'); var controller; describe('App.AddAlertDefinitionController', function () { @@ -28,22 +28,12 @@ describe('App.AddAlertDefinitionController', function () { }); describe("#createNewAlertDefinition()", function () { - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - afterEach(function () { - App.ajax.send.restore(); - }); - it("valid request is sent", function () { controller.createNewAlertDefinition('data'); - expect(App.ajax.send.getCall(0).args[0]).to.eql({ - name: 'alerts.create_alert_definition', - sender: controller, - data: { - data: 'data' - } - }); + var args = testHelpers.findAjaxRequest('name', 'alerts.create_alert_definition'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].data).to.be.eql({data: 'data'}); }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/alerts/alert_instances_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/alerts/alert_instances_controller_test.js b/ambari-web/test/controllers/main/alerts/alert_instances_controller_test.js index 051202d..94653c7 100644 --- a/ambari-web/test/controllers/main/alerts/alert_instances_controller_test.js +++ b/ambari-web/test/controllers/main/alerts/alert_instances_controller_test.js @@ -17,6 +17,7 @@ */ var App = require('app'); +var testHelpers = require('test/helpers'); var controller; @@ -26,22 +27,18 @@ describe('App.MainAlertInstancesController', function () { controller = App.MainAlertInstancesController.create({}); }); + afterEach(function () { + clearTimeout(controller.get('updateTimer')); + }); + describe('#fetchAlertInstances', function () { describe('loading instances from correct endpoint', function () { - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - - afterEach(function () { - App.ajax.send.restore(); - }); - it('should load by Host name', function () { controller.loadAlertInstancesByHost('host'); - var callArgs = App.ajax.send.args[0][0]; + var callArgs = testHelpers.findAjaxRequest('name', 'alerts.instances.by_host')[0]; expect(callArgs.name).to.equal('alerts.instances.by_host'); expect(callArgs.data.hostName).to.equal('host'); @@ -50,16 +47,16 @@ describe('App.MainAlertInstancesController', function () { it('should load by AlertDefinition id', function () { controller.loadAlertInstancesByAlertDefinition('1'); - var callArgs = App.ajax.send.args[0][0]; + var callArgs = testHelpers.findAjaxRequest('name', 'alerts.instances.by_definition')[0]; expect(callArgs.name).to.equal('alerts.instances.by_definition'); expect(callArgs.data.definitionId).to.equal('1'); }); it('should load all', function () { - controller.loadAlertInstances(); - expect(App.ajax.send.args[0][0].name).to.equal('alerts.instances'); + var callArgs = testHelpers.findAjaxRequest('name', 'alerts.instances')[0]; + expect(callArgs).to.exists; }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/alerts/definitions_configs_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/alerts/definitions_configs_controller_test.js b/ambari-web/test/controllers/main/alerts/definitions_configs_controller_test.js index f2f77aa..8cf61f2 100644 --- a/ambari-web/test/controllers/main/alerts/definitions_configs_controller_test.js +++ b/ambari-web/test/controllers/main/alerts/definitions_configs_controller_test.js @@ -17,7 +17,7 @@ */ var App = require('app'); - +var testHelpers = require('test/helpers'); var controller; function getController() { @@ -362,7 +362,6 @@ describe('App.MainAlertDefinitionConfigsController', function () { describe('#saveConfigs()', function () { beforeEach(function () { - sinon.spy(App.ajax, 'send'); controller.set('configs', [ Em.Object.create({isDisabled: true}), Em.Object.create({isDisabled: true}), @@ -372,10 +371,6 @@ describe('App.MainAlertDefinitionConfigsController', function () { controller.saveConfigs(); }); - afterEach(function () { - App.ajax.send.restore(); - }); - it('should set isDisabled for each config', function () { expect(controller.get('configs').someProperty('isDisabled', false)).to.be.false; }); @@ -383,7 +378,8 @@ describe('App.MainAlertDefinitionConfigsController', function () { expect(controller.get('canEdit')).to.be.false; }); it('should sent 1 request', function () { - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'alerts.update_alert_definition'); + expect(args[0]).to.exists; }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/alerts/definitions_details_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/alerts/definitions_details_controller_test.js b/ambari-web/test/controllers/main/alerts/definitions_details_controller_test.js index 28e1829..3b024f7 100644 --- a/ambari-web/test/controllers/main/alerts/definitions_details_controller_test.js +++ b/ambari-web/test/controllers/main/alerts/definitions_details_controller_test.js @@ -81,27 +81,6 @@ describe('App.MainAlertDefinitionDetailsController', function () { }); - describe('#toggleDefinitionState()', function () { - beforeEach(function() { - sinon.stub(App.ajax, 'send', Em.K); - controller.reopen({ - content: [ - App.AlertDefinition.createRecord({id: 1, enabled: true}) - ] - }); - }); - - afterEach(function() { - App.ajax.send.restore(); - }); - - it('should call App.ajax.send function', function () { - var alertDefinition = controller.get('content')[0]; - controller.toggleDefinitionState(alertDefinition); - expect(App.ajax.send.calledOnce).to.be.true; - }); - }); - describe("#deleteAlertDefinition()", function () { beforeEach(function () { sinon.stub(App.get('router'), 'transitionTo', Em.K); @@ -116,24 +95,12 @@ describe('App.MainAlertDefinitionDetailsController', function () { }); describe("#loadAlertInstancesHistory()", function () { - - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - - afterEach(function () { - App.ajax.send.restore(); - }); - - it("should load alert instances history", function () { - + it("should set lastDayAlertsCount = null", function () { controller.set('lastDayAlertsCount', 'test'); - controller.loadAlertInstancesHistory(); - - expect(App.ajax.send.calledOnce).to.be.true; expect(controller.get('lastDayAlertsCount')).to.equal(null); }); + }); describe("#loadAlertInstancesHistorySuccess()", function () { http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/alerts/manage_alert_notifications_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/alerts/manage_alert_notifications_controller_test.js b/ambari-web/test/controllers/main/alerts/manage_alert_notifications_controller_test.js index 9352116..84caec6 100644 --- a/ambari-web/test/controllers/main/alerts/manage_alert_notifications_controller_test.js +++ b/ambari-web/test/controllers/main/alerts/manage_alert_notifications_controller_test.js @@ -30,11 +30,6 @@ describe('App.ManageAlertNotificationsController', function () { beforeEach(function () { controller = getController(); - sinon.stub($, 'ajax', Em.K); - }); - - afterEach(function () { - $.ajax.restore(); }); describe('#alertNotifications', function () { @@ -795,8 +790,8 @@ describe('App.ManageAlertNotificationsController', function () { it("should send ajax request", function () { controller.createAlertNotification(); - expect($.ajax.calledOnce).to.be.true; - expect($.ajax.args[0][0].url.contains('overwrite_existing=true')).to.be.false; + var args = helpers.findAjaxRequest('name', 'alerts.create_alert_notification'); + expect(args[0]).to.exists; }); }); @@ -831,7 +826,8 @@ describe('App.ManageAlertNotificationsController', function () { it("should send ajax request", function () { controller.updateAlertNotification(); - expect($.ajax.calledOnce).to.be.true; + var args = helpers.findAjaxRequest('name', 'alerts.update_alert_notification'); + expect(args[0]).to.exists; }); }); @@ -877,7 +873,8 @@ describe('App.ManageAlertNotificationsController', function () { expect(App.showConfirmationPopup.calledOnce).to.be.true; popup.onPrimary(); - expect($.ajax.calledOnce).to.be.true; + var args = helpers.findAjaxRequest('name', 'alerts.delete_alert_notification'); + expect(args[0]).to.exists; }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/charts/heatmap_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/charts/heatmap_test.js b/ambari-web/test/controllers/main/charts/heatmap_test.js index c3e70e8..a8ece22 100644 --- a/ambari-web/test/controllers/main/charts/heatmap_test.js +++ b/ambari-web/test/controllers/main/charts/heatmap_test.js @@ -21,6 +21,7 @@ var App = require('app'); var controller; require('models/rack'); require('controllers/main/charts/heatmap'); +var testHelpers = require('test/helpers'); function getController() { return App.MainChartsHeatmapController.create(); @@ -65,13 +66,6 @@ describe('MainChartsHeatmapController', function () { describe('#showHeatMapMetric()', function () { beforeEach(function () { - sinon.stub(App.ajax, 'send', function () { - return { - done: function (callback) { - callback(); - } - } - }); controller.setProperties({ activeWidgetLayout: Em.Object.create({ displayName: 'widget', @@ -83,13 +77,10 @@ describe('MainChartsHeatmapController', function () { }); }); - afterEach(function () { - App.ajax.send.restore(); - }); - it('should call App.ajax', function () { controller.showHeatMapMetric({context:{id: 2}}); - expect(App.ajax.send.called).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'widget.layout.edit'); + expect(args).to.exists; }); }); @@ -248,55 +239,35 @@ describe('MainChartsHeatmapController', function () { describe("#getAllHeatMaps()", function() { - beforeEach(function() { - sinon.stub(App.ajax, 'send'); - }); - - afterEach(function() { - App.ajax.send.restore(); - }); - it("should call App.ajax.send", function() { controller.reopen({ loadHeatmapsUrlParams: 'url', sectionName: 's1' }); controller.getAllHeatMaps(); - expect(App.ajax.send.calledWith({ - name: 'widgets.get', - sender: controller, - data: { - urlParams: 'url', - sectionName: 's1' - } - })).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'widgets.get'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].data).to.be.eql({ + urlParams: 'url', + sectionName: 's1' + }); }); }); describe("#loadRacks()", function() { - beforeEach(function() { - sinon.stub(App.ajax, 'send'); - }); - - afterEach(function() { - App.ajax.send.restore(); - }); - it("should call App.ajax.send", function() { controller.reopen({ loadRacksUrlParams: 'url' }); controller.loadRacks(); - expect(App.ajax.send.calledWith({ - name: 'hosts.heatmaps', - sender: controller, - data: { - urlParams: 'url' - }, - success: 'loadRacksSuccessCallback' - })).to.be.true; - + var args = testHelpers.findAjaxRequest('name', 'hosts.heatmaps'); + expect(args[0]).to.exists; + expect(args[0].sender).to.be.eql(controller); + expect(args[0].data).to.be.eql({ + urlParams: 'url' + }); }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/dashboard/config_history_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/dashboard/config_history_controller_test.js b/ambari-web/test/controllers/main/dashboard/config_history_controller_test.js index 7467bca..db3d10f 100644 --- a/ambari-web/test/controllers/main/dashboard/config_history_controller_test.js +++ b/ambari-web/test/controllers/main/dashboard/config_history_controller_test.js @@ -18,12 +18,21 @@ var App = require('app'); - +var testHelpers = require('test/helpers'); require('controllers/main/dashboard/config_history_controller'); describe('MainConfigHistoryController', function () { - var controller = App.MainConfigHistoryController.create(); + var controller; + + beforeEach(function () { + controller = App.MainConfigHistoryController.create(); + }); + + afterEach(function () { + clearTimeout(controller.get('timeoutRef')); + controller.destroy(); + }); describe('#realUrl', function () { it('cluster name is empty', function () { @@ -85,16 +94,12 @@ describe('MainConfigHistoryController', function () { describe('#updateTotalCounter()', function () { beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); controller.updateTotalCounter(); }); - afterEach(function () { - App.ajax.send.restore(); - }); - it('ajax-request is sent', function () { - expect(App.ajax.send.calledOnce).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'service.serviceConfigVersions.get.total'); + expect(args).to.exists; }); }); @@ -113,14 +118,9 @@ describe('MainConfigHistoryController', function () { } } }); - sinon.stub(App, 'get', function(k) { - if ('testMode' === k) return false; - return Em.get(App, k); - }); }); afterEach(function () { App.router.get.restore(); - App.get.restore(); }); it('query params is empty', function () { http://git-wip-us.apache.org/repos/asf/ambari/blob/ddf479ef/ambari-web/test/controllers/main/host/add_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/host/add_controller_test.js b/ambari-web/test/controllers/main/host/add_controller_test.js index 6dcb2c9..ed8e78b 100644 --- a/ambari-web/test/controllers/main/host/add_controller_test.js +++ b/ambari-web/test/controllers/main/host/add_controller_test.js @@ -23,6 +23,7 @@ require('controllers/main/host/add_controller'); require('models/host_component'); require('models/service'); require('mappers/server_data_mapper'); +var testHelpers = require('test/helpers'); describe('App.AddHostController', function () { @@ -302,30 +303,26 @@ describe('App.AddHostController', function () { describe('#installServices()', function () { - beforeEach(function () { - sinon.spy(App.ajax, "send"); - }); - afterEach(function () { - App.ajax.send.restore(); - }); - it('No hosts', function () { controller.set('content.cluster', {name: 'cl'}); controller.set('testDBHosts', {}); expect(controller.installServices()).to.be.false; - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'common.host_components.update'); + expect(args).to.not.exists; }); it('Cluster name is empty', function () { controller.set('content.cluster', {name: ''}); controller.set('testDBHosts', {'host1': {}}); expect(controller.installServices()).to.be.false; - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'common.host_components.update'); + expect(args).to.not.exists; }); it('Cluster name is correct and hosts are present', function () { controller.set('content.cluster', {name: 'cl'}); controller.set('testDBHosts', {'host1': {isInstalled: false}}); expect(controller.installServices()).to.be.true; - expect(App.ajax.send.called).to.be.true; + var args = testHelpers.findAjaxRequest('name', 'common.host_components.update'); + expect(args).to.exists; }); }); @@ -412,7 +409,7 @@ describe('App.AddHostController', function () { }); }); - describe("#loadServices", function () { + /*describe("#loadServices", function () { var services = { db: null, stack: [], @@ -590,7 +587,7 @@ describe('App.AddHostController', function () { }); }); - +*/ describe("#loadSlaveComponentHosts()", function () { var mock = { @@ -746,16 +743,12 @@ describe('App.AddHostController', function () { }); describe("#applyConfigGroup()", function () { - beforeEach(function () { - sinon.stub(App.ajax, 'send', Em.K); - }); - afterEach(function () { - App.ajax.send.restore(); - }); + it("No config groups", function () { controller.set('content.configGroups', []); controller.applyConfigGroup(); - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'config_groups.update_config_group'); + expect(args).to.not.exists; }); it("selectedConfigGroup absent", function () { controller.set('content.configGroups', [ @@ -765,7 +758,8 @@ describe('App.AddHostController', function () { } ]); controller.applyConfigGroup(); - expect(App.ajax.send.called).to.be.false; + var args = testHelpers.findAjaxRequest('name', 'config_groups.update_config_group'); + expect(args).to.not.exists; }); it("selectedConfigGroup present", function () { controller.set('content.configGroups', [ @@ -784,9 +778,9 @@ describe('App.AddHostController', function () { } ]); controller.applyConfigGroup(); - - expect(App.ajax.send.getCall(0).args[0].name).to.equal('config_groups.update_config_group'); - expect(App.ajax.send.getCall(0).args[0].data).to.eql({ + var args = testHelpers.findAjaxRequest('name', 'config_groups.update_config_group'); + expect(args[0]).to.exists; + expect(args[0].data).to.be.eql({ "id": 1, "configGroup": { "ConfigGroup": { @@ -1362,7 +1356,6 @@ describe('App.AddHostController', function () { beforeEach(function () { sinon.stub(controller, 'clearAllSteps', Em.K); sinon.stub(controller, 'clearStorageData', Em.K); - sinon.stub(App.updater, 'immediateRun', Em.K); sinon.stub(App.router, 'get').returns(mock); sinon.spy(mock, 'updateAll'); sinon.spy(mock, 'getAllHostNames'); @@ -1371,7 +1364,6 @@ describe('App.AddHostController', function () { afterEach(function () { controller.clearAllSteps.restore(); controller.clearStorageData.restore(); - App.updater.immediateRun.restore(); App.router.get.restore(); mock.updateAll.restore(); mock.getAllHostNames.restore();