blob: 3335cf3ee057f31b4dd2847de39e5e3c5071f933 [file] [log] [blame]
/**
* 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.
*/
var App = require('app');
function getView() {
return App.EditDashboardWidgetPopup.create({
widgetView: Em.View.create(),
sliderHandlersManager: {}
});
}
describe('App.EditDashboardWidgetPopup', function () {
App.TestAliases.testAsComputedAlias(getView(), 'disablePrimary', 'sliderHandlersManager.hasErrors');
App.TestAliases.testAsComputedAlias(getView(), 'sliderMaxValue', 'sliderHandlersManager.maxValue');
describe('#init', function () {
it('should throw an Error if no `widgetView` provided', function () {
expect(function () {
App.EditDashboardWidgetPopup.create({
sliderHandlersManager: {}
});
}).to.throw(/`widgetView` should be valid view/);
});
it('should throw an Error if no `sliderHandlersManager` provided', function () {
expect(function () {
App.EditDashboardWidgetPopup.create({
widgetView: Em.View.create(),
});
}).to.throw(/`sliderHandlersManager` should be set/);
});
});
});
describe('App.EditDashboardWidgetPopup.SingleHandler', function () {
var handler;
function getSingleHandler() {
return App.EditDashboardWidgetPopup.SingleHandler.create();
}
beforeEach(function () {
handler = getSingleHandler();
});
App.TestAliases.testAsComputedAlias(getSingleHandler(), 'hasErrors', 'thresholdMinError');
describe('#updateThresholds', function () {
it('should update `thresholdMin`', function () {
handler.set('thresholdMin', -1);
handler.updateThresholds([100500]);
expect(handler.get('thresholdMin')).to.be.equal(100500);
});
});
describe('#thresholdMinErrorMessage', function() {
var minValue = 0;
var maxValue = 100;
var msg = Em.I18n.t('dashboard.widgets.error.invalid').format(minValue, maxValue);
beforeEach(function() {
handler.setProperties({
minValue: minValue,
maxValue: maxValue
});
});
[
{thresholdMin: -1, e: msg},
{thresholdMin: 101, e: msg},
{thresholdMin: 'abc', e: msg},
{thresholdMin: 60, e: ''}
].forEach(function(test) {
it('thresholdMin: ' + JSON.stringify(test.thresholdMin), function () {
handler.set('thresholdMin', test.thresholdMin);
expect(handler.get('thresholdMinErrorMessage')).to.be.equal(test.e);
});
});
});
describe('#preparedThresholds', function () {
it('mapped to array threshold values', function () {
handler.setProperties({
thresholdMin: 1
});
expect(handler.get('preparedThresholds')).to.be.eql([1]);
});
});
});
describe('App.EditDashboardWidgetPopup.DoubleHandlers', function () {
var handler;
function getDoubleHandlers() {
return App.EditDashboardWidgetPopup.DoubleHandlers.create();
}
beforeEach(function () {
handler = getDoubleHandlers();
});
App.TestAliases.testAsComputedOr(getDoubleHandlers(), 'hasErrors', ['thresholdMinError', 'thresholdMaxError']);
describe('#updateThresholds', function () {
it('should update `thresholdMin` and `thresholdMax`', function () {
handler.set('thresholdMin', -1);
handler.set('thresholdMax', 1);
handler.updateThresholds([1234, 4321]);
expect(handler.get('thresholdMin')).to.be.equal(1234);
expect(handler.get('thresholdMax')).to.be.equal(4321);
});
});
describe('#thresholdMinErrorMessage', function() {
var minValue = 0;
var maxValue = 100;
var msg = Em.I18n.t('dashboard.widgets.error.invalid').format(minValue, maxValue);
var msg2 = Em.I18n.t('dashboard.widgets.error.smaller');
beforeEach(function() {
handler.setProperties({
minValue: minValue,
maxValue: maxValue
});
});
[
{thresholdMin: -1, e: msg},
{thresholdMin: 101, e: msg},
{thresholdMin: 'abc', e: msg},
{thresholdMin: 60, e: ''},
{thresholdMin: 99, e: msg2}
].forEach(function(test) {
it('thresholdMin: ' + JSON.stringify(test.thresholdMin), function () {
handler.set('thresholdMin', test.thresholdMin);
handler.set('thresholdMax', 98);
expect(handler.get('thresholdMinErrorMessage')).to.be.equal(test.e);
});
});
});
describe('#thresholdMaxErrorMessage', function () {
var minValue = 0;
var maxValue = 100;
var msg = Em.I18n.t('dashboard.widgets.error.invalid').format(minValue, maxValue);
beforeEach(function() {
handler.setProperties({
minValue: minValue,
maxValue: maxValue
});
});
[
{thresholdMax: -1, e: msg},
{thresholdMax: 101, e: msg},
{thresholdMax: 'abc', e: msg},
{thresholdMax: 60, e: ''}
].forEach(function(test) {
it('thresholdMax: ' + JSON.stringify(test.thresholdMax), function () {
handler.set('thresholdMax', test.thresholdMax);
expect(handler.get('thresholdMaxErrorMessage')).to.be.equal(test.e);
});
});
});
describe('#preparedThresholds', function () {
it('mapped to array threshold values', function () {
handler.setProperties({
thresholdMin: 1,
thresholdMax: 2
});
expect(handler.get('preparedThresholds')).to.be.eql([1, 2]);
});
});
});