Repository: ambari Updated Branches: refs/heads/branch-2.4 39e75271a -> 65b80d3c4
AMBARI-17948. User is able to create widget with no metrics included (alexantonenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/65b80d3c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/65b80d3c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/65b80d3c Branch: refs/heads/branch-2.4 Commit: 65b80d3c424171bc3daf4a457301653bf27c6a68 Parents: 39e7527 Author: Alex Antonenko <[email protected]> Authored: Thu Jul 28 21:35:34 2016 +0300 Committer: Alex Antonenko <[email protected]> Committed: Thu Jul 28 22:44:31 2016 +0300 ---------------------------------------------------------------------- .../service/widgets/create/step2_controller.js | 3 +- .../app/styles/enhanced_service_dashboard.less | 3 +- .../widgets/create/step2_controller_test.js | 59 ++++++++++++++++++-- 3 files changed, 58 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/65b80d3c/ambari-web/app/controllers/main/service/widgets/create/step2_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/service/widgets/create/step2_controller.js b/ambari-web/app/controllers/main/service/widgets/create/step2_controller.js index 68233f6..29a3408 100644 --- a/ambari-web/app/controllers/main/service/widgets/create/step2_controller.js +++ b/ambari-web/app/controllers/main/service/widgets/create/step2_controller.js @@ -124,7 +124,8 @@ App.WidgetWizardStep2Controller = Em.Controller.extend({ * @returns {boolean} */ isExpressionComplete: function (expression) { - return Boolean(expression && !expression.get('isInvalid') && !expression.get('isEmpty')); + return Boolean(expression && !expression.get('isInvalid') && !expression.get('isEmpty') + && expression.get('data')&& expression.get('data').someProperty('isMetric')); }, /** http://git-wip-us.apache.org/repos/asf/ambari/blob/65b80d3c/ambari-web/app/styles/enhanced_service_dashboard.less ---------------------------------------------------------------------- diff --git a/ambari-web/app/styles/enhanced_service_dashboard.less b/ambari-web/app/styles/enhanced_service_dashboard.less index 3e14b87..07dacf6 100644 --- a/ambari-web/app/styles/enhanced_service_dashboard.less +++ b/ambari-web/app/styles/enhanced_service_dashboard.less @@ -431,7 +431,7 @@ .metric-field { height: 85%; background-color: #f5f5f5; - overflow: scroll; + overflow: auto; border: 1px solid @border-color; } .metric-instance { @@ -732,6 +732,7 @@ display: block; color: #808080; overflow-x: hidden; + overflow-y: auto; height: 40px; white-space: pre-line; } http://git-wip-us.apache.org/repos/asf/ambari/blob/65b80d3c/ambari-web/test/controllers/main/service/widgets/create/step2_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/service/widgets/create/step2_controller_test.js b/ambari-web/test/controllers/main/service/widgets/create/step2_controller_test.js index e717f02..57b64af 100644 --- a/ambari-web/test/controllers/main/service/widgets/create/step2_controller_test.js +++ b/ambari-web/test/controllers/main/service/widgets/create/step2_controller_test.js @@ -152,23 +152,72 @@ describe('App.WidgetWizardStep2Controller', function () { var testCases = [ { expression: null, - result: false + result: false, + title: 'no expression' }, { expression: Em.Object.create({isInvalid: true}), - result: false + result: false, + title: 'invalid expression, no data array' }, { expression: Em.Object.create({isInvalid: false, isEmpty: false}), - result: true + result: false, + title: 'no data array' }, { expression: Em.Object.create({isInvalid: false, isEmpty: true}), - result: false + result: false, + title: 'empty expression' + }, + { + expression: Em.Object.create({isInvalid: true, data: []}), + result: false, + title: 'invalid expression, empty data array' + }, + { + expression: Em.Object.create({isInvalid: false, isEmpty: false, data: []}), + result: false, + title: 'empty data array' + }, + { + expression: Em.Object.create({isInvalid: false, isEmpty: true, data: []}), + result: false, + title: 'empty expression and data array' + }, + { + expression: Em.Object.create({isInvalid: true, data: [{isMetric: false}]}), + result: false, + title: 'invalid expression, no metrics' + }, + { + expression: Em.Object.create({isInvalid: false, isEmpty: false, data: [{isMetric: false}]}), + result: false, + title: 'no metrics' + }, + { + expression: Em.Object.create({isInvalid: false, isEmpty: true, data: [{isMetric: false}]}), + result: false, + title: 'empty expression, no metrics' + }, + { + expression: Em.Object.create({isInvalid: true, data: [{isMetric: false}, {isMetric: true}]}), + result: false, + title: 'invalid expression' + }, + { + expression: Em.Object.create({isInvalid: false, isEmpty: false, data: [{isMetric: false}, {isMetric: true}]}), + result: true, + title: 'valid expression' + }, + { + expression: Em.Object.create({isInvalid: false, isEmpty: true, data: [{isMetric: false}, {isMetric: true}]}), + result: false, + title: 'empty expression, valid data array' } ]; testCases.forEach(function (test) { - it("expression = " + test.expression, function () { + it(test.title, function () { expect(controller.isExpressionComplete(test.expression)).to.equal(test.result); }); });
