apigee-edge-js
Version:
nodejs library for the administration API for Apigee (Edge and X and hybrid).
147 lines (121 loc) • 4.79 kB
JavaScript
// developer.js
// ------------------------------------------------------------------
//
// Tests for Developer operations.
//
// Copyright 2017-2021 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.
//
// created: Sat Apr 29 09:17:48 2017
// last saved: <2021-March-23 08:33:00>
/* global describe, faker, it */
const common = require('./common');
const util = require('util');
describe('Developer', function() {
this.timeout(common.testTimeout);
this.slow(common.slowThreshold);
common.connectApigee(org => {
const devs = org.developers;
const firstName = faker.name.firstName(); // Rowan
const lastName = faker.name.lastName(); // Nikolaus
var options = {
developerEmail : lastName + '.' + firstName + "@apigee-js-test.org",
lastName : lastName,
firstName : firstName,
userName : firstName + lastName,
attributes: { uuid: faker.random.uuid() }
};
describe('create', function() {
it('should create a developer', () => devs.create(options));
it('should fail to create a developer', function(done) {
let badOptions = Object.assign({}, options);
delete badOptions.developerEmail;
devs.create(badOptions, function(e, result){
assert.isNotNull(e, "the expected error did not occur");
done();
});
});
});
describe('get', function() {
it('should get a list of developers', () =>
devs.get({})
.then ( result => {
assert.notExists(result.error);
assert.exists(result.length);
assert.isAtLeast(result.length, 1);
})
);
it('should get a few specific developers', () =>
devs.get({})
.then ( developers => {
assert.notExists(developers.error);
assert.exists(developers.length);
assert.isAtLeast(developers.length, 1);
let L = developers.length;
if (L>6) {
developers = developers.slice(0, 6);
L = developers.length;
}
const reducer = (p, developerEmail) =>
p.then( a =>
devs.get({developerEmail})
.then( result => {
assert.isFalse( !!result.error, "unexpected error");
assert.equal(result.email, developerEmail, 'email');
})
.catch( e => {
console.log(util.format(e));
assert.fail('should not be reached');
}));
return developers
.reduce(reducer, Promise.resolve([]));
}));
it('should fail to get a non-existent developer', () => {
const developerEmail = faker.random.alphaNumeric(22);
return devs.get({developerEmail})
.then((res) => {
assert.fail('should not be reached');
})
.catch(error => {
assert.equal(error.result.code,"developer.service.DeveloperIdDoesNotExist");
assert.equal(error.result.message, `DeveloperId ${developerEmail} does not exist in organization ${org.conn.orgname}`);
});
});
});
describe('delete', function() {
it('should delete a developer', () =>
devs.del({developerEmail:options.developerEmail})
.catch( e => {
console.log('error deleting: ' + util.format(e));
throw e;
}));
it('should fail to delete a developer because no email was specified', function(done) {
let badOptions = Object.assign({}, options);
delete badOptions.developerEmail;
devs.del(badOptions, function(e, result){
assert.isNotNull(e, "the expected error did not occur");
done();
});
});
it('should fail to delete a non-existent developer', function(done) {
let badOptions = Object.assign({}, options);
badOptions.developerEmail = faker.random.alphaNumeric(22) + "@apigee-js-test.org";
devs.del(badOptions, function(e, result){
assert.isNotNull(e, "the expected error did not occur");
done();
});
});
});
});
});