mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-28 05:37:34 +03:00
Extracted separate member agent test util
refs https://github.com/TryGhost/Toolbox/issues/214 - TestAgent was used to initialize both Admin & Member API agents, which is somewhat confusing because Member API does not have the same "loginAs" functionality like Admin API does - Having distinct agents for each API makes the class API cleaner with possibility to extract common functionality even further
This commit is contained in:
parent
9c5c41b927
commit
4b5852fab1
@ -14,7 +14,7 @@ const ownerUser = {
|
|||||||
* @param {String} options.apiURL
|
* @param {String} options.apiURL
|
||||||
* @param {String} options.originURL
|
* @param {String} options.originURL
|
||||||
*/
|
*/
|
||||||
class TestAgent extends Agent {
|
class AdminAPITestAgent extends Agent {
|
||||||
constructor(app, options) {
|
constructor(app, options) {
|
||||||
super(app, {
|
super(app, {
|
||||||
baseUrl: options.apiURL,
|
baseUrl: options.apiURL,
|
||||||
@ -53,4 +53,4 @@ class TestAgent extends Agent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = TestAgent;
|
module.exports = AdminAPITestAgent;
|
@ -27,7 +27,8 @@ const urlServiceUtils = require('./url-service-utils');
|
|||||||
const mockManager = require('./e2e-framework-mock-manager');
|
const mockManager = require('./e2e-framework-mock-manager');
|
||||||
|
|
||||||
const boot = require('../../core/boot');
|
const boot = require('../../core/boot');
|
||||||
const TestAgent = require('./test-agent');
|
const AdminAPITestAgent = require('./admin-api-test-agent');
|
||||||
|
const MembersAPITestAgent = require('./members-api-test-agent');
|
||||||
const db = require('./db-utils');
|
const db = require('./db-utils');
|
||||||
|
|
||||||
// Services that need resetting
|
// Services that need resetting
|
||||||
@ -161,7 +162,7 @@ const getAdminAPIAgent = async (options = {}) => {
|
|||||||
const app = await startGhost(bootOptions);
|
const app = await startGhost(bootOptions);
|
||||||
const originURL = configUtils.config.get('url');
|
const originURL = configUtils.config.get('url');
|
||||||
|
|
||||||
return new TestAgent(app, {
|
return new AdminAPITestAgent(app, {
|
||||||
apiURL: '/ghost/api/canary/admin/',
|
apiURL: '/ghost/api/canary/admin/',
|
||||||
originURL
|
originURL
|
||||||
});
|
});
|
||||||
@ -186,7 +187,7 @@ const getMembersAPIAgent = async () => {
|
|||||||
const app = await startGhost(bootOptions);
|
const app = await startGhost(bootOptions);
|
||||||
const originURL = configUtils.config.get('url');
|
const originURL = configUtils.config.get('url');
|
||||||
|
|
||||||
return new TestAgent(app, {
|
return new MembersAPITestAgent(app, {
|
||||||
apiURL: '/members/',
|
apiURL: '/members/',
|
||||||
originURL
|
originURL
|
||||||
});
|
});
|
||||||
@ -198,7 +199,7 @@ const getMembersAPIAgent = async () => {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @returns {Promise<{adminAgent: TestAgent, membersAgent: TestAgent}>} agent
|
* @returns {Promise<{adminAgent: AdminAPITestAgent, membersAgent: MembersAPITestAgent}>} agents
|
||||||
*/
|
*/
|
||||||
const getAgentsForMembers = async () => {
|
const getAgentsForMembers = async () => {
|
||||||
let membersAgent;
|
let membersAgent;
|
||||||
@ -212,11 +213,11 @@ const getAgentsForMembers = async () => {
|
|||||||
const app = await startGhost(bootOptions);
|
const app = await startGhost(bootOptions);
|
||||||
const originURL = configUtils.config.get('url');
|
const originURL = configUtils.config.get('url');
|
||||||
|
|
||||||
membersAgent = new TestAgent(app, {
|
membersAgent = new MembersAPITestAgent(app, {
|
||||||
apiURL: '/members/',
|
apiURL: '/members/',
|
||||||
originURL
|
originURL
|
||||||
});
|
});
|
||||||
adminAgent = new TestAgent(app, {
|
adminAgent = new AdminAPITestAgent(app, {
|
||||||
apiURL: '/ghost/api/canary/admin/',
|
apiURL: '/ghost/api/canary/admin/',
|
||||||
originURL
|
originURL
|
||||||
});
|
});
|
||||||
|
22
test/utils/members-api-test-agent.js
Normal file
22
test/utils/members-api-test-agent.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
const Agent = require('@tryghost/express-test');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @constructor
|
||||||
|
* @param {Object} app Ghost express app instance
|
||||||
|
* @param {Object} options
|
||||||
|
* @param {String} options.apiURL
|
||||||
|
* @param {String} options.originURL
|
||||||
|
*/
|
||||||
|
class MembersAPITestAgent extends Agent {
|
||||||
|
constructor(app, options) {
|
||||||
|
super(app, {
|
||||||
|
baseUrl: options.apiURL,
|
||||||
|
headers: {
|
||||||
|
host: options.originURL.replace(/http:\/\//, ''),
|
||||||
|
origin: options.originURL
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = MembersAPITestAgent;
|
Loading…
Reference in New Issue
Block a user