From 28fc6dd4bd492d9ed2f2e9da7f1d3a5399cfe9f0 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 15 Jan 2016 20:36:54 -0600 Subject: [PATCH] tests: Convert helpers to use async/await --- test/helpers/api-integration.helper.js | 45 +++++++++++++++----------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/test/helpers/api-integration.helper.js b/test/helpers/api-integration.helper.js index 56df233a1c..40d9994330 100644 --- a/test/helpers/api-integration.helper.js +++ b/test/helpers/api-integration.helper.js @@ -41,6 +41,18 @@ class ApiUser { } } +class ApiGroup { + constructor (options) { + assign(this, options); + } + + update (options) { + return new Promise((resolve) => { + _updateDocument('groups', this, options, resolve); + }); + } +} + // Sets up an abject that can make all REST requests // If a user is passed in, the uuid and api token of // the user are used to make the requests @@ -97,42 +109,37 @@ export function checkExistence (collectionName, id) { // paramter, such as the number of wolf eggs the user has, // , you can do so by passing in the full path as a string: // { 'items.eggs.Wolf': 10 } -export function generateUser (update = {}) { +export async function generateUser (update = {}) { let username = generateUUID(); let password = 'password'; let email = `${username}@example.com`; let request = _requestMaker({}, 'post'); - return new Promise((resolve, reject) => { - request(ROUTES[API_V].register, { + let user = await request(ROUTES[API_V].register, { username, email, password, confirmPassword: password, - }).then((user) => { - _updateDocument('users', user, update, () => { - let apiUser = new ApiUser(user); - - resolve(apiUser); - }); - }).catch(reject); }); + + let apiUser = new ApiUser(user); + + await apiUser.update(update); + + return apiUser; } // Generates a new group. Requires a user object, which // will will become the groups leader. Takes an update // argument which will update group -export function generateGroup (leader, update = {}) { - let request = _requestMaker(leader, 'post'); +export async function generateGroup (leader, update = {}) { + let group = await leader.post('/groups'); + let apiGroup = new ApiGroup(group); - return new Promise((resolve, reject) => { - request('/groups').then((group) => { - _updateDocument('groups', group, update, () => { - resolve(group); - }).catch(reject); - }); - }); + await apiGroup.update(update); + + return apiGroup; } // This is generate group + the ability to create