You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2015/12/18 11:04:22 UTC
[3/3] ambari git commit: AMBARI-14356.
hostWarningPopupBody_view_test.js unit test failing intermittently
(onechiporenko)
AMBARI-14356. hostWarningPopupBody_view_test.js unit test failing intermittently (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1901b395
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1901b395
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1901b395
Branch: refs/heads/trunk
Commit: 1901b395c274a0ad3833b282164e54a7a1e74eb3
Parents: 17f7b71
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Thu Dec 17 16:05:01 2015 +0200
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Fri Dec 18 11:36:17 2015 +0200
----------------------------------------------------------------------
ambari-web/app/assets/test/tests.js | 1 +
ambari-web/app/utils/ember_reopen.js | 10 +
.../global/update_controller_test.js | 4 +-
.../global/user_settings_controller_test.js | 76 +---
ambari-web/test/controllers/installer_test.js | 29 +-
.../nameNode/step2_controller_test.js | 42 +-
.../nameNode/step3_controller_test.js | 4 +
.../progress_popup_controller_test.js | 4 +
.../admin/kerberos/step6_controller_test.js | 14 +-
.../controllers/main/admin/kerberos_test.js | 6 +-
.../admin/stack_and_upgrade_controller_test.js | 391 ++++++++++---------
.../add_alert_definition_controller_test.js | 4 +-
.../alerts/alert_instances_controller_test.js | 10 +-
.../definitions_configs_controller_test.js | 24 +-
.../heatmap_metrics/heatmap_metric_test.js | 2 +-
.../dashboard/config_history_controller_test.js | 46 ++-
.../main/host/add_controller_test.js | 54 ++-
.../test/controllers/main/host/details_test.js | 158 ++++----
.../main/host/host_alerts_controller_test.js | 3 +-
.../main/service/info/summary_test.js | 18 +-
.../test/controllers/main/service/item_test.js | 21 +-
.../manage_config_groups_controller_test.js | 200 +++++-----
.../service/reassign/step2_controller_test.js | 4 +-
.../service/reassign/step3_controller_test.js | 10 +-
.../service/reassign/step4_controller_test.js | 118 ++++--
.../service/reassign/step6_controller_test.js | 2 +-
.../widgets/create/step1_controller_test.js | 16 +-
.../widgets/create/step2_controller_test.js | 43 +-
.../widgets/create/step3_controller_test.js | 53 ++-
.../test/controllers/wizard/step2_test.js | 6 +-
.../test/controllers/wizard/step3_test.js | 76 +---
.../test/controllers/wizard/step6_test.js | 15 +-
.../test/controllers/wizard/step7_test.js | 18 +-
.../test/controllers/wizard/step9_test.js | 10 +-
.../common/table_server_view_mixin_test.js | 8 +-
.../test/mixins/common/widget_mixin_test.js | 201 ++++++----
ambari-web/test/models/host_component_test.js | 55 ++-
ambari-web/test/models/host_test.js | 19 +-
ambari-web/test/router_test.js | 6 +-
ambari-web/test/utils/helper_test.js | 12 +-
ambari-web/test/utils/load_timer_test.js | 4 +-
.../test/views/common/chart/linear_time_test.js | 18 +-
.../common/configs/config_history_flow_test.js | 76 +++-
.../widgets/time_interval_spinner_view_test.js | 2 +-
.../test/views/common/progress_bar_view_test.js | 2 +-
.../test/views/common/quick_link_view_test.js | 279 ++++++-------
.../nameNode/step3_view_test.js | 8 +-
.../nameNode/step4_view_test.js | 2 +-
.../nameNode/step6_view_test.js | 2 +-
.../nameNode/step8_view_test.js | 2 +-
.../highAvailability/progress_view_test.js | 4 +-
.../failed_hosts_modal_view_test.js | 4 +-
.../admin/stack_upgrade/services_view_test.js | 2 +-
.../stack_upgrade/upgrade_group_view_test.js | 19 +-
.../stack_upgrade/upgrade_task_view_test.js | 33 +-
.../stack_upgrade/upgrade_wizard_view_test.js | 65 +--
.../admin/stack_upgrade/version_view_test.js | 67 ++--
ambari-web/test/views/main/admin_test.js | 2 +-
.../select_definitions_popup_body_view_test.js | 48 ++-
.../test/views/main/charts/heatmap_test.js | 4 +-
.../main/dashboard/config_history_view_test.js | 65 +--
.../test/views/main/dashboard/widget_test.js | 18 +-
.../test/views/main/dashboard/widgets_test.js | 54 ++-
.../views/main/host/stack_versions_view_test.js | 6 +-
ambari-web/test/views/wizard/step4_view_test.js | 2 +-
ambari-web/test/views/wizard/step6_view_test.js | 21 +-
66 files changed, 1453 insertions(+), 1149 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 c44eda8..d13767f 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -46,6 +46,7 @@ var files = [
'test/controllers/global/update_controller_test',
'test/controllers/global/configuration_controller_test',
'test/controllers/global/wizard_watcher_controller_test',
+ 'test/controllers/global/user_settings_controller_test',
'test/controllers/main/alert_definitions_controller_test',
'test/controllers/main/alerts/alert_definitions_actions_controller_test',
'test/controllers/main/alerts/definitions_configs_controller_test',
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/app/utils/ember_reopen.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ember_reopen.js b/ambari-web/app/utils/ember_reopen.js
index 29d14c8..0eefb97 100644
--- a/ambari-web/app/utils/ember_reopen.js
+++ b/ambari-web/app/utils/ember_reopen.js
@@ -128,6 +128,16 @@ Ember.sum = function (a, b) {
};
/**
+ * Execute passed callback
+ *
+ * @param {Function} callback
+ * @returns {*}
+ */
+Ember.clb = function (callback) {
+ return callback();
+};
+
+/**
*
*/
Ember.RadioButton = Ember.Checkbox.extend({
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 482e58c..807d99d 100644
--- a/ambari-web/test/controllers/global/update_controller_test.js
+++ b/ambari-web/test/controllers/global/update_controller_test.js
@@ -255,7 +255,7 @@ describe('App.UpdateController', function () {
App.get.restore();
controller.computeParameters.restore();
});
- it("", function () {
+ it("valid params are added", function () {
expect(controller.addParamsToHostsUrl([], [], 'url')).to.equal('mock/clusters/mockurl¶ms¶ms');
});
});
@@ -292,7 +292,7 @@ describe('App.UpdateController', function () {
afterEach(function () {
App.hostsMapper.setMetrics.restore();
});
- it("", function () {
+ it("setMetrics called with valid arguments", function () {
controller.loadHostsMetricSuccessCallback({});
expect(App.hostsMapper.setMetrics.calledWith({})).to.be.true;
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 13a73df..7c49645 100644
--- a/ambari-web/test/controllers/global/user_settings_controller_test.js
+++ b/ambari-web/test/controllers/global/user_settings_controller_test.js
@@ -22,81 +22,21 @@ 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();
+ });
+
describe('#userSettingsKeys', function () {
it('should not be empty', function () {
expect(Object.keys(userSettingsController.get('userSettingsKeys'))).to.have.length.gt(0);
});
});
- describe('#showSettingsPopup', function() {
- var dataToShowRes = {};
-
- beforeEach(function () {
- sinon.stub(App.ModalPopup, 'show', function(dataToShow){
- dataToShowRes = dataToShow;
- });
- sinon.stub(App, 'isAuthorized').returns(true);
- var emulatorClass = function() {};
- emulatorClass.prototype.done = function(func) {
- if (func) {
- func();
- }
- };
- var emulator = new emulatorClass();
- sinon.stub(userSettingsController, 'dataLoading').returns(emulator);
- });
- afterEach(function () {
- App.isAuthorized.restore();
- App.ModalPopup.show.restore();
- userSettingsController.dataLoading.restore();
- });
- it ('Should show settings popup', function() {
- userSettingsController.showSettingsPopup();
- dataToShowRes = JSON.parse(JSON.stringify(dataToShowRes));
- expect(dataToShowRes).to.eql({
- "header": "User Settings",
- "primary": "Save"
- });
- });
- });
-
- describe('#getUserPrefErrorCallback', function() {
- it ('Should set currentPrefObject', function() {
- applicationController.getUserPrefErrorCallback({status: 404}, {}, {});
- expect(applicationController.get('currentPrefObject')).to.be.true;
- });
- });
-
- describe('#getUserPrefSuccessCallback', function() {
- it ('Should set currentPrefObject', function() {
- applicationController.getUserPrefSuccessCallback({status: 200}, {}, {});
- expect(applicationController.get('currentPrefObject')).to.be.eql({status: 200});
- });
- });
-
- describe('#updateUserPrefWithDefaultValues', function () {
-
- beforeEach(function () {
- sinon.stub(userSettingsController, 'postUserPref', Em.K);
- });
-
- afterEach(function () {
- userSettingsController.postUserPref.restore();
- });
-
- it('should update user pref with default values', function () {
- userSettingsController.updateUserPrefWithDefaultValues(null, true);
- expect(userSettingsController.postUserPref.called).to.be.false;
- });
-
- it('should not update user pref with default values', function () {
- userSettingsController.updateUserPrefWithDefaultValues(null, false);
- expect(userSettingsController.postUserPref.called).to.be.true;
- });
-
- });
-
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 1f370d3..06d4ca7 100644
--- a/ambari-web/test/controllers/installer_test.js
+++ b/ambari-web/test/controllers/installer_test.js
@@ -26,6 +26,20 @@ describe('App.InstallerController', function () {
var installerController = App.InstallerController.create();
+ after(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 () {
@@ -80,14 +94,7 @@ describe('App.InstallerController', function () {
});
describe('#checkRepoURL', function() {
- beforeEach(function () {
- sinon.stub(App.ajax, 'send', function(data){
- return null;
- });
- });
- afterEach(function () {
- App.ajax.send.restore();
- });
+
it ('Should reload installed stacks', function() {
var stacks = Em.A([
Em.Object.create({
@@ -113,7 +120,7 @@ describe('App.InstallerController', function () {
})
])
})
- ])
+ ])
})
]);
var wizard = Em.Object.create({
@@ -185,7 +192,7 @@ describe('App.InstallerController', function () {
})
])
})
- ])
+ ])
})
]);
var resolve = false;
@@ -267,7 +274,7 @@ describe('App.InstallerController', function () {
})
])
})
- ])
+ ])
})
]);
var resolve = false;
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step2_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step2_controller_test.js b/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step2_controller_test.js
index 731094f..570f45a 100644
--- a/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step2_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step2_controller_test.js
@@ -18,45 +18,21 @@
var App = require('app');
+function O (fl) {
+ return Em.Object.create({
+ isInstalled: fl
+ })
+}
+
describe('App.HighAvailabilityWizardStep2Controller', function () {
var controller = App.HighAvailabilityWizardStep2Controller.create();
describe('#sortMasterComponents', function () {
it('should sort installed masters first', function() {
- expect(controller.sortMasterComponents([
- Em.Object.create({
- isInstalled: true
- }),
- Em.Object.create({
- isInstalled: false
- }),
- Em.Object.create({
- isInstalled: true
- }),
- Em.Object.create({
- isInstalled: false
- }),
- Em.Object.create({
- isInstalled: true
- })
- ])).to.eql([
- Em.Object.create({
- isInstalled: true
- }),
- Em.Object.create({
- isInstalled: true
- }),
- Em.Object.create({
- isInstalled: true
- }),
- Em.Object.create({
- isInstalled: false
- }),
- Em.Object.create({
- isInstalled: false
- })
- ]);
+ var init = [O(true), O(false), O(true), O(false), O(true)];
+ var sorted = [O(true), O(true), O(true), O(false), O(false)];
+ expect(controller.sortMasterComponents(init)).to.eql(sorted);
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step3_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step3_controller_test.js b/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step3_controller_test.js
index 7fbb4ca..aff4413 100644
--- a/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step3_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/highAvailability/nameNode/step3_controller_test.js
@@ -71,6 +71,10 @@ describe('App.HighAvailabilityWizardStep3Controller', function() {
controller.set('serverConfigData', serverConfigData);
});
+ afterEach(function () {
+ controller.destroy();
+ });
+
describe('#removeConfigs', function() {
var tests = [
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 95512e9..bd8deb3 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
@@ -28,6 +28,10 @@ describe('App.HighAvailabilityProgressPopupController', function () {
controller = App.HighAvailabilityProgressPopupController.create();
});
+ after(function () {
+ controller.destroy();
+ });
+
describe('#startTaskPolling', function () {
beforeEach(function () {
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/admin/kerberos/step6_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/kerberos/step6_controller_test.js b/ambari-web/test/controllers/main/admin/kerberos/step6_controller_test.js
index 053f70e..780f896 100644
--- a/ambari-web/test/controllers/main/admin/kerberos/step6_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/kerberos/step6_controller_test.js
@@ -19,8 +19,15 @@
var App = require('app');
describe('App.KerberosWizardStep6Controller', function() {
+
describe('#checkComponentsRemoval', function() {
+ afterEach(function () {
+ Em.tryInvoke(App.get, 'restore');
+ Em.tryInvoke(App.Service.find, 'restore');
+ Em.tryInvoke(App.HostComponent.find, 'restore');
+ });
+
var tests = [
{ yarnInstalled: true, doesATSSupportKerberos: false, commands: ['stopServices', 'deleteATS'], ATSInstalled: true},
{ yarnInstalled: false, doesATSSupportKerberos: true, commands: ['stopServices'], ATSInstalled: true},
@@ -33,12 +40,9 @@ describe('App.KerberosWizardStep6Controller', function() {
it('YARN installed: {0}, ATS supported: {1} list of commands should be {2}'.format(test.yarnInstalled, test.doesATSSupportKerberos, test.commands.toString()), function () {
var controller = App.KerberosWizardStep6Controller.create({ commands: ['stopServices'] });
sinon.stub(App, 'get').withArgs('doesATSSupportKerberos').returns(test.doesATSSupportKerberos);
- sinon.stub(App.Service, 'find').returns(test.yarnInstalled ? [Em.Object.create({ serviceName: 'YARN'})] : []);
- sinon.stub(App.HostComponent, 'find').returns(test.ATSInstalled ? [Em.Object.create({ componentName: 'APP_TIMELINE_SERVER'})] : []);
+ sinon.stub(App.Service, 'find').returns(test.yarnInstalled ? [Em.Object.create({serviceName: 'YARN'})] : []);
+ sinon.stub(App.HostComponent, 'find').returns(test.ATSInstalled ? [Em.Object.create({componentName: 'APP_TIMELINE_SERVER'})] : []);
controller.checkComponentsRemoval();
- App.get.restore();
- App.Service.find.restore();
- App.HostComponent.find.restore();
expect(controller.get('commands').toArray()).to.eql(test.commands);
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 4b58069..e05dfdb 100644
--- a/ambari-web/test/controllers/main/admin/kerberos_test.js
+++ b/ambari-web/test/controllers/main/admin/kerberos_test.js
@@ -39,7 +39,7 @@ describe('App.MainAdminKerberosController', function() {
Em.Object.create({ name: 'prop2', isEditable: true, serviceName: 'KERBEROS'}),
Em.Object.create({ name: 'prop3', isEditable: true, serviceName: 'HDFS'}),
Em.Object.create({ name: 'prop4', isEditable: true, serviceName: 'Cluster'}),
- Em.Object.create({ name: 'prop5', isEditable: true, serviceName: 'SERVICE1'}),
+ Em.Object.create({ name: 'prop5', isEditable: true, serviceName: 'SERVICE1'})
]);
});
@@ -201,6 +201,7 @@ describe('App.MainAdminKerberosController', function() {
App.ajax.send.restore();
mock.callback.restore();
controller.getSecurityType.restore();
+ Em.tryInvoke(App.get, 'restore');
});
[
@@ -231,7 +232,6 @@ describe('App.MainAdminKerberosController', function() {
controller.set('securityEnabled', test.securityEnabled);
controller.set('kdc_type', test.kdc_type);
controller.getKDCSessionState(mock.callback);
- App.get.restore();
if (test.result) {
expect(mock.callback.calledOnce).to.be.false;
expect(App.ajax.send.calledOnce).to.be.true;
@@ -255,6 +255,7 @@ describe('App.MainAdminKerberosController', function() {
afterEach(function () {
App.ajax.send.restore();
mock.callback.restore();
+ Em.tryInvoke(App.get, 'restore');
});
[
@@ -285,7 +286,6 @@ describe('App.MainAdminKerberosController', function() {
controller.set('securityEnabled', test.securityEnabled);
controller.set('kdc_type', test.kdc_type);
controller.getSecurityType(mock.callback);
- App.get.restore();
if (test.result) {
expect(mock.callback.calledOnce).to.be.false;
expect(App.ajax.send.calledOnce).to.be.true;
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 630d0b2..392f899 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
@@ -28,16 +28,25 @@ describe('App.MainAdminStackAndUpgradeController', function() {
setDBProperty: Em.K
});
+ before(function () {
+ sinon.stub(App.router, 'get').withArgs('clusterController.isLoaded').returns(false);
+ });
+
+ after(function () {
+ App.router.get.restore();
+ controller.destroy();
+ });
+
describe("#realRepoUrl", function() {
before(function () {
this.mock = sinon.stub(App, 'get');
+ this.mock.withArgs('apiPrefix').returns('apiPrefix')
+ .withArgs('stackVersionURL').returns('stackVersionURL');
});
after(function () {
this.mock.restore();
});
- it("", function() {
- this.mock.withArgs('apiPrefix').returns('apiPrefix');
- this.mock.withArgs('stackVersionURL').returns('stackVersionURL');
+ it("should be valid", function() {
controller.propertyDidChange('realRepoUrl');
expect(controller.get('realRepoUrl')).to.equal('apiPrefixstackVersionURL/compatible_repository_versions?fields=*,operating_systems/*,operating_systems/repositories/*');
});
@@ -46,13 +55,13 @@ describe('App.MainAdminStackAndUpgradeController', function() {
describe("#realStackUrl", function() {
before(function () {
this.mock = sinon.stub(App, 'get');
+ this.mock.withArgs('apiPrefix').returns('apiPrefix')
+ .withArgs('clusterName').returns('clusterName');
});
after(function () {
this.mock.restore();
});
- it("", function() {
- this.mock.withArgs('apiPrefix').returns('apiPrefix');
- this.mock.withArgs('clusterName').returns('clusterName');
+ it("should be valid", function() {
controller.propertyDidChange('realStackUrl');
expect(controller.get('realStackUrl')).to.equal('apiPrefix/clusters/clusterName/stack_versions?fields=*,repository_versions/*,repository_versions/operating_systems/repositories/*');
});
@@ -61,13 +70,13 @@ describe('App.MainAdminStackAndUpgradeController', function() {
describe("#realUpdateUrl", function() {
before(function () {
this.mock = sinon.stub(App, 'get');
+ this.mock.withArgs('apiPrefix').returns('apiPrefix')
+ .withArgs('clusterName').returns('clusterName');
});
after(function () {
this.mock.restore();
});
- it("", function() {
- this.mock.withArgs('apiPrefix').returns('apiPrefix');
- this.mock.withArgs('clusterName').returns('clusterName');
+ it("realUpdateUrl is valid", function() {
controller.propertyDidChange('realUpdateUrl');
expect(controller.get('realUpdateUrl')).to.equal('apiPrefix/clusters/clusterName/stack_versions?fields=ClusterStackVersions/*');
});
@@ -87,15 +96,15 @@ describe('App.MainAdminStackAndUpgradeController', function() {
});
describe("#load()", function() {
- before(function(){
+ beforeEach(function(){
sinon.stub(controller, 'loadUpgradeData').returns({
- done: function(callback) {callback();}
+ done: Em.clb
});
sinon.stub(controller, 'loadStackVersionsToModel').returns({
- done: function(callback) {callback();}
+ done: Em.clb
});
sinon.stub(controller, 'loadRepoVersionsToModel').returns({
- done: function(callback) {callback();}
+ done: Em.clb
});
sinon.stub(App.StackVersion, 'find').returns([Em.Object.create({
state: 'CURRENT',
@@ -104,18 +113,24 @@ describe('App.MainAdminStackAndUpgradeController', function() {
displayName: 'HDP-2.2'
}
})]);
+ controller.load();
});
- after(function(){
+ afterEach(function(){
controller.loadUpgradeData.restore();
controller.loadStackVersionsToModel.restore();
controller.loadRepoVersionsToModel.restore();
App.StackVersion.find.restore();
});
- it("", function() {
- controller.load();
+ it("loadUpgradeData called with valid arguments", function() {
expect(controller.loadUpgradeData.calledWith(true)).to.be.true;
+ });
+ it('loadStackVersionsToModel called with valid arguments', function () {
expect(controller.loadStackVersionsToModel.calledWith(true)).to.be.true;
+ });
+ it('loadRepoVersionsToModel called once', function () {
expect(controller.loadRepoVersionsToModel.calledOnce).to.be.true;
+ });
+ it('currentVersion is corrent', function () {
expect(controller.get('currentVersion')).to.eql({
"repository_version": "2.2",
"repository_name": "HDP-2.2"
@@ -524,11 +539,12 @@ describe('App.MainAdminStackAndUpgradeController', function() {
value: '2.2',
label: 'HDP-2.2'
});
- expect(App.ajax.send.getCall(0).args[0].data).to.eql({"value": '2.2', "label": 'HDP-2.2'});
- expect(App.ajax.send.getCall(0).args[0].name).to.eql('admin.upgrade.start');
- expect(App.ajax.send.getCall(0).args[0].sender).to.eql(controller);
- expect(App.ajax.send.getCall(0).args[0].success).to.eql('upgradeSuccessCallback');
- expect(App.ajax.send.getCall(0).args[0].callback).to.be.called;
+ var callArgs = App.ajax.send.getCall(0).args[0];
+ expect(callArgs.data).to.eql({"value": '2.2', "label": 'HDP-2.2'});
+ expect(callArgs.name).to.eql('admin.upgrade.start');
+ expect(callArgs.sender).to.eql(controller);
+ expect(callArgs.success).to.eql('upgradeSuccessCallback');
+ expect(callArgs.callback).to.be.called;
expect(controller.setDBProperty.calledWith('currentVersion', {
repository_version: '2.2'
})).to.be.true;
@@ -580,105 +596,112 @@ describe('App.MainAdminStackAndUpgradeController', function() {
controller.updateUpgradeData({});
expect(controller.initUpgradeData.calledWith({})).to.be.true;
});
- it("update loaded data", function() {
- var oldData = Em.Object.create({
- upgradeGroups: [
- Em.Object.create({
- group_id: 1,
- upgradeItems: [
- Em.Object.create({
- stage_id: 1
- })
- ]
- }),
- Em.Object.create({
- group_id: 2,
- upgradeItems: [
- Em.Object.create({
- stage_id: 2
- }),
- Em.Object.create({
- stage_id: 3
- })
- ]
- })
- ]
- });
- var newData = {
- Upgrade: {
- request_id: 1
- },
- upgrade_groups: [
- {
- UpgradeGroup: {
+
+ describe('upgradeData exists', function () {
+
+ var groups;
+
+ beforeEach(function() {
+ var oldData = Em.Object.create({
+ upgradeGroups: [
+ Em.Object.create({
group_id: 1,
- status: 'COMPLETED',
- progress_percent: 100,
- completed_task_count: 3
- },
- upgrade_items: [
- {
- UpgradeItem: {
- stage_id: 1,
- status: 'COMPLETED',
- progress_percent: 100
- }
- }
- ]
- },
- {
- UpgradeGroup: {
+ upgradeItems: [
+ Em.Object.create({
+ stage_id: 1
+ })
+ ]
+ }),
+ Em.Object.create({
group_id: 2,
- status: 'ABORTED',
- progress_percent: 50,
- completed_task_count: 1
- },
- upgrade_items: [
- {
- UpgradeItem: {
- stage_id: 2,
- status: 'ABORTED',
- progress_percent: 99
+ upgradeItems: [
+ Em.Object.create({
+ stage_id: 2
+ }),
+ Em.Object.create({
+ stage_id: 3
+ })
+ ]
+ })
+ ]
+ });
+ var newData = {
+ Upgrade: {
+ request_id: 1
+ },
+ upgrade_groups: [
+ {
+ UpgradeGroup: {
+ group_id: 1,
+ status: 'COMPLETED',
+ progress_percent: 100,
+ completed_task_count: 3
+ },
+ upgrade_items: [
+ {
+ UpgradeItem: {
+ stage_id: 1,
+ status: 'COMPLETED',
+ progress_percent: 100
+ }
}
+ ]
+ },
+ {
+ UpgradeGroup: {
+ group_id: 2,
+ status: 'ABORTED',
+ progress_percent: 50,
+ completed_task_count: 1
},
- {
- UpgradeItem: {
- stage_id: 3,
- status: 'PENDING',
- progress_percent: 0
+ upgrade_items: [
+ {
+ UpgradeItem: {
+ stage_id: 2,
+ status: 'ABORTED',
+ progress_percent: 99
+ }
+ },
+ {
+ UpgradeItem: {
+ stage_id: 3,
+ status: 'PENDING',
+ progress_percent: 0
+ }
}
- }
- ]
- }
- ]
- };
- controller.set('upgradeData', oldData);
- controller.updateUpgradeData(newData);
- expect(controller.get('upgradeData.upgradeGroups')[0].get('status')).to.equal('COMPLETED');
- expect(controller.get('upgradeData.upgradeGroups')[0].get('progress_percent')).to.equal(100);
- expect(controller.get('upgradeData.upgradeGroups')[0].get('completed_task_count')).to.equal(3);
- expect(controller.get('upgradeData.upgradeGroups')[0].get('upgradeItems')[0].get('status')).to.equal('COMPLETED');
- expect(controller.get('upgradeData.upgradeGroups')[0].get('upgradeItems')[0].get('progress_percent')).to.equal(100);
- expect(controller.get('upgradeData.upgradeGroups')[0].get('hasExpandableItems')).to.be.true;
- expect(controller.get('upgradeData.upgradeGroups')[1].get('status')).to.equal('ABORTED');
- expect(controller.get('upgradeData.upgradeGroups')[1].get('progress_percent')).to.equal(50);
- expect(controller.get('upgradeData.upgradeGroups')[1].get('completed_task_count')).to.equal(1);
- expect(controller.get('upgradeData.upgradeGroups')[1].get('upgradeItems')[0].get('status')).to.equal('ABORTED');
- expect(controller.get('upgradeData.upgradeGroups')[1].get('upgradeItems')[1].get('status')).to.equal('PENDING');
- expect(controller.get('upgradeData.upgradeGroups')[1].get('upgradeItems')[0].get('progress_percent')).to.equal(99);
- expect(controller.get('upgradeData.upgradeGroups')[1].get('upgradeItems')[1].get('progress_percent')).to.equal(0);
- expect(controller.get('upgradeData.upgradeGroups')[1].get('hasExpandableItems')).to.be.false;
+ ]
+ }
+ ]
+ };
+ controller.set('upgradeData', oldData);
+ controller.updateUpgradeData(newData);
+ groups = controller.get('upgradeData.upgradeGroups');
+ });
+
+ it("checking 1st group", function() {
+ expect(groups[0].get('status')).to.equal('COMPLETED');
+ expect(groups[0].get('progress_percent')).to.equal(100);
+ expect(groups[0].get('completed_task_count')).to.equal(3);
+ expect(groups[0].get('upgradeItems')[0].get('status')).to.equal('COMPLETED');
+ expect(groups[0].get('upgradeItems')[0].get('progress_percent')).to.equal(100);
+ expect(groups[0].get('hasExpandableItems')).to.be.true;
+ });
+
+ it('checking 2nd group', function () {
+ expect(groups[1].get('status')).to.equal('ABORTED');
+ expect(groups[1].get('progress_percent')).to.equal(50);
+ expect(groups[1].get('completed_task_count')).to.equal(1);
+ expect(groups[1].get('upgradeItems').mapProperty('status')).to.eql(['ABORTED', 'PENDING']);
+ expect(groups[1].get('upgradeItems').mapProperty('progress_percent')).to.eql([99, 0]);
+ expect(groups[1].get('hasExpandableItems')).to.be.false;
+ });
+
});
});
describe("#initUpgradeData()", function() {
beforeEach(function () {
sinon.stub(controller, 'setDBProperty');
- });
- afterEach(function () {
- controller.setDBProperty.restore();
- });
- it("", function() {
var newData = {
Upgrade: {
request_id: 1,
@@ -731,17 +754,24 @@ describe('App.MainAdminStackAndUpgradeController', function() {
]
};
controller.initUpgradeData(newData);
+ });
+ afterEach(function () {
+ controller.setDBProperty.restore();
+ });
+ it("setDBProperty called with valid arguments", function() {
expect(controller.setDBProperty.calledWith('downgradeAllowed', false)).to.be.true;
+ });
+ it('downgradeAllowed is false', function () {
expect(controller.get('downgradeAllowed')).to.be.false;
+ });
+ it('upgradeData.Upgrade.request_id is 1', function () {
expect(controller.get('upgradeData.Upgrade.request_id')).to.equal(1);
- expect(controller.get('upgradeData.upgradeGroups')[0].get('group_id')).to.equal(3);
- expect(controller.get('upgradeData.upgradeGroups')[1].get('group_id')).to.equal(2);
- expect(controller.get('upgradeData.upgradeGroups')[2].get('group_id')).to.equal(1);
- expect(controller.get('upgradeData.upgradeGroups')[2].get('upgradeItems')[0].get('stage_id')).to.equal(2);
- expect(controller.get('upgradeData.upgradeGroups')[2].get('upgradeItems')[1].get('stage_id')).to.equal(1);
- expect(controller.get('upgradeData.upgradeGroups')[0].get('hasExpandableItems')).to.be.false;
- expect(controller.get('upgradeData.upgradeGroups')[1].get('hasExpandableItems')).to.be.false;
- expect(controller.get('upgradeData.upgradeGroups')[2].get('hasExpandableItems')).to.be.true;
+ });
+ it('upgradeData.upgradeGroups contain valid data', function () {
+ var groups = controller.get('upgradeData.upgradeGroups');
+ expect(groups.mapProperty('group_id')).to.eql([3,2,1]);
+ expect(groups[2].get('upgradeItems').mapProperty('stage_id')).to.eql([2,1]);
+ expect(groups.mapProperty('hasExpandableItems')).to.eql([false, false, true]);
});
});
@@ -896,10 +926,11 @@ describe('App.MainAdminStackAndUpgradeController', function() {
isDowngrade: true,
upgradeType: "NON_ROLLING"
});
- expect(App.ajax.send.getCall(0).args[0].name).to.eql('admin.downgrade.start');
- expect(App.ajax.send.getCall(0).args[0].sender).to.eql(controller);
- expect(App.ajax.send.getCall(0).args[0].success).to.eql('upgradeSuccessCallback');
- expect(App.ajax.send.getCall(0).args[0].callback).to.be.called;
+ var callArgs = App.ajax.send.getCall(0).args[0];
+ expect(callArgs.name).to.eql('admin.downgrade.start');
+ expect(callArgs.sender).to.eql(controller);
+ expect(callArgs.success).to.eql('upgradeSuccessCallback');
+ expect(callArgs.callback).to.be.called;
});
});
@@ -943,21 +974,26 @@ describe('App.MainAdminStackAndUpgradeController', function() {
defaultStatus: 'INIT',
stackVersion: {}
});
- before(function () {
+ beforeEach(function () {
sinon.spy(mock, 'set');
sinon.stub(App.db, 'set', Em.K);
sinon.stub(App.clusterStatus, 'setClusterStatus', Em.K);
sinon.stub(App.RepositoryVersion, 'find').returns(mock);
+ controller.installRepoVersionSuccess({Requests: {id: 1}}, {}, {id: 1});
});
- after(function () {
+ afterEach(function () {
App.db.set.restore();
App.clusterStatus.setClusterStatus.restore();
App.RepositoryVersion.find.restore();
+ mock.set.restore();
});
- it("", function() {
- controller.installRepoVersionSuccess({Requests: {id: 1}}, {}, {id: 1});
+ it("data sdtored to the local db", function() {
expect(App.db.set.calledWith('repoVersionInstall', 'id', [1])).to.be.true;
+ });
+ it('clusterStatus is updated', function () {
expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
+ });
+ it('App.RepositoryVersion models have valid states', function () {
expect(App.RepositoryVersion.find.calledWith(1)).to.be.true;
expect(App.RepositoryVersion.find(1).get('defaultStatus')).to.equal('INSTALLING');
expect(App.RepositoryVersion.find(1).get('stackVersion.state')).to.equal('INSTALLING');
@@ -968,26 +1004,25 @@ describe('App.MainAdminStackAndUpgradeController', function() {
before(function () {
sinon.stub(App.ajax, 'send', function () {
return {
- done: function (callback) {
- callback();
- }
+ done: Em.clb
}
});
});
after(function () {
App.ajax.send.restore();
});
- it("", function () {
+ it("valid request is sent", function () {
var item = Em.Object.create({
request_id: 1,
stage_id: 1,
group_id: 1
});
controller.setUpgradeItemStatus(item, 'PENDING');
- expect(App.ajax.send.getCall(0).args[0].data).to.eql({upgradeId: 1, itemId: 1, groupId: 1, status: 'PENDING'});
- expect(App.ajax.send.getCall(0).args[0].name).to.eql('admin.upgrade.upgradeItem.setState');
- expect(App.ajax.send.getCall(0).args[0].sender).to.eql(controller);
- expect(App.ajax.send.getCall(0).args[0].callback).to.be.called;
+ var callArgs = App.ajax.send.getCall(0).args[0];
+ expect(callArgs.data).to.eql({upgradeId: 1, itemId: 1, groupId: 1, status: 'PENDING'});
+ expect(callArgs.name).to.eql('admin.upgrade.upgradeItem.setState');
+ expect(callArgs.sender).to.eql(controller);
+ expect(callArgs.callback).to.be.called;
expect(item.get('status')).to.equal('PENDING');
});
});
@@ -998,7 +1033,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
operatingSystems: [
Em.Object.create({
osType: "redhat6",
- isDisabled: Ember.computed.not('isSelected'),
+ isDisabled: Em.computed.not('isSelected'),
repositories: [Em.Object.create({
"baseUrl": "111121",
"repoId": "HDP-2.2",
@@ -1124,24 +1159,6 @@ describe('App.MainAdminStackAndUpgradeController', function() {
});
});
- describe("#showProgressPopup()", function () {
- var mock = {
- initPopup: Em.K
- };
- before(function () {
- sinon.stub(App.router, 'get').withArgs('highAvailabilityProgressPopupController').returns(mock);
- sinon.spy(mock, 'initPopup');
- });
- after(function () {
- App.router.get.restore();
- mock.initPopup.restore();
- });
- it("", function () {
- controller.showProgressPopup(Em.Object.create());
- expect(mock.initPopup.calledOnce).to.be.true;
- });
- });
-
describe("#getUrl()", function() {
beforeEach(function(){
controller.reopen({
@@ -1168,7 +1185,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
after(function () {
App.HttpClient.get.restore();
});
- it("", function () {
+ it("HttpClient did get-request", function () {
controller.loadStackVersionsToModel();
expect(App.HttpClient.get.calledOnce).to.be.true;
});
@@ -1181,7 +1198,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
after(function () {
App.HttpClient.get.restore();
});
- it("", function () {
+ it("HttpClient did get-request", function () {
controller.loadRepoVersionsToModel();
expect(App.HttpClient.get.calledOnce).to.be.true;
});
@@ -1333,23 +1350,27 @@ describe('App.MainAdminStackAndUpgradeController', function() {
describe("#suspendUpgrade()", function() {
beforeEach(function () {
sinon.stub(controller, 'abortUpgrade').returns({
- done: function (callback) {
- callback();
- }
+ done: Em.clb
});
sinon.stub(controller, 'setDBProperty', Em.K);
sinon.stub(App.clusterStatus, 'setClusterStatus', Em.K);
+ controller.suspendUpgrade();
});
afterEach(function () {
controller.abortUpgrade.restore();
controller.setDBProperty.restore();
App.clusterStatus.setClusterStatus.restore();
});
- it("", function() {
- controller.suspendUpgrade();
+ it("upgrade aborted", function() {
expect(controller.abortUpgrade.calledOnce).to.be.true;
+ });
+ it('App.upgradeState is ABORTED', function () {
expect(App.get('upgradeState')).to.equal('ABORTED');
+ });
+ it('new upgradeState is saved to the localDB', function () {
expect(controller.setDBProperty.calledWith('upgradeState', 'ABORTED')).to.be.true;
+ });
+ it('clusterStatus is updated', function () {
expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
});
});
@@ -1357,23 +1378,27 @@ describe('App.MainAdminStackAndUpgradeController', function() {
describe("#resumeUpgrade()", function() {
beforeEach(function () {
sinon.stub(controller, 'retryUpgrade').returns({
- done: function (callback) {
- callback();
- }
+ done: Em.clb
});
sinon.stub(controller, 'setDBProperty', Em.K);
sinon.stub(App.clusterStatus, 'setClusterStatus', Em.K);
+ controller.resumeUpgrade();
});
afterEach(function () {
controller.retryUpgrade.restore();
controller.setDBProperty.restore();
App.clusterStatus.setClusterStatus.restore();
});
- it("", function() {
- controller.resumeUpgrade();
+ it("Upgrade is retrying", function() {
expect(controller.retryUpgrade.calledOnce).to.be.true;
+ });
+ it('App.upgradeState is PENDING', function () {
expect(App.get('upgradeState')).to.equal('PENDING');
+ });
+ it('new upgradeState is saved to the localDB', function () {
expect(controller.setDBProperty.calledWith('upgradeState', 'PENDING')).to.be.true;
+ });
+ it('clusterStatus is updated', function () {
expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
});
});
@@ -1406,6 +1431,20 @@ describe('App.MainAdminStackAndUpgradeController', function() {
});
describe("#restoreLastUpgrade()", function () {
+
+ var data = {
+ Upgrade: {
+ request_id: 1,
+ direction: 'UPGRADE',
+ request_status: 'PENDING',
+ upgrade_type: 'ROLLING',
+ downgrade_allowed: true,
+ skip_failures: true,
+ skip_service_check_failures: true,
+ to_version: '1'
+ }
+ };
+
beforeEach(function () {
sinon.stub(App.RepositoryVersion, 'find').returns([Em.Object.create({
repositoryVersion: '1',
@@ -1422,6 +1461,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
sinon.stub(controller, 'setDBProperty');
sinon.stub(controller, 'initDBProperties');
sinon.stub(controller, 'loadUpgradeData');
+ controller.restoreLastUpgrade(data);
});
afterEach(function () {
App.RepositoryVersion.find.restore();
@@ -1431,20 +1471,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
controller.initDBProperties.restore();
controller.loadUpgradeData.restore();
});
- it("", function () {
- var data = {
- Upgrade: {
- request_id: 1,
- direction: 'UPGRADE',
- request_status: 'PENDING',
- upgrade_type: 'ROLLING',
- downgrade_allowed: true,
- skip_failures: true,
- skip_service_check_failures: true,
- to_version: '1'
- }
- };
- controller.restoreLastUpgrade(data);
+ it('proper data is saved to the localDB', function () {
expect(controller.setDBProperties.getCall(0).args[0]).to.eql({
upgradeId: 1,
isDowngrade: false,
@@ -1457,9 +1484,17 @@ describe('App.MainAdminStackAndUpgradeController', function() {
skipSCFailures: true
})
});
+ });
+ it('models are saved', function () {
expect(controller.loadRepoVersionsToModel.calledOnce).to.be.true;
+ });
+ it('correct upgradeVersion is saved to the DB', function () {
expect(controller.setDBProperty.calledWith('upgradeVersion', 'HDP-1')).to.be.true;
+ });
+ it('initDBProperties is called', function () {
expect(controller.initDBProperties.calledOnce).to.be.true;
+ });
+ it('loadUpgradeData called with valid arguments', function () {
expect(controller.loadUpgradeData.calledWith(true)).to.be.true;
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 2e0208e..05ab913 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
@@ -35,7 +35,7 @@ describe('App.AddAlertDefinitionController', function () {
App.ajax.send.restore();
});
- it("", function () {
+ it("valid request is sent", function () {
controller.createNewAlertDefinition('data');
expect(App.ajax.send.getCall(0).args[0]).to.eql({
name: 'alerts.create_alert_definition',
@@ -55,7 +55,7 @@ describe('App.AddAlertDefinitionController', function () {
controller.clear.restore();
});
- it("", function () {
+ it("clear is called", function () {
controller.finish();
expect(controller.clear.calledOnce).to.be.true;
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 8958342..051202d 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
@@ -41,16 +41,18 @@ describe('App.MainAlertInstancesController', function () {
it('should load by Host name', function () {
controller.loadAlertInstancesByHost('host');
- expect(App.ajax.send.args[0][0].name).to.equal('alerts.instances.by_host');
- expect(App.ajax.send.args[0][0].data.hostName).to.equal('host');
+ var callArgs = App.ajax.send.args[0][0];
+ expect(callArgs.name).to.equal('alerts.instances.by_host');
+ expect(callArgs.data.hostName).to.equal('host');
});
it('should load by AlertDefinition id', function () {
controller.loadAlertInstancesByAlertDefinition('1');
- expect(App.ajax.send.args[0][0].name).to.equal('alerts.instances.by_definition');
- expect(App.ajax.send.args[0][0].data.definitionId).to.equal('1');
+ var callArgs = App.ajax.send.args[0][0];
+ expect(callArgs.name).to.equal('alerts.instances.by_definition');
+ expect(callArgs.data.definitionId).to.equal('1');
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 097fc00..530c6ad 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
@@ -28,6 +28,10 @@ function getController() {
});
}
+function getEmptyArray() {
+ return [];
+}
+
describe('App.MainAlertDefinitionConfigsController', function () {
beforeEach(function () {
@@ -40,21 +44,11 @@ describe('App.MainAlertDefinitionConfigsController', function () {
beforeEach(function () {
controller.set('content', Em.Object.create({}));
- sinon.stub(controller, 'renderPortConfigs', function () {
- return [];
- });
- sinon.stub(controller, 'renderMetricConfigs', function () {
- return [];
- });
- sinon.stub(controller, 'renderWebConfigs', function () {
- return [];
- });
- sinon.stub(controller, 'renderScriptConfigs', function () {
- return [];
- });
- sinon.stub(controller, 'renderAggregateConfigs', function () {
- return [];
- });
+ sinon.stub(controller, 'renderPortConfigs', getEmptyArray);
+ sinon.stub(controller, 'renderMetricConfigs', getEmptyArray);
+ sinon.stub(controller, 'renderWebConfigs', getEmptyArray);
+ sinon.stub(controller, 'renderScriptConfigs', getEmptyArray);
+ sinon.stub(controller, 'renderAggregateConfigs', getEmptyArray);
});
afterEach(function () {
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/charts/heatmap_metrics/heatmap_metric_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/charts/heatmap_metrics/heatmap_metric_test.js b/ambari-web/test/controllers/main/charts/heatmap_metrics/heatmap_metric_test.js
index b057a80..0ab3ea3 100644
--- a/ambari-web/test/controllers/main/charts/heatmap_metrics/heatmap_metric_test.js
+++ b/ambari-web/test/controllers/main/charts/heatmap_metrics/heatmap_metric_test.js
@@ -148,7 +148,7 @@ describe('MainChartHeatmapMetric', function () {
},
result: 'background-image:repeating-linear-gradient(-45deg, #FF1E10, #FF1E10 3px, #ff6c00 3px, #ff6c00 6px)'
}
- ]
+ ];
testCases.forEach(function(test){
it(test.title, function () {
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 a1bc7af..24497b6 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
@@ -36,50 +36,70 @@ describe('MainConfigHistoryController', function () {
});
});
describe('#load()', function () {
- it('', function () {
+
+ beforeEach(function () {
sinon.stub(controller, 'updateTotalCounter', Em.K);
sinon.stub(controller, 'loadConfigVersionsToModel').returns({done: Em.K});
-
controller.load();
- expect(controller.updateTotalCounter.calledOnce).to.be.true;
+ });
+ afterEach(function () {
controller.updateTotalCounter.restore();
controller.loadConfigVersionsToModel.restore();
});
+
+ it('updateTotalCounter is called once', function () {
+ expect(controller.updateTotalCounter.calledOnce).to.be.true;
+ });
});
describe('#loadConfigVersionsToModel()', function () {
- it('', function () {
+
+ beforeEach(function () {
sinon.stub(App.HttpClient, 'get', Em.K);
sinon.stub(controller, 'getUrl', Em.K);
sinon.stub(controller, 'getQueryParameters', function(){
return [1];
});
-
controller.loadConfigVersionsToModel();
- expect(App.HttpClient.get.calledOnce).to.be.true;
- expect(controller.getQueryParameters.calledOnce).to.be.true;
- expect(controller.getUrl.calledWith([1])).to.be.true;
-
+ });
+ afterEach(function () {
controller.getUrl.restore();
controller.getQueryParameters.restore();
App.HttpClient.get.restore();
});
+
+ it('HttpClient.get is called once', function () {
+ expect(App.HttpClient.get.calledOnce).to.be.true;
+ });
+
+ it('getQueryParameters is called once', function () {
+ expect(controller.getQueryParameters.calledOnce).to.be.true;
+ });
+
+ it('getUrl is called with correct data', function () {
+ expect(controller.getUrl.calledWith([1])).to.be.true;
+ });
});
describe('#updateTotalCounter()', function () {
- it('', function () {
- sinon.stub(App.ajax, 'send', Em.K);
+ beforeEach(function () {
+ sinon.stub(App.ajax, 'send', Em.K);
controller.updateTotalCounter();
- expect(App.ajax.send.calledOnce).to.be.true;
+ });
+ afterEach(function () {
App.ajax.send.restore();
});
+
+ it('ajax-request is sent', function () {
+ expect(App.ajax.send.calledOnce).to.be.true;
+ });
});
describe('#updateTotalCounterSuccess()', function () {
- it('', function () {
+ it('totalCount is updated', function () {
controller.updateTotalCounterSuccess({itemTotal: 1});
expect(controller.get('totalCount')).to.equal(1);
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/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 5c5bd32..ea9d032 100644
--- a/ambari-web/test/controllers/main/host/add_controller_test.js
+++ b/ambari-web/test/controllers/main/host/add_controller_test.js
@@ -403,7 +403,7 @@ describe('App.AddHostController', function () {
after(function () {
App.router.getClusterName.restore();
});
- it("", function () {
+ it("cluster data is valid", function () {
controller.set('clusterStatusTemplate', {'prop': 'clusterStatusTemplate'});
expect(controller.getCluster()).to.be.eql({
prop: 'clusterStatusTemplate',
@@ -601,24 +601,28 @@ describe('App.AddHostController', function () {
});
describe("#saveClients()", function () {
- before(function () {
+ beforeEach(function () {
sinon.stub(App.StackServiceComponent, 'find').returns('StackServiceComponent');
sinon.stub(controller, 'getClientsToInstall').returns(['client']);
sinon.stub(controller, 'setDBProperty', Em.K);
+ controller.set('content.services', [Em.Object.create({'isSelected': true, 'isInstallable': true})]);
+ controller.saveClients();
});
- after(function () {
+ afterEach(function () {
controller.setDBProperty.restore();
App.StackServiceComponent.find.restore();
controller.getClientsToInstall.restore();
});
- it("", function () {
- controller.set('content.services', [Em.Object.create({'isSelected': true, 'isInstallable': true})]);
- controller.saveClients();
+ it("getClientsToInstall called with valid arguments", function () {
expect(controller.getClientsToInstall.calledWith(
[Em.Object.create({'isSelected': true, 'isInstallable': true})],
'StackServiceComponent'
)).to.be.true;
+ });
+ it('setDBProperty called with valid arguments', function () {
expect(controller.setDBProperty.calledWith('clientInfo', ['client'])).to.be.true;
+ });
+ it('content.clients are valid', function () {
expect(controller.get('content.clients')).to.be.eql(['client']);
});
});
@@ -752,7 +756,7 @@ describe('App.AddHostController', function () {
after(function () {
controller.getDBProperty.restore();
});
- it("", function () {
+ it("content.configGroups are valid", function () {
controller.getServiceConfigGroups();
expect(controller.get('content.configGroups')).to.eql(['serviceConfigGroup']);
});
@@ -777,23 +781,29 @@ describe('App.AddHostController', function () {
});
describe("#loadServiceConfigGroups()", function () {
- before(function () {
+ beforeEach(function () {
sinon.stub(controller, 'loadServiceConfigGroupsBySlaves', Em.K);
sinon.stub(controller, 'loadServiceConfigGroupsByClients', Em.K);
sinon.stub(controller, 'sortServiceConfigGroups', Em.K);
+ controller.loadServiceConfigGroups();
});
- after(function () {
+ afterEach(function () {
controller.loadServiceConfigGroupsBySlaves.restore();
controller.loadServiceConfigGroupsByClients.restore();
controller.sortServiceConfigGroups.restore();
});
- it("", function () {
- controller.loadServiceConfigGroups();
+ it("loadServiceConfigGroupsByClients called with []", function () {
expect(controller.loadServiceConfigGroupsByClients.calledWith([])).to.be.true;
+ });
+ it('loadServiceConfigGroupsBySlaves called with []', function () {
expect(controller.loadServiceConfigGroupsBySlaves.calledWith([])).to.be.true;
+ });
+ it('sortServiceConfigGroups called with []', function () {
expect(controller.sortServiceConfigGroups.calledWith([])).to.be.true;
- expect(controller.get('content.configGroups')).to.eql([]);
});
+ it('content.configGroups are empty', function () {
+ expect(controller.get('content.configGroups')).to.eql([]);
+ })
});
describe("#sortServiceConfigGroups", function () {
@@ -1260,15 +1270,19 @@ describe('App.AddHostController', function () {
beforeEach(function () {
sinon.stub(controller, 'clearInstallOptions', Em.K);
sinon.stub(controller, 'getCluster').returns({});
+ controller.clearAllSteps();
});
afterEach(function () {
controller.clearInstallOptions.restore();
controller.getCluster.restore();
});
- it("", function () {
- controller.clearAllSteps();
+ it("getCluster called once", function () {
expect(controller.getCluster.calledOnce).to.be.true;
+ });
+ it('clearInstallOptions called once', function () {
expect(controller.clearInstallOptions.calledOnce).to.be.true;
+ });
+ it('content.cluster is empty object', function () {
expect(controller.get('content.cluster')).to.eql({});
});
});
@@ -1298,6 +1312,7 @@ describe('App.AddHostController', function () {
sinon.stub(App.router, 'get').returns(mock);
sinon.spy(mock, 'updateAll');
sinon.spy(mock, 'getAllHostNames');
+ controller.finish();
});
afterEach(function () {
controller.clearAllSteps.restore();
@@ -1307,12 +1322,19 @@ describe('App.AddHostController', function () {
mock.updateAll.restore();
mock.getAllHostNames.restore();
});
- it("", function () {
- controller.finish();
+ it("clearAllSteps called once", function () {
expect(controller.clearAllSteps.calledOnce).to.be.true;
+ });
+ it('clearStorageData called once', function () {
expect(controller.clearStorageData.calledOnce).to.be.true;
+ });
+ it('updateAll called once', function () {
expect(mock.updateAll.calledOnce).to.be.true;
+ });
+ it('App.updater.immediateRun called with valid arguments', function () {
expect(App.updater.immediateRun.calledWith('updateHost')).to.be.true;
+ });
+ it('getAllHostNames called once', function () {
expect(mock.getAllHostNames.calledOnce).to.be.true;
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/host/details_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/host/details_test.js b/ambari-web/test/controllers/main/host/details_test.js
index 0806823..9c8e4ad 100644
--- a/ambari-web/test/controllers/main/host/details_test.js
+++ b/ambari-web/test/controllers/main/host/details_test.js
@@ -83,12 +83,8 @@ describe('App.MainHostDetailsController', function () {
describe('#stopComponent()', function () {
beforeEach(function () {
- sinon.stub(App, 'showConfirmationPopup', function (callback) {
- callback();
- });
- sinon.stub(controller, 'checkNnLastCheckpointTime', function (callback) {
- callback();
- });
+ sinon.stub(App, 'showConfirmationPopup', Em.clb);
+ sinon.stub(controller, 'checkNnLastCheckpointTime', Em.clb);
sinon.stub(controller, 'sendComponentCommand');
});
afterEach(function () {
@@ -124,7 +120,7 @@ describe('App.MainHostDetailsController', function () {
});
describe("#pullNnCheckPointTime()", function() {
- it("", function() {
+ it("valid request is sent", function() {
controller.pullNnCheckPointTime('host1');
expect(App.ajax.send.calledWith({
name: 'common.host_component.getNnCheckPointTime',
@@ -150,10 +146,7 @@ describe('App.MainHostDetailsController', function () {
expect(App.ajax.send.getCall(0).args[0].data).to.be.eql({
"hostName": "host1",
"context": {},
- "component": Em.Object.create({
- service: {serviceName: 'S1'},
- componentName: 'COMP1'
- }),
+ "component": component,
"HostRoles": {
"state": "state"
},
@@ -179,16 +172,7 @@ describe('App.MainHostDetailsController', function () {
expect(App.ajax.send.getCall(0).args[0].data).to.be.eql({
"hostName": "host1",
"context": {},
- "component": [
- Em.Object.create({
- service: {serviceName: 'S1'},
- componentName: 'COMP1'
- }),
- Em.Object.create({
- service: {serviceName: 'S1'},
- componentName: 'COMP2'
- })
- ],
+ "component": component,
"HostRoles": {
"state": "state"
},
@@ -622,7 +606,7 @@ describe('App.MainHostDetailsController', function () {
});
describe("#loadOozieConfigs()", function() {
- it("", function() {
+ it("valid request is sent", function() {
controller.loadOozieConfigs({Clusters: {
desired_configs: {
'oozie-env': {
@@ -643,7 +627,7 @@ describe('App.MainHostDetailsController', function () {
});
describe("#loadStormConfigs()", function() {
- it("", function() {
+ it("valid request is sent", function() {
controller.loadStormConfigs({Clusters: {
desired_configs: {
'storm-site': {
@@ -663,30 +647,34 @@ describe('App.MainHostDetailsController', function () {
});
describe("#onLoadStormConfigs()", function() {
+
+ var data = {items: [
+ {
+ type: 'storm-site',
+ properties: {
+ 'nimbus.seeds': ''
+ }
+ }
+ ]};
+
beforeEach(function () {
sinon.stub(controller, 'getStormNimbusHosts').returns("host1");
sinon.stub(controller, 'updateZkConfigs', Em.K);
sinon.stub(controller, 'saveConfigsBatch', Em.K);
+ controller.set('nimbusHost', 'host2');
+ controller.onLoadStormConfigs(data);
});
afterEach(function () {
controller.getStormNimbusHosts.restore();
controller.updateZkConfigs.restore();
controller.saveConfigsBatch.restore();
});
- it("", function() {
- var data = {items: [
- {
- type: 'storm-site',
- properties: {
- 'nimbus.seeds': ''
- }
- }
- ]};
- controller.set('nimbusHost', 'host2');
- controller.onLoadStormConfigs(data);
+ it("updateZkConfigs called with valid arguments", function() {
expect(controller.updateZkConfigs.calledWith({'storm-site': {
'nimbus.seeds': "'host1'"
}})).to.be.true;
+ });
+ it('saveConfigsBatch called with valid arguments', function () {
expect(controller.saveConfigsBatch.calledWith([
{
properties: {
@@ -703,7 +691,7 @@ describe('App.MainHostDetailsController', function () {
});
describe("#loadHiveConfigs()", function() {
- it("", function() {
+ it("valid request is sent", function() {
controller.loadHiveConfigs({Clusters: {
desired_configs: {
'hive-site': {
@@ -732,7 +720,7 @@ describe('App.MainHostDetailsController', function () {
});
describe("#loadRangerConfigs()", function() {
- it("", function() {
+ it("valid request is sent", function() {
controller.loadRangerConfigs({Clusters: {
desired_configs: {
'hdfs-site': {
@@ -763,18 +751,25 @@ describe('App.MainHostDetailsController', function () {
componentName: 'RANGER_KMS_SERVER',
hostName: 'host1'
}]);
- });
- afterEach(function(){
- App.HostComponent.find.restore();
- });
- it("", function() {
controller.set('rangerKMSServerHost', 'host2');
controller.set('content.hostName', 'host1');
controller.set('deleteRangerKMSServer', true);
controller.set('fromDeleteHost', true);
- expect(controller.getRangerKMSServerHosts()).to.eql(['host2']);
+ this.hosts = controller.getRangerKMSServerHosts();
+ });
+ afterEach(function(){
+ App.HostComponent.find.restore();
+ });
+ it('hosts list is valid', function() {
+ expect(this.hosts).to.eql(['host2']);
+ });
+ it('rangerKMSServerHost is empty', function () {
expect(controller.get('rangerKMSServerHost')).to.be.empty;
+ });
+ it('deleteRangerKMSServer is false', function () {
expect(controller.get('deleteRangerKMSServer')).to.be.false;
+ });
+ it('fromDeleteHost is false', function () {
expect(controller.get('fromDeleteHost')).to.be.false;
});
});
@@ -785,18 +780,25 @@ describe('App.MainHostDetailsController', function () {
componentName: 'NIMBUS',
hostName: 'host1'
}]);
- });
- afterEach(function(){
- App.HostComponent.find.restore();
- });
- it("", function() {
controller.set('nimbusHost', 'host2');
controller.set('content.hostName', 'host1');
controller.set('deleteNimbusHost', true);
controller.set('fromDeleteHost', true);
- expect(controller.getStormNimbusHosts()).to.eql(['host2']);
+ this.hosts = controller.getStormNimbusHosts();
+ });
+ afterEach(function(){
+ App.HostComponent.find.restore();
+ });
+ it("hosts list is valid", function() {
+ expect(this.hosts).to.eql(['host2']);
+ });
+ it('nimbusHost is empty', function () {
expect(controller.get('nimbusHost')).to.be.empty;
+ });
+ it('deleteNimbusHost is false', function () {
expect(controller.get('deleteNimbusHost')).to.be.false;
+ });
+ it('fromDeleteHost is false', function () {
expect(controller.get('fromDeleteHost')).to.be.false;
});
});
@@ -1452,8 +1454,14 @@ describe('App.MainHostDetailsController', function () {
});
describe('#checkRegionServerState()', function () {
- it('', function () {
- expect(controller.checkRegionServerState('host1')).to.be.an('object');
+ var result;
+ beforeEach(function () {
+ result = controller.checkRegionServerState('host1');
+ });
+ it('returns object', function () {
+ expect(result).to.be.an('object');
+ });
+ it('request is sent with correct data', function () {
expect(App.ajax.send.getCall(0).args[0].data.hostNames).to.equal('host1');
});
});
@@ -1536,7 +1544,7 @@ describe('App.MainHostDetailsController', function () {
afterEach(function () {
App.ModalPopup.show.restore();
});
- it('', function () {
+ it('modal popup is shown', function () {
controller.showRegionServerWarning();
expect(App.ModalPopup.show.calledOnce).to.be.true;
});
@@ -1666,7 +1674,7 @@ describe('App.MainHostDetailsController', function () {
afterEach(function() {
hostsManagement.setRackInfo.restore();
});
- it("", function() {
+ it('setRackInfo called with valid arguments', function() {
controller.set('content.rack', 'rack');
controller.set('content.hostName', 'host1');
controller.setRackIdForHost();
@@ -2946,25 +2954,29 @@ describe('App.MainHostDetailsController', function () {
});
describe("#installVersionSuccessCallback()", function () {
- before(function () {
+ var version = Em.Object.create({
+ id: 1,
+ status: 'INIT'
+ });
+ beforeEach(function () {
this.mock = sinon.stub(App.HostStackVersion, 'find');
+ this.mock.returns(version);
sinon.stub(App.db, 'set', Em.K);
sinon.stub(App.clusterStatus, 'setClusterStatus', Em.K);
+ controller.installVersionSuccessCallback({Requests: {id: 1}}, {}, {version: version});
});
- after(function () {
+ afterEach(function () {
this.mock.restore();
App.db.set.restore();
App.clusterStatus.setClusterStatus.restore();
});
- it("", function () {
- var version = Em.Object.create({
- id: 1,
- status: 'INIT'
- });
- this.mock.returns(version);
- controller.installVersionSuccessCallback({Requests: {id: 1}}, {}, {version: version});
+ it("status is INSTALLING", function () {
expect(version.get('status')).to.equal('INSTALLING');
+ });
+ it('valid data is saved to the localDB', function () {
expect(App.db.set.calledWith('repoVersionInstall', 'id', [1])).to.be.true;
+ });
+ it('clusterStatus is updated', function () {
expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
});
});
@@ -3165,7 +3177,16 @@ describe('App.MainHostDetailsController', function () {
});
describe("#removeHostComponentModel()", function () {
+
beforeEach(function () {
+ App.cache['services'] = [
+ {
+ ServiceInfo: {
+ service_name: 'S1'
+ },
+ host_components: ['C1_host1']
+ }
+ ];
sinon.stub(App.HostComponent, 'find').returns([
Em.Object.create({
id: 'C1_host1',
@@ -3177,23 +3198,16 @@ describe('App.MainHostDetailsController', function () {
})
]);
sinon.stub(App.serviceMapper, 'deleteRecord', Em.K);
+ controller.removeHostComponentModel('C1', 'host1');
});
afterEach(function () {
App.HostComponent.find.restore();
App.serviceMapper.deleteRecord.restore();
});
- it("", function () {
- App.cache['services'] = [
- {
- ServiceInfo: {
- service_name: 'S1'
- },
- host_components: ['C1_host1']
- }
- ];
- controller.removeHostComponentModel('C1', 'host1');
+ it("App.cache is updated", function () {
expect(App.cache['services'][0].host_components).to.be.empty;
- expect(App.HostComponent.find.calledOnce).to.be.true;
+ });
+ it('Record is deleted', function () {
expect(App.serviceMapper.deleteRecord.calledOnce).to.be.true;
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/host/host_alerts_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/host/host_alerts_controller_test.js b/ambari-web/test/controllers/main/host/host_alerts_controller_test.js
index 2cfdac5..fadc106 100644
--- a/ambari-web/test/controllers/main/host/host_alerts_controller_test.js
+++ b/ambari-web/test/controllers/main/host/host_alerts_controller_test.js
@@ -45,9 +45,8 @@ describe('App.MainHostAlertsController', function () {
App.router.transitionTo.restore();
});
- it("", function () {
+ it("transitionTo is called with valid route and data", function () {
controller.routeToAlertDefinition({context: 'id'});
- expect(App.AlertDefinition.find.calledWith('id')).to.be.true;
expect(App.router.transitionTo.calledWith('main.alerts.alertDetails', 'alertDefinition')).to.be.true;
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/service/info/summary_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/summary_test.js b/ambari-web/test/controllers/main/service/info/summary_test.js
index bec3be1..28c13e3 100644
--- a/ambari-web/test/controllers/main/service/info/summary_test.js
+++ b/ambari-web/test/controllers/main/service/info/summary_test.js
@@ -304,24 +304,22 @@ App.TestAliases.testAsComputedOr(getController(), 'showTimeRangeControl', ['!isS
beforeEach(function () {
sinon.stub(App.widgetLayoutMapper, 'map');
sinon.stub(controller, 'propertyDidChange');
- });
- afterEach(function () {
- App.widgetLayoutMapper.map.restore();
- controller.propertyDidChange.restore();
- });
- it("", function () {
var params = {
data: {
WidgetLayoutInfo: {
widgets: [
- {
- id: 1
- }
+ {id: 1}
]
}
}
};
controller.hideWidgetSuccessCallback({}, {}, params);
+ });
+ afterEach(function () {
+ App.widgetLayoutMapper.map.restore();
+ controller.propertyDidChange.restore();
+ });
+ it("mapper is called with valid data", function () {
expect(App.widgetLayoutMapper.map.calledWith({
items: [{
WidgetLayoutInfo: {
@@ -335,6 +333,8 @@ App.TestAliases.testAsComputedOr(getController(), 'showTimeRangeControl', ['!isS
}
}]
})).to.be.true;
+ });
+ it('`widgets` is forced to be recalculated', function () {
expect(controller.propertyDidChange.calledWith('widgets')).to.be.true;
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/service/item_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/item_test.js b/ambari-web/test/controllers/main/service/item_test.js
index 4934d21..8794661 100644
--- a/ambari-web/test/controllers/main/service/item_test.js
+++ b/ambari-web/test/controllers/main/service/item_test.js
@@ -234,7 +234,7 @@ describe('App.MainServiceItemController', function () {
describe("#startStopPopupPrimary", function () {
-
+ var mainServiceItemController;
var tests = [
{
data: {
@@ -283,16 +283,25 @@ describe('App.MainServiceItemController', function () {
});
- tests.forEach(function (test) {
- it('', function () {
- var mainServiceItemController = App.MainServiceItemController.create({content: {serviceName: test.data.serviceName}});
+ tests.forEach(function (test, index) {
+
+ function setupWithTestData() {
+ mainServiceItemController = App.MainServiceItemController.create({content: {serviceName: test.data.serviceName}});
mainServiceItemController.startStopPopupPrimary(test.data.state, test.data.query);
- expect($.ajax.calledOnce).to.equal(true);
+ }
+ it('request is sent with valid data ' + (index + 1), function () {
+ setupWithTestData();
+ expect($.ajax.calledOnce).to.equal(true);
expect(JSON.parse($.ajax.args[0][0].data).Body.ServiceInfo.state).to.equal(test.request.Body.ServiceInfo.state);
expect(JSON.parse($.ajax.args[0][0].data).RequestInfo.context).to.equal(test.request.RequestInfo.context);
-
+ });
+ it('isStopDisabled is true ' + (index + 1), function () {
+ setupWithTestData();
expect(mainServiceItemController.get('isStopDisabled')).to.equal(true);
+ });
+ it('isStartDisabled is true ' + (index + 1), function () {
+ setupWithTestData();
expect(mainServiceItemController.get('isStartDisabled')).to.equal(true);
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1901b395/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js b/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
index bfc88f4..dffeabb 100644
--- a/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
+++ b/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
@@ -26,54 +26,54 @@ describe('App.ManageConfigGroupsController', function() {
c = App.ManageConfigGroupsController.create({});
});
- var manageConfigGroupsController = App.ManageConfigGroupsController.create({});
+ var manageConfigGroupsController = App.ManageConfigGroupsController.create({});
- describe('#addConfigGroup', function() {
- beforeEach(function() {
- manageConfigGroupsController.addConfigGroup();
- });
+ describe('#addConfigGroup', function() {
+ beforeEach(function() {
+ manageConfigGroupsController.addConfigGroup();
+ });
- describe("#validate", function() {
- it("should display no warning if user inputs valid characters into group name", function() {
+ describe("#validate", function() {
+ it("should display no warning if user inputs valid characters into group name", function() {
- manageConfigGroupsController.addGroupPopup.set('configGroupName', 'hello');
+ manageConfigGroupsController.addGroupPopup.set('configGroupName', 'hello');
- expect(manageConfigGroupsController.addGroupPopup.warningMessage).to.be.empty;
- });
+ expect(manageConfigGroupsController.addGroupPopup.warningMessage).to.be.empty;
+ });
- it("should display warning if user inputs invalid characters into group name", function() {
- manageConfigGroupsController.addGroupPopup.set('configGroupName', '/{"!@#$%');
+ it("should display warning if user inputs invalid characters into group name", function() {
+ manageConfigGroupsController.addGroupPopup.set('configGroupName', '/{"!@#$%');
- expect(manageConfigGroupsController.addGroupPopup.warningMessage).to.equal('Invalid Group Name. Only alphanumerics, hyphens, spaces and underscores are allowed.');
- });
- });
- });
+ expect(manageConfigGroupsController.addGroupPopup.warningMessage).to.equal('Invalid Group Name. Only alphanumerics, hyphens, spaces and underscores are allowed.');
+ });
+ });
+ });
- describe('#renameConfigGroup', function() {
- beforeEach(function() {
- var configGroup = Ember.Object.create ({
- name: 'name',
- description: 'description'
- });
+ describe('#renameConfigGroup', function() {
+ beforeEach(function() {
+ var configGroup = Ember.Object.create ({
+ name: 'name',
+ description: 'description'
+ });
- manageConfigGroupsController.set('selectedConfigGroup', configGroup);
- manageConfigGroupsController.renameConfigGroup();
- });
+ manageConfigGroupsController.set('selectedConfigGroup', configGroup);
+ manageConfigGroupsController.renameConfigGroup();
+ });
- describe("#validate", function() {
- it("should display no warning if user inputs valid characters into group name", function() {
- manageConfigGroupsController.renameGroupPopup.set('configGroupName', 'hello');
+ describe("#validate", function() {
+ it("should display no warning if user inputs valid characters into group name", function() {
+ manageConfigGroupsController.renameGroupPopup.set('configGroupName', 'hello');
- expect(manageConfigGroupsController.renameGroupPopup.warningMessage).to.be.empty;
- });
+ expect(manageConfigGroupsController.renameGroupPopup.warningMessage).to.be.empty;
+ });
- it("should display warning if user inputs invalid characters into group name", function() {
- manageConfigGroupsController.renameGroupPopup.set('configGroupName', '/{"!@#$%');
+ it("should display warning if user inputs invalid characters into group name", function() {
+ manageConfigGroupsController.renameGroupPopup.set('configGroupName', '/{"!@#$%');
- expect(manageConfigGroupsController.renameGroupPopup.warningMessage).to.equal('Invalid Group Name. Only alphanumerics, hyphens, spaces and underscores are allowed.');
- });
- });
- });
+ expect(manageConfigGroupsController.renameGroupPopup.warningMessage).to.equal('Invalid Group Name. Only alphanumerics, hyphens, spaces and underscores are allowed.');
+ });
+ });
+ });
describe('#addHostsCallback', function() {
@@ -102,60 +102,60 @@ describe('App.ManageConfigGroupsController', function() {
describe('#isHostsModified', function () {
Em.A([
- {
- o: {
- toClearHosts: [],
- toDelete: [],
- toSetHosts: [],
- toCreate: []
- },
- e: false
+ {
+ o: {
+ toClearHosts: [],
+ toDelete: [],
+ toSetHosts: [],
+ toCreate: []
+ },
+ e: false
+ },
+ {
+ o: {
+ toClearHosts: [{}],
+ toDelete: [],
+ toSetHosts: [],
+ toCreate: []
},
- {
- o: {
- toClearHosts: [{}],
- toDelete: [],
- toSetHosts: [],
- toCreate: []
- },
- e: true
+ e: true
+ },
+ {
+ o: {
+ toClearHosts: [],
+ toDelete: [{}],
+ toSetHosts: [],
+ toCreate: []
},
- {
- o: {
- toClearHosts: [],
- toDelete: [{}],
- toSetHosts: [],
- toCreate: []
- },
- e: true
+ e: true
+ },
+ {
+ o: {
+ toClearHosts: [],
+ toDelete: [],
+ toSetHosts: [{}],
+ toCreate: []
},
- {
- o: {
- toClearHosts: [],
- toDelete: [],
- toSetHosts: [{}],
- toCreate: []
- },
- e: true
+ e: true
+ },
+ {
+ o: {
+ toClearHosts: [],
+ toDelete: [],
+ toSetHosts: [],
+ toCreate: [{}]
},
- {
- o: {
- toClearHosts: [],
- toDelete: [],
- toSetHosts: [],
- toCreate: [{}]
- },
- e: true
- }
+ e: true
+ }
]).forEach(function (test, index) {
- it('test #' + index, function () {
- c.reopen({
- isLoaded: true,
- hostsModifiedConfigGroups: test.o
- });
- expect(c.get('isHostsModified')).to.equal(test.e);
+ it('test #' + index, function () {
+ c.reopen({
+ isLoaded: true,
+ hostsModifiedConfigGroups: test.o
});
+ expect(c.get('isHostsModified')).to.equal(test.e);
});
+ });
});
@@ -206,7 +206,7 @@ describe('App.ManageConfigGroupsController', function() {
afterEach(function () {
popup.onPrimaryWizard.restore();
});
- it("", function () {
+ it("onPrimaryWizard is called", function () {
popup.onPrimary();
expect(popup.onPrimaryWizard.calledOnce).to.be.true;
});
@@ -297,6 +297,8 @@ describe('App.ManageConfigGroupsController', function() {
});
sinon.stub(popup, 'updateConfigGroupOnServicePage', Em.K);
sinon.stub(popup, 'hide', Em.K);
+ manageConfigGroupsController.set('hostsModifiedConfigGroups', {toCreate: []});
+ popup.onPrimary();
});
afterEach(function () {
popup.runCreateCGQueue.restore();
@@ -305,13 +307,19 @@ describe('App.ManageConfigGroupsController', function() {
popup.updateConfigGroupOnServicePage.restore();
popup.hide.restore();
});
- it("", function () {
- manageConfigGroupsController.set('hostsModifiedConfigGroups', {toCreate: []});
- popup.onPrimary();
+ it("runClearCGQueue is called", function () {
expect(popup.runClearCGQueue.calledOnce).to.be.true;
+ });
+ it("runModifyCGQueue is called", function () {
expect(popup.runModifyCGQueue.calledOnce).to.be.true;
+ });
+ it("runCreateCGQueue is called", function () {
expect(popup.runCreateCGQueue.calledOnce).to.be.true;
+ });
+ it("updateConfigGroupOnServicePage is called", function () {
expect(popup.updateConfigGroupOnServicePage.calledOnce).to.be.true;
+ });
+ it("hide is called", function () {
expect(popup.hide.calledOnce).to.be.true;
});
});
@@ -319,18 +327,20 @@ describe('App.ManageConfigGroupsController', function() {
beforeEach(function () {
sinon.stub(manageConfigGroupsController, 'updateConfigurationGroup', Em.K);
sinon.stub(manageConfigGroupsController, 'deleteConfigurationGroup', Em.K);
- });
- afterEach(function () {
- manageConfigGroupsController.updateConfigurationGroup.restore();
- manageConfigGroupsController.deleteConfigurationGroup.restore();
- });
- it("", function () {
popup.runClearCGQueue(Em.K, {
initialGroups: [],
toClearHosts: [Em.Object.create()],
toDelete: [1]
});
+ });
+ afterEach(function () {
+ manageConfigGroupsController.updateConfigurationGroup.restore();
+ manageConfigGroupsController.deleteConfigurationGroup.restore();
+ });
+ it("updateConfigurationGroup is called once", function () {
expect(manageConfigGroupsController.updateConfigurationGroup.calledOnce).to.be.true;
+ });
+ it("deleteConfigurationGroup is called once", function () {
expect(manageConfigGroupsController.deleteConfigurationGroup.calledOnce).to.be.true;
});
});
@@ -341,7 +351,7 @@ describe('App.ManageConfigGroupsController', function() {
afterEach(function () {
manageConfigGroupsController.updateConfigurationGroup.restore();
});
- it("", function () {
+ it("updateConfigurationGroup is called once", function () {
popup.runModifyCGQueue(Em.K, {toSetHosts: [1]});
expect(manageConfigGroupsController.updateConfigurationGroup.calledOnce).to.be.true;
});
@@ -353,7 +363,7 @@ describe('App.ManageConfigGroupsController', function() {
afterEach(function () {
manageConfigGroupsController.postNewConfigurationGroup.restore();
});
- it("", function () {
+ it("postNewConfigurationGroup is called once", function () {
popup.runCreateCGQueue(Em.K, {toCreate: [1]});
expect(manageConfigGroupsController.postNewConfigurationGroup.calledOnce).to.be.true;
});