From c94c08f7503920498b918a0ae7547542cd802f01 Mon Sep 17 00:00:00 2001 From: kirrg001 Date: Fri, 5 Oct 2018 14:33:46 +0200 Subject: [PATCH] Wrapped `doAuth` in local API utils refs #9866 - we want to keep shared API helpers - the local utility just wraps this call and forwards the correct url - ability to override the behaviour completely --- .../routes/api/authentication_spec.js | 2 +- .../routes/api/configuration_spec.js | 2 +- core/test/functional/routes/api/db_spec.js | 2 +- core/test/functional/routes/api/error_spec.js | 2 +- .../routes/api/notifications_spec.js | 2 +- core/test/functional/routes/api/oembed_spec.js | 2 +- core/test/functional/routes/api/posts_spec.js | 6 +++--- .../functional/routes/api/public_api_spec.js | 2 +- .../functional/routes/api/redirects_spec.js | 6 +++--- .../functional/routes/api/settings_spec.js | 2 +- core/test/functional/routes/api/slugs_spec.js | 2 +- core/test/functional/routes/api/tags_spec.js | 2 +- core/test/functional/routes/api/themes_spec.js | 6 +++--- .../functional/routes/api/upload_icon_spec.js | 2 +- core/test/functional/routes/api/upload_spec.js | 2 +- core/test/functional/routes/api/users_spec.js | 12 ++++++------ core/test/functional/routes/api/utils.js | 11 ++++++++++- .../functional/routes/api/webhooks_spec.js | 2 +- core/test/utils/index.js | 18 ++++++++++-------- 19 files changed, 48 insertions(+), 37 deletions(-) diff --git a/core/test/functional/routes/api/authentication_spec.js b/core/test/functional/routes/api/authentication_spec.js index e7265e0370..79e2700b08 100644 --- a/core/test/functional/routes/api/authentication_spec.js +++ b/core/test/functional/routes/api/authentication_spec.js @@ -22,7 +22,7 @@ describe('Authentication API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/configuration_spec.js b/core/test/functional/routes/api/configuration_spec.js index fff5a2fdae..85767ac19b 100644 --- a/core/test/functional/routes/api/configuration_spec.js +++ b/core/test/functional/routes/api/configuration_spec.js @@ -16,7 +16,7 @@ describe('Configuration API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/db_spec.js b/core/test/functional/routes/api/db_spec.js index b3c2be1796..8a8b5eece2 100644 --- a/core/test/functional/routes/api/db_spec.js +++ b/core/test/functional/routes/api/db_spec.js @@ -24,7 +24,7 @@ describe('DB API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/error_spec.js b/core/test/functional/routes/api/error_spec.js index 441d880d2b..5942c724c8 100644 --- a/core/test/functional/routes/api/error_spec.js +++ b/core/test/functional/routes/api/error_spec.js @@ -71,7 +71,7 @@ describe('Authorized API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/notifications_spec.js b/core/test/functional/routes/api/notifications_spec.js index 66db84b437..21c0bfb38e 100644 --- a/core/test/functional/routes/api/notifications_spec.js +++ b/core/test/functional/routes/api/notifications_spec.js @@ -16,7 +16,7 @@ describe('Notifications API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/oembed_spec.js b/core/test/functional/routes/api/oembed_spec.js index 47470c479d..ef30b974ce 100644 --- a/core/test/functional/routes/api/oembed_spec.js +++ b/core/test/functional/routes/api/oembed_spec.js @@ -17,7 +17,7 @@ describe('Oembed API', function () { request = supertest.agent(config.get('url')); }) .then(() => { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then((token) => { accesstoken = token; diff --git a/core/test/functional/routes/api/posts_spec.js b/core/test/functional/routes/api/posts_spec.js index e5792f8b93..e1eee73563 100644 --- a/core/test/functional/routes/api/posts_spec.js +++ b/core/test/functional/routes/api/posts_spec.js @@ -23,7 +23,7 @@ describe('Post API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request, 'users:extra', 'posts'); + return localUtils.doAuth(request, 'users:extra', 'posts'); }) .then(function (token) { ownerAccessToken = token; @@ -1446,7 +1446,7 @@ describe('Post API', function () { }) .then(function (_author) { request.user = author = _author; - return testUtils.doAuth(request, 'posts'); + return localUtils.doAuth(request, 'posts'); }) .then(function (token) { authorAccessToken = token; @@ -1586,7 +1586,7 @@ describe('Post API', function () { }) .then(function (_contributor) { request.user = contributor = _contributor; - return testUtils.doAuth(request, 'posts'); + return localUtils.doAuth(request, 'posts'); }) .then(function (token) { contributorAccessToken = token; diff --git a/core/test/functional/routes/api/public_api_spec.js b/core/test/functional/routes/api/public_api_spec.js index 2929daaf7c..e4ed24a82c 100644 --- a/core/test/functional/routes/api/public_api_spec.js +++ b/core/test/functional/routes/api/public_api_spec.js @@ -21,7 +21,7 @@ describe('Public API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request, 'users:no-owner', 'posts', 'tags:extra', 'client:trusted-domain'); + return localUtils.doAuth(request, 'users:no-owner', 'posts', 'tags:extra', 'client:trusted-domain'); }); }); diff --git a/core/test/functional/routes/api/redirects_spec.js b/core/test/functional/routes/api/redirects_spec.js index 65f0a9b2c2..4fc27b75fa 100644 --- a/core/test/functional/routes/api/redirects_spec.js +++ b/core/test/functional/routes/api/redirects_spec.js @@ -27,7 +27,7 @@ describe('Redirects API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request, 'client:trusted-domain'); + return localUtils.doAuth(request, 'client:trusted-domain'); }) .then(function (token) { accesstoken = token; @@ -90,7 +90,7 @@ describe('Redirects API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request, 'client:trusted-domain'); + return localUtils.doAuth(request, 'client:trusted-domain'); }) .then(function (token) { accesstoken = token; @@ -218,7 +218,7 @@ describe('Redirects API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request, 'client:trusted-domain'); + return localUtils.doAuth(request, 'client:trusted-domain'); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/settings_spec.js b/core/test/functional/routes/api/settings_spec.js index 3011160e1f..a717023335 100644 --- a/core/test/functional/routes/api/settings_spec.js +++ b/core/test/functional/routes/api/settings_spec.js @@ -19,7 +19,7 @@ describe('Settings API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/slugs_spec.js b/core/test/functional/routes/api/slugs_spec.js index f41e409753..1558a4ae04 100644 --- a/core/test/functional/routes/api/slugs_spec.js +++ b/core/test/functional/routes/api/slugs_spec.js @@ -16,7 +16,7 @@ describe('Slug API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/tags_spec.js b/core/test/functional/routes/api/tags_spec.js index daf354f69b..5b516c6a99 100644 --- a/core/test/functional/routes/api/tags_spec.js +++ b/core/test/functional/routes/api/tags_spec.js @@ -16,7 +16,7 @@ describe('Tag API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request, 'posts'); + return localUtils.doAuth(request, 'posts'); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/themes_spec.js b/core/test/functional/routes/api/themes_spec.js index 2c818dc804..fb1f9fcc69 100644 --- a/core/test/functional/routes/api/themes_spec.js +++ b/core/test/functional/routes/api/themes_spec.js @@ -34,7 +34,7 @@ describe('Themes API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { scope.ownerAccessToken = token; @@ -48,7 +48,7 @@ describe('Themes API', function () { scope.editor = user; request.user = scope.editor; - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { scope.editorAccessToken = token; @@ -62,7 +62,7 @@ describe('Themes API', function () { scope.author = user; request.user = scope.author; - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { scope.authorAccessToken = token; diff --git a/core/test/functional/routes/api/upload_icon_spec.js b/core/test/functional/routes/api/upload_icon_spec.js index 96d7b17bce..a4c8abe266 100644 --- a/core/test/functional/routes/api/upload_icon_spec.js +++ b/core/test/functional/routes/api/upload_icon_spec.js @@ -18,7 +18,7 @@ describe('Upload Icon API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/upload_spec.js b/core/test/functional/routes/api/upload_spec.js index 88084aefc7..a7a43b253c 100644 --- a/core/test/functional/routes/api/upload_spec.js +++ b/core/test/functional/routes/api/upload_spec.js @@ -20,7 +20,7 @@ describe('Upload API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { accesstoken = token; diff --git a/core/test/functional/routes/api/users_spec.js b/core/test/functional/routes/api/users_spec.js index 53fc7d9409..c3232dd6da 100644 --- a/core/test/functional/routes/api/users_spec.js +++ b/core/test/functional/routes/api/users_spec.js @@ -50,19 +50,19 @@ describe('User API', function () { inactiveUser = _user3; // by default we login with the owner - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { ownerAccessToken = token; request.user = editor; - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { editorAccessToken = token; request.user = author; - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { authorAccessToken = token; @@ -592,19 +592,19 @@ describe('User API', function () { inactiveUser = _user3; // by default we login with the owner - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { ownerAccessToken = token; request.user = editor; - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { editorAccessToken = token; request.user = author; - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { authorAccessToken = token; diff --git a/core/test/functional/routes/api/utils.js b/core/test/functional/routes/api/utils.js index 5b1b272144..d83b61d30c 100644 --- a/core/test/functional/routes/api/utils.js +++ b/core/test/functional/routes/api/utils.js @@ -1,9 +1,18 @@ const url = require('url'); +const _ = require('lodash'); +const testUtils = require('../../../utils'); +const API_URL = '/ghost/api/v0.1/'; module.exports = { API: { getApiQuery(route) { - return url.resolve('/ghost/api/v0.1/', route); + return url.resolve(API_URL, route); } + }, + + doAuth() { + const args = Array.prototype.slice.call(arguments); + args.unshift(`${API_URL}authentication/token/`); + return testUtils.doAuth.apply(null, args); } }; diff --git a/core/test/functional/routes/api/webhooks_spec.js b/core/test/functional/routes/api/webhooks_spec.js index 29078d830c..11724b9100 100644 --- a/core/test/functional/routes/api/webhooks_spec.js +++ b/core/test/functional/routes/api/webhooks_spec.js @@ -18,7 +18,7 @@ describe('Webhooks API', function () { request = supertest.agent(config.get('url')); }) .then(function () { - return testUtils.doAuth(request); + return localUtils.doAuth(request); }) .then(function (token) { ownerAccessToken = token; diff --git a/core/test/utils/index.js b/core/test/utils/index.js index 729087e15f..073e347cb0 100644 --- a/core/test/utils/index.js +++ b/core/test/utils/index.js @@ -728,7 +728,7 @@ setup = function setup() { }; }; -// ## Functions for Route Tests (!!) +// ## Shared functions for Routing Tests /** * This function manages the work of ensuring we have an overridden owner user, and grabbing an access token @@ -736,12 +736,14 @@ setup = function setup() { */ // TODO make this do the DB init as well doAuth = function doAuth() { - var options = arguments, - request = arguments[0], - fixtureOps; + let API_URL = arguments[0]; + let request = arguments[1]; + let options = arguments; + let fixtureOps; - // Remove request from this list + // Remove API_URL & request from this list delete options[0]; + delete options[1]; // No DB setup, but override the owner options = _.merge({'owner:post': true}, _.transform(options, function (result, val) { @@ -753,7 +755,7 @@ doAuth = function doAuth() { fixtureOps = getFixtureOps(options); return sequence(fixtureOps).then(function () { - return login(request); + return login(request, API_URL); }); }; @@ -784,14 +786,14 @@ createPost = function createPost(options) { return models.Post.add(post, module.exports.context.internal); }; -login = function login(request) { +login = function login(request, API_URL) { // CASE: by default we use the owner to login if (!request.user) { request.user = DataGenerator.Content.users[0]; } return new Promise(function (resolve, reject) { - request.post('/ghost/api/v0.1/authentication/token/') + request.post(API_URL) .set('Origin', config.get('url')) .send({ grant_type: 'password',