From 58dde6837f7ea3d0ce6d185166fdfa3879516a7d Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Thu, 2 Sep 2021 10:40:16 +0200 Subject: [PATCH] use proxy and router prefix config in server --- .../controllers/__tests__/admin.test.js | 10 ++++---- .../strapi/lib/core/registries/plugins.js | 4 ++-- .../session/__tests__/session.test.js | 7 ++++-- packages/core/strapi/lib/server.js | 23 ++++++++----------- .../services/metrics/__tests__/index.test.js | 8 +++---- .../router => }/utils/compose-endpoint.js | 0 6 files changed, 26 insertions(+), 26 deletions(-) rename packages/core/strapi/lib/{middlewares/router => }/utils/compose-endpoint.js (100%) diff --git a/packages/core/admin/server/controllers/__tests__/admin.test.js b/packages/core/admin/server/controllers/__tests__/admin.test.js index 41addef785..e1d8e5202f 100644 --- a/packages/core/admin/server/controllers/__tests__/admin.test.js +++ b/packages/core/admin/server/controllers/__tests__/admin.test.js @@ -52,15 +52,13 @@ describe('Admin Controller', () => { describe('information', () => { beforeAll(() => { global.strapi = { - app: { - env: 'development', - }, config: { get: jest.fn( (key, value) => ({ autoReload: undefined, 'info.strapi': '1.0.0', + environment: 'development', }[key] || value) ), }, @@ -71,7 +69,11 @@ describe('Admin Controller', () => { test('Returns application information', async () => { const result = await adminController.information(); - expect(global.strapi.config.get).toHaveBeenCalledTimes(2); + expect(global.strapi.config.get.mock.calls).toEqual([ + ['environment'], + ['autoReload', false], + ['info.strapi', null], + ]); expect(result.data).toBeDefined(); expect(result.data).toStrictEqual({ currentEnvironment: 'development', diff --git a/packages/core/strapi/lib/core/registries/plugins.js b/packages/core/strapi/lib/core/registries/plugins.js index 1db3dcb2bd..d2c68bfb85 100644 --- a/packages/core/strapi/lib/core/registries/plugins.js +++ b/packages/core/strapi/lib/core/registries/plugins.js @@ -17,8 +17,8 @@ const pluginsRegistry = strapi => { throw new Error(`Plugin ${name} has already been registered.`); } - const moduleInstance = strapi.container.get('modules').add(`plugin::${name}`, pluginConfig); - plugins[name] = moduleInstance; + const pluginModule = strapi.container.get('modules').add(`plugin::${name}`, pluginConfig); + plugins[name] = pluginModule; return plugins[name]; }, diff --git a/packages/core/strapi/lib/middlewares/session/__tests__/session.test.js b/packages/core/strapi/lib/middlewares/session/__tests__/session.test.js index 08b1377f7a..01d253da61 100644 --- a/packages/core/strapi/lib/middlewares/session/__tests__/session.test.js +++ b/packages/core/strapi/lib/middlewares/session/__tests__/session.test.js @@ -27,9 +27,12 @@ describe('Session middleware', () => { ); const mockStrapi = { - app: { + server: { + app: { + use: jest.fn(), + context: {}, + }, use: jest.fn(), - context: {}, }, config: { appPath: __dirname, diff --git a/packages/core/strapi/lib/server.js b/packages/core/strapi/lib/server.js index 28a7c4a383..7047eb069d 100644 --- a/packages/core/strapi/lib/server.js +++ b/packages/core/strapi/lib/server.js @@ -6,7 +6,7 @@ const Router = require('@koa/router'); const { createHTTPServer } = require('./http-server'); -const createEndpointComposer = require('./middlewares/router/utils/compose-endpoint'); +const createEndpointComposer = require('./utils/compose-endpoint'); const createRouteManager = strapi => { const composeEndpoint = createEndpointComposer(strapi); @@ -80,13 +80,14 @@ const healthCheck = async (ctx, next) => { * @returns {Server} */ const createServer = strapi => { - // TODO: set root level prefix - // strapi.router.prefix(strapi.config.get('middleware.settings.router.prefix', '')); + const app = new Koa({ + proxy: strapi.config.get('server.proxy'), + }); - const app = new Koa(); - const router = new Router(); - - app.proxy = strapi.config.get('server.proxy'); + const router = new Router({ + // FIXME: this prefix can break the admin if not specified in the admin url + prefix: strapi.config.get('middleware.settings.router.prefix', ''), + }); const routeManager = createRouteManager(strapi); @@ -94,7 +95,7 @@ const createServer = strapi => { const apis = { admin: createAPI(strapi, { prefix: '/admin' }), - // set prefix to api + // TODO: set prefix to api 'content-api': createAPI(strapi), }; @@ -113,12 +114,6 @@ const createServer = strapi => { return apis[name]; }, - /** - * Add a middleware to the main koa app or an api - * @param {string|function} path - * @param {function} fn - * @returns {Server} - */ use(path, fn) { if (typeof path === 'function') { app.use(path); diff --git a/packages/core/strapi/lib/services/metrics/__tests__/index.test.js b/packages/core/strapi/lib/services/metrics/__tests__/index.test.js index e9f3a8fec2..c94803878c 100644 --- a/packages/core/strapi/lib/services/metrics/__tests__/index.test.js +++ b/packages/core/strapi/lib/services/metrics/__tests__/index.test.js @@ -21,7 +21,7 @@ describe('metrics', () => { strapi: '0.0.0', }, }, - app: { + server: { use, }, }); @@ -43,7 +43,7 @@ describe('metrics', () => { strapi: '0.0.0', }, }, - app: { + server: { use, }, }); @@ -63,7 +63,7 @@ describe('metrics', () => { strapi: '0.0.0', }, }, - app: { + server: { use() {}, }, }); @@ -96,7 +96,7 @@ describe('metrics', () => { strapi: '0.0.0', }, }, - app: { + server: { use() {}, }, }); diff --git a/packages/core/strapi/lib/middlewares/router/utils/compose-endpoint.js b/packages/core/strapi/lib/utils/compose-endpoint.js similarity index 100% rename from packages/core/strapi/lib/middlewares/router/utils/compose-endpoint.js rename to packages/core/strapi/lib/utils/compose-endpoint.js