From a9db392a617b736d567c2d5ca387b130c8f7142f Mon Sep 17 00:00:00 2001 From: Stephan Meijer Date: Fri, 4 Jul 2025 11:32:11 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(frontend)=20simplify=20Expre?= =?UTF-8?q?ss=20middleware?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Simplify the use of middleware in Express Signed-off-by: Stephan Meijer --- .../y-provider/__tests__/server.test.ts | 30 +++++++++---------- .../y-provider/src/servers/appServer.ts | 15 +++++----- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/src/frontend/servers/y-provider/__tests__/server.test.ts b/src/frontend/servers/y-provider/__tests__/server.test.ts index 23097df2..d98f9958 100644 --- a/src/frontend/servers/y-provider/__tests__/server.test.ts +++ b/src/frontend/servers/y-provider/__tests__/server.test.ts @@ -8,9 +8,15 @@ vi.mock('../src/env', async (importOriginal) => { return { ...(await importOriginal()), COLLABORATION_SERVER_ORIGIN: 'http://localhost:3000', + Y_PROVIDER_API_KEY: 'yprovider-api-key', }; }); +import { + Y_PROVIDER_API_KEY as apiKey, + COLLABORATION_SERVER_ORIGIN as origin, +} from '../src/env'; + console.error = vi.fn(); describe('Server Tests', () => { @@ -40,8 +46,10 @@ describe('Server Tests', () => { const largePayload = 'a'.repeat(400 * 1024); // 400kb payload const response = await request(app) .post(routes.CONVERT) - .send({ data: largePayload }) - .set('Content-Type', 'application/json'); + .set('Origin', origin) + .set('Authorization', apiKey) + .set('Content-Type', 'application/json') + .send({ data: largePayload }); expect(response.status).not.toBe(413); }); @@ -52,20 +60,10 @@ describe('Server Tests', () => { const oversizedPayload = 'a'.repeat(501 * 1024); // 501kb payload const response = await request(app) .post(routes.CONVERT) - .send({ data: oversizedPayload }) - .set('Content-Type', 'application/json'); - - expect(response.status).toBe(413); - }); - - it('uses the default JSON limit for other routes', async () => { - const app = initApp(); - - const largePayload = 'a'.repeat(150 * 1024); - const response = await request(app) - .post('/some-other-route') - .send({ data: largePayload }) - .set('Content-Type', 'application/json'); + .set('Origin', origin) + .set('Authorization', apiKey) + .set('Content-Type', 'application/json') + .send({ data: oversizedPayload }); expect(response.status).toBe(413); }); diff --git a/src/frontend/servers/y-provider/src/servers/appServer.ts b/src/frontend/servers/y-provider/src/servers/appServer.ts index 16d5fd4f..aca007fa 100644 --- a/src/frontend/servers/y-provider/src/servers/appServer.ts +++ b/src/frontend/servers/y-provider/src/servers/appServer.ts @@ -22,13 +22,6 @@ import { logger } from '@/utils'; export const initApp = () => { const { app } = expressWebsockets(express()); - app.use((req, res, next) => { - if (req.path === routes.CONVERT) { - // Large transcript files are bigger than the default '100kb' limit - return express.json({ limit: '500kb' })(req, res, next); - } - express.json()(req, res, next); - }); app.use(corsMiddleware); /** @@ -44,13 +37,19 @@ export const initApp = () => { app.post( routes.COLLABORATION_RESET_CONNECTIONS, httpSecurity, + express.json(), collaborationResetConnectionsHandler, ); /** * Route to convert Markdown or BlockNote blocks */ - app.post(routes.CONVERT, httpSecurity, convertHandler); + app.post( + routes.CONVERT, + httpSecurity, + express.json({ limit: '500kb' }), + convertHandler, + ); Sentry.setupExpressErrorHandler(app);