monasca-kibana-plugin/server/__tests__/util.spec.js

90 lines
2.9 KiB
JavaScript

/*
* Copyright 2016-2017 FUJITSU LIMITED
*
* Licensed 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.
*/
const sinon = require('sinon');
const chai = require('chai');
const util = require('../util');
describe('plugins/monasca-kibana-plugin', ()=> {
describe('util', ()=> {
const CHECK_STR = 'test.str';
describe('startsWith', () => {
it('should return true if starts with ok', ()=> {
chai.expect(util.startsWith(CHECK_STR, 'test')).to.be.ok;
});
it('should return false if does not start with', ()=> {
chai.expect(util.startsWith(CHECK_STR, 'str')).not.to.be.ok;
});
it('should return false if no prefixes supplied', ()=> {
chai.expect(util.startsWith(CHECK_STR)).not.to.be.ok;
});
});
describe('keystoneUrl', () => {
const keystoneUrl = 'http://localhost'; // mocking http
const keystonePort = 9000;
const keystoneUri = `${keystoneUrl}:${keystonePort}`;
let configGet;
let config;
beforeEach(() => {
configGet = sinon.stub();
config = {
get: configGet
};
});
it('should return url if url&port present', () => {
configGet.withArgs('monasca-kibana-plugin.url').returns(keystoneUrl);
configGet.withArgs('monasca-kibana-plugin.port').returns(keystonePort);
configGet.withArgs('monasca-kibana-plugin.auth_uri').returns(undefined);
chai.expect(util.keystoneUrl(config)).to.be.equal(keystoneUri);
chai.expect(configGet.callCount).to.be.eq(4);
});
it('should return url if auth_uri present', () => {
configGet.withArgs('monasca-kibana-plugin.url').returns(undefined);
configGet.withArgs('monasca-kibana-plugin.port').returns(undefined);
configGet.withArgs('monasca-kibana-plugin.auth_uri').returns(keystoneUri);
chai.expect(util.keystoneUrl(config)).to.be.equal(keystoneUri);
chai.expect(configGet.callCount).to.be.eq(3);
});
it('should error if neither present', () => {
configGet.withArgs('monasca-kibana-plugin.url').returns(undefined);
configGet.withArgs('monasca-kibana-plugin.port').returns(undefined);
configGet.withArgs('monasca-kibana-plugin.auth_uri').returns(undefined);
function fn() {
util.keystoneUrl(config);
}
chai.expect(fn).to.throw(Error, /Unexpected error, neither/);
chai.expect(configGet.callCount).to.be.eq(2);
});
});
});
});