apigee-edge-js
Version:
nodejs library for the administration API for Apigee (Edge and X and hybrid).
250 lines (217 loc) • 10 kB
JavaScript
// targetserver.js
// ------------------------------------------------------------------
//
// Tests for Developer operations.
//
// Copyright 2017-2019 Google LLC
//
// 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
//
// https://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.
//
/* global path, faker, describe, it, before, after */
var common = require('./common');
describe('TargetServer', function() {
let dateVal = new Date().valueOf(),
contrivedNameBasePrefix = 'apigee-js-test-',
contrivedNamePrefix = contrivedNameBasePrefix + dateVal;
this.timeout(common.testTimeout);
this.slow(common.slowThreshold);
common.connectApigee(function(org){
//org.conn.verbosity = 2;
describe('create', function() {
var envlist = [];
before(function(done){
org.environments.get(function(e, result) {
assert.isNull(e, "error listing: " + JSON.stringify(e));
envlist = result;
done();
});
});
it('should create a targetserver in each environment', function() {
const reducer = (p, env) => p.then( () =>
org.targetservers.create({
environment : env,
target : {
name : contrivedNamePrefix + '-target1',
host: "a.b.com",
port: 8080,
sSLInfo : { enabled : false }
}
})
.then((result) => {
assert.notExists(result.error);
})
);
return envlist.reduce( reducer, Promise.resolve() );
});
it('should fail to create a targetserver for lack of required params', function(done) {
let badOptions = {
environment : envlist[0],
target : {
name : contrivedNamePrefix + '-target2',
port: 8080,
sSLInfo : { enabled : false }
}
};
org.targetservers.create(badOptions, function(e, result){
assert.isNotNull(e, "the expected error did not occur");
done();
});
});
});
describe('get', function() {
var envlist = [];
before(function(done){
org.environments.get(function(e, result) {
assert.isNull(e, "error listing: " + JSON.stringify(e));
envlist = result;
done();
});
});
it('should get a list of targetservers', () => {
const reducer = (p, env) => p.then( () =>
org.targetservers.get({environment:env})
.then((result) => {
assert.notExists(result.error);
assert.exists(result.length);
assert.isAtLeast(result.length, 1);
})
);
return envlist.reduce( reducer, Promise.resolve() );
});
it('should fail to get a non-existent targetserver', () => {
const targetName = faker.random.alphaNumeric(22);
return org.targetservers.get({environment: envlist[0], name:targetName})
.then ( (r) => {
assert.fail('should not be reached');
})
.catch((e) => {
assert.exists(e);
//console.log(JSON.stringify(e.result));
//console.log('error:' + e);
assert.exists(e.result.message);
assert.equal(e.result.message, `Target server ${targetName} does not exist in environment ${envlist[0]}`);
});
});
});
describe('enable', function() {
//org.conn.verbosity = 2;
var envlist = [];
before(function(done){
org.environments.get(function(e, result) {
assert.isNull(e, "error listing: " + JSON.stringify(e));
envlist = result;
done();
});
});
it('should enable a targetserver in each env', () => {
const reducer = (p, env) => p.then( () =>
org.targetservers.enable({environment:env, name : contrivedNamePrefix + '-target1'})
.then((result) => {
assert.notExists(result.error);
assert.isTrue(result.isEnabled);
})
);
return envlist.reduce( reducer, Promise.resolve() );
});
it('should fail to enable a non-existent targetserver in each env', () => {
const fakeName = faker.random.alphaNumeric(22);
const reducer = (p, env) => p.then( () =>
org.targetservers.enable({environment:env, name : fakeName})
.then((res) => {
assert.fail('should not be reached');
})
.catch(error => {
assert.exists(error.result);
assert.exists(error.result.code);
assert.exists(error.result.message);
assert.equal(error.result.message, `Target server ${fakeName} does not exist in environment ${env}`);
})
);
return envlist.reduce( reducer, Promise.resolve() );
});
it('should disable a targetserver in each env', () => {
const targetName = contrivedNamePrefix + '-target1';
const reducer = (p, env) => p.then( () =>
org.targetservers.disable({environment:env, name : targetName})
.then((result) => {
assert.notExists(result.error);
assert.isFalse(result.isEnabled);
})
);
return envlist.reduce( reducer, Promise.resolve() );
});
it('should fail to disable a non-existent targetserver in each env', () => {
const fakeName = faker.random.alphaNumeric(22);
const reducer = (p, env) => p.then( () =>
org.targetservers.disable({environment:env, name : fakeName})
.then((res) => {
assert.fail('should not be reached');
})
.catch(error => {
assert.exists(error.result);
assert.exists(error.result.code);
assert.exists(error.result.message);
assert.equal(error.result.message, `Target server ${fakeName} does not exist in environment ${env}`);
})
);
return envlist.reduce( reducer, Promise.resolve() );
});
});
describe('delete', function() {
var envlist = [];
before(function(done){
org.environments.get(function(e, result) {
assert.isNull(e, "error listing: " + JSON.stringify(e));
envlist = result;
done();
});
});
it('should delete a targetserver', function(done) {
let numDoneEnv = 0;
envlist.forEach( (env) => {
org.targetservers.del({environment:env, name:contrivedNamePrefix + '-target1'}, function(e, result){
assert.isNull(e, "error deleting: " + JSON.stringify(e));
numDoneEnv++;
if (numDoneEnv == envlist.length) {
done();
}
});
});
});
it('should fail to delete a targetserver because no name was specified', function(done) {
let numDoneEnv = 0;
envlist.forEach( (env) => {
org.targetservers.del({environment:env}, function(e, result){
assert.isNotNull(e, "the expected error did not occur");
numDoneEnv++;
if (numDoneEnv == envlist.length) {
done();
}
});
});
});
it('should fail to delete a non-existent targetserver', function(done) {
let numDoneEnv = 0;
envlist.forEach( (env) => {
org.targetservers.del({environment:env, name:faker.random.alphaNumeric(22)}, function(e, result){
assert.isNotNull(e, "the expected error did not occur");
numDoneEnv++;
if (numDoneEnv == envlist.length) {
done();
}
});
});
});
});
});
});