blob: dcd70b1cab74e4a2241746f691614f0736279df0 [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.
*/
require('utils/helper');
var siteProperties = require('data/configs/site_properties').configProperties;
describe('data configs site_properties', function () {
/**
* @stackProperties: All the properties that are derived from stack definition
*/
var stackProperties = siteProperties.filter(function(item){
return !(item.isRequiredByAgent === false || item.category === 'Ambari Principals')
});
stackProperties.forEach(function(siteProperty){
/**
* Following config attributes are stack driven and should be defined in the stack metainfo instead of ambari-web site-properties file
* isVisible
* isOverridable
* value
* recommendedValue
* isReconfigurable
* isRequired
* displayName
* description
* showLabel
* unit
*/
describe('Check attributes of "{0}/{1}". Stack driven attributes should be undefined '.format(siteProperty.filename, siteProperty.name), function () {
['isVisible', 'value', 'recommendedValue', 'description', 'isReconfigurable', 'isRequired', 'displayName', 'showLabel', 'unit'].forEach(function (p) {
it(p, function () {
expect(siteProperty[p]).to.not.exist;
});
});
});
/**
* displayTypes <code>supportTextConnection<code> and <code>radio button<code>
* can be used as exception. Other displayTypes values should be used in stack definition
*/
it('Check attributes of "{0}/{1}". Display type value {2} should be described in stack '.format(siteProperty.filename, siteProperty.name, siteProperty.displayType), function () {
expect(siteProperty.displayType).to.match(/undefined|supportTextConnection|radio button/);
});
/**
* Following config attributes uniquely represent a config property
* name
* filename
*/
describe('Check primary attributes of "{0}/{1}". Attributes that uniquely represent a property should be defined '.format(siteProperty.filename, siteProperty.name), function () {
it('name', function () {
expect(siteProperty.name).to.not.equal(undefined);
});
it('filename', function () {
expect(siteProperty.filename).to.not.equal(undefined);
});
});
});
});