/** * 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'); var LZString = require('utils/lz-string'); require('models/cluster_states'); var status = App.clusterStatus, notInstalledStates = ['CLUSTER_NOT_CREATED_1', 'CLUSTER_DEPLOY_PREP_2', 'CLUSTER_INSTALLING_3', 'SERVICE_STARTING_3'], values = { clusterName: 'name', clusterState: 'STACK_UPGRADING', wizardControllerName: 'wizardStep0Controller', localdb: {} }, response = { clusterState: 'DEFAULT', clusterName: 'cluster' }, response2 = { clusterState: 'DEFAULT2', clusterName: 'cluster2' }, newValue = { clusterName: 'name', clusterState: 'STACK_UPGRADING', wizardControllerName: 'wizardStep0Controller' }; var compressedResponse = LZString.compressToBase64(JSON.stringify(response2)); describe('App.clusterStatus', function () { App.TestAliases.testAsComputedNotExistsIn(status, 'isInstalled', 'clusterState', notInstalledStates); describe('#value', function () { it('should be set from properties', function () { Em.keys(values).forEach(function (key) { status.set(key, values[key]); }); expect(status.get('value')).to.eql(values); }); }); describe('#getUserPrefSuccessCallback', function () { describe('response', function () { beforeEach(function () { status.getUserPrefSuccessCallback(response); }); Em.keys(response).forEach(function (key) { it(key, function () { expect(status.get(key)).to.equal(response[key]); }); }); }); describe('compressedResponse', function () { beforeEach(function () { status.getUserPrefSuccessCallback(compressedResponse); }); Em.keys(response2).forEach(function (key) { it(key, function () { expect(status.get(key)).to.equal(response2[key]); }); }); }); }); describe('#setClusterStatus', function () { beforeEach(function() { sinon.stub(status, 'postUserPref', function() { return $.ajax(); }); }); afterEach(function () { status.postUserPref.restore(); }); it('should set cluster status in non-test mode', function () { var clusterStatus = status.setClusterStatus(newValue); expect(clusterStatus).to.eql(newValue); }); }); });