123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- App = require('app');
- require('controllers/main/service/widgets/create/step2_controller');
- describe('App.WidgetWizardStep2Controller', function () {
- var controller = App.WidgetWizardStep2Controller.create({
- content: Em.Object.create()
- });
- describe("#isEditWidget", function() {
- it("empty name", function() {
- controller.set('content.controllerName', '');
- controller.propertyDidChange('isEditWidget');
- expect(controller.get('isEditWidget')).to.be.false;
- });
- it("correct name", function() {
- controller.set('content.controllerName', 'widgetEditController');
- controller.propertyDidChange('isEditWidget');
- expect(controller.get('isEditWidget')).to.be.true;
- });
- });
- describe("#filteredMetrics", function() {
- var testCases = [
- {
- metric: {
- point_in_time: false
- },
- type: null,
- result: []
- },
- {
- metric: {
- point_in_time: true
- },
- type: null,
- result: [
- {
- point_in_time: true
- }
- ]
- },
- {
- metric: {
- temporal: false
- },
- type: 'GRAPH',
- result: []
- },
- {
- metric: {
- temporal: true
- },
- type: 'GRAPH',
- result: [
- {
- temporal: true
- }
- ]
- }
- ];
- testCases.forEach(function (test) {
- it("type=" + test.type + "; temporal=" + test.metric.temporal + "; point_in_time=" + test.metric.point_in_time, function () {
- controller.get('content').setProperties({
- widgetType: test.type,
- allMetrics: [test.metric]
- });
- controller.propertyDidChange('filteredMetrics');
- expect(controller.get('filteredMetrics')).to.eql(test.result);
- });
- });
- });
- describe("#isSubmitDisabled", function () {
- beforeEach(function () {
- this.expressionFunc = sinon.stub(controller, 'isExpressionComplete');
- this.graphFunc = sinon.stub(controller, 'isGraphDataComplete');
- this.templateFunc = sinon.stub(controller, 'isTemplateDataComplete');
- controller.set('expressions', ['']);
- });
- afterEach(function () {
- this.expressionFunc.restore();
- this.graphFunc.restore();
- this.templateFunc.restore();
- controller.get('expressions').clear();
- });
- it("invalid property", function () {
- controller.set('widgetPropertiesViews', [Em.Object.create({isValid: false})]);
- controller.propertyDidChange('isSubmitDisabled');
- expect(controller.get('isSubmitDisabled')).to.be.true;
- });
- it("valid number widget", function () {
- controller.set('widgetPropertiesViews', []);
- controller.set('content.widgetType', 'NUMBER');
- this.expressionFunc.returns(true);
- controller.propertyDidChange('isSubmitDisabled');
- expect(controller.get('isSubmitDisabled')).to.be.false;
- });
- it("invalid number widget", function () {
- controller.set('widgetPropertiesViews', []);
- controller.set('content.widgetType', 'NUMBER');
- this.expressionFunc.returns(false);
- controller.propertyDidChange('isSubmitDisabled');
- expect(controller.get('isSubmitDisabled')).to.be.true;
- });
- it("valid graph widget", function () {
- controller.set('widgetPropertiesViews', []);
- controller.set('content.widgetType', 'GRAPH');
- this.graphFunc.returns(true);
- controller.propertyDidChange('isSubmitDisabled');
- expect(controller.get('isSubmitDisabled')).to.be.false;
- });
- it("invalid graph widget", function () {
- controller.set('widgetPropertiesViews', []);
- controller.set('content.widgetType', 'GRAPH');
- this.graphFunc.returns(false);
- controller.propertyDidChange('isSubmitDisabled');
- expect(controller.get('isSubmitDisabled')).to.be.true;
- });
- it("valid template widget", function () {
- controller.set('widgetPropertiesViews', []);
- controller.set('content.widgetType', 'TEMPLATE');
- this.templateFunc.returns(true);
- controller.propertyDidChange('isSubmitDisabled');
- expect(controller.get('isSubmitDisabled')).to.be.false;
- });
- it("invalid template widget", function () {
- controller.set('widgetPropertiesViews', []);
- controller.set('content.widgetType', 'TEMPLATE');
- this.templateFunc.returns(false);
- controller.propertyDidChange('isSubmitDisabled');
- expect(controller.get('isSubmitDisabled')).to.be.true;
- });
- it("unknown widget type", function () {
- controller.set('widgetPropertiesViews', []);
- controller.set('content.widgetType', '');
- controller.propertyDidChange('isSubmitDisabled');
- expect(controller.get('isSubmitDisabled')).to.be.false;
- });
- });
- describe("#isExpressionComplete()", function() {
- var testCases = [
- {
- expression: null,
- result: false
- },
- {
- expression: Em.Object.create({isInvalid: true}),
- result: false
- },
- {
- expression: Em.Object.create({isInvalid: false, isEmpty: false}),
- result: true
- },
- {
- expression: Em.Object.create({isInvalid: false, isEmpty: true}),
- result: false
- }
- ];
- testCases.forEach(function (test) {
- it("expression = " + test.expression, function () {
- expect(controller.isExpressionComplete(test.expression)).to.equal(test.result);
- });
- });
- });
- describe("#isGraphDataComplete()", function() {
- beforeEach(function () {
- this.mock = sinon.stub(controller, 'isExpressionComplete');
- });
- afterEach(function () {
- this.mock.restore();
- });
- it("dataSets is empty", function() {
- expect(controller.isGraphDataComplete([])).to.be.false;
- });
- it("label is empty", function() {
- expect(controller.isGraphDataComplete([Em.Object.create({label: ''})])).to.be.false;
- });
- it("expression is not complete", function() {
- this.mock.returns(false);
- expect(controller.isGraphDataComplete([Em.Object.create({label: 'abc'})])).to.be.false;
- });
- it("expression is complete", function() {
- this.mock.returns(true);
- expect(controller.isGraphDataComplete([Em.Object.create({label: 'abc'})])).to.be.true;
- });
- });
- describe("#isTemplateDataComplete()", function() {
- beforeEach(function () {
- this.mock = sinon.stub(controller, 'isExpressionComplete');
- });
- afterEach(function () {
- this.mock.restore();
- });
- it("expressions is empty", function() {
- expect(controller.isTemplateDataComplete([])).to.be.false;
- });
- it("templateValue is empty", function() {
- expect(controller.isTemplateDataComplete([{}], '')).to.be.false;
- });
- it("expression is not complete", function() {
- this.mock.returns(false);
- expect(controller.isTemplateDataComplete([{}], 'abc')).to.be.false;
- });
- it("expression is complete", function() {
- this.mock.returns(true);
- expect(controller.isTemplateDataComplete([{}], 'abc')).to.be.true;
- });
- });
- describe("#addDataSet()", function() {
- it("", function() {
- controller.get('dataSets').clear();
- controller.addDataSet(null, true);
- expect(controller.get('dataSets').objectAt(0).get('id')).to.equal(1);
- expect(controller.get('dataSets').objectAt(0).get('isRemovable')).to.equal(false);
- controller.addDataSet(null);
- expect(controller.get('dataSets').objectAt(1).get('id')).to.equal(2);
- expect(controller.get('dataSets').objectAt(1).get('isRemovable')).to.equal(true);
- controller.get('dataSets').clear();
- });
- });
- describe("#removeDataSet()", function () {
- it("", function () {
- var dataSet = Em.Object.create();
- controller.get('dataSets').pushObject(dataSet);
- controller.removeDataSet({context: dataSet});
- expect(controller.get('dataSets')).to.be.empty;
- });
- });
- describe("#addExpression()", function() {
- it("", function() {
- controller.get('expressions').clear();
- controller.addExpression(null, true);
- expect(controller.get('expressions').objectAt(0).get('id')).to.equal(1);
- expect(controller.get('expressions').objectAt(0).get('isRemovable')).to.equal(false);
- controller.addExpression(null);
- expect(controller.get('expressions').objectAt(1).get('id')).to.equal(2);
- expect(controller.get('expressions').objectAt(1).get('isRemovable')).to.equal(true);
- controller.get('expressions').clear();
- });
- });
- describe("#removeExpression()", function () {
- it("", function () {
- var expression = Em.Object.create();
- controller.get('expressions').pushObject(expression);
- controller.removeExpression({context: expression});
- expect(controller.get('expressions')).to.be.empty;
- });
- });
- });
|