UNPKG

uaa-client

Version:

REST support for UAA in cloud foundry using javascript.

127 lines (115 loc) 4.08 kB
'use strict'; // For these tests to work there must be a UAA. // Then do // npm test -- --UAA_URL=<https://uaa-ip-address>--USERNAME=<username> --PASSWORD=<password> var assert = require('assert'); var testEnv = require('./test-env'); var UaaClient = require('../../uaa-client'); describe('uaa-client-tests:', function(){ var uaaClient; var token; before(function(){ uaaClient = new UaaClient(testEnv.uaaUrl); return uaaClient.login(testEnv.user, testEnv.password) .then(result => { // console.log('result:',result); assert(result.access_token, 'no token'); token = result; }) .catch(error => assert.fail(error)); }); it('getUsers:', function(){ return uaaClient.getUsers(token.access_token) .then(result => { assert(typeof result.resources[0].userName == 'string', 'No username or user'); }) .catch(error => assert.fail(error)); }); it('getClients:', function(){ return uaaClient.getClients(token.access_token) .then(result => { assert(result.resources[0].client_id, 'One client with client_id not found'); }) .catch(error => assert.fail(error)); }); it('createClient, getClients, then deleteClient:', function(){ var clientOptions = { client_id: 'uaa-script-test-client-id-4', client_secret: 'secret', scope: [ 'clients.read', 'clients.write' ], authorized_grant_types: [ 'client_credentials' ], resource_ids: [ ], authorities: [ 'clients.read', 'clients.write' ], name: 'uaa-script-test-client', }; return new Promise((resolve, reject) => { uaaClient.createClient(clientOptions, token.access_token) .then(result => { // console.log('result:'+JSON.stringify(result)); assert(result.client_id === clientOptions.client_id,'incorrect client_id'); uaaClient.getClients(token.access_token) .then(result => { // console.log('getClients result:'+JSON.stringify(result,null,2)); var clientNames = result.resources.map( aClient => { return aClient.client_id; }); // console.log('clientNames:'+clientNames); assert(clientNames.includes(clientOptions.client_id), 'clientNames does not include client created ' + clientNames); uaaClient.deleteClient(clientOptions.client_id, token.access_token) .then(result => { // console.log('--------deleteClient result:'+JSON.stringify(result,null,2)); resolve(); }) .catch(reject); }) .catch(reject); }) .catch(reject); }); }); it('addUser, getUsers, then removeUser:', function(){ var addUserOptions = { userName: 'fooc@bar.org', password: 'secret', name: { formatted: 'given name family name', familyName: 'family name', givenName: 'given name', }, emails: [{ value: 'foo@bar.org', primary: true, }], phoneNumbers: [ { value: '5555555555', }], active: true, verified: true, origin: '', }; return new Promise((resolve, reject) => { uaaClient.addUser(addUserOptions, token.access_token) .then(result => { // console.log('result:'+JSON.stringify(result)); assert(result.userName === addUserOptions.userName, 'incorrect userName'); var userId = result.id; uaaClient.getUsers(token.access_token) .then(result => { // console.log('getUsers result:'+JSON.stringify(result,null,2)); var userIds = result.resources.map(aUser => { return aUser.id; }); assert(userIds.includes(userId), 'userIds do not include user created ' + userIds); uaaClient.removeUser(userId, token.access_token) .then(result => { // console.log('--------removeUser result:'+JSON.stringify(result,null,2)); resolve(); }) .catch(reject); }) .catch(reject); }) .catch(reject); }); }); });