0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00

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
This commit is contained in:
kirrg001 2018-10-05 14:33:46 +02:00 committed by Katharina Irrgang
parent 082410f6bb
commit c94c08f750
19 changed files with 48 additions and 37 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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');
});
});

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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);
}
};

View file

@ -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;

View file

@ -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',