From 81c5dca2ff5e3dac321f04995d1c402c2dded00a Mon Sep 17 00:00:00 2001 From: Ruben Vallejo Date: Tue, 31 Jan 2023 17:29:32 -0500 Subject: [PATCH] Passing post proxy unit tests, proxy now supports write operations Signed-off-by: Ruben Vallejo --- .../src/service/KubernetesBuilder.test.ts | 47 +++++++------------ .../src/service/KubernetesBuilder.ts | 3 +- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesBuilder.test.ts b/plugins/kubernetes-backend/src/service/KubernetesBuilder.test.ts index 5e0caaf6a5..cc2dea26c0 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesBuilder.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesBuilder.test.ts @@ -276,6 +276,21 @@ describe('KubernetesBuilder', () => { const worker = setupServer(); setupRequestMockHandlers(worker); + beforeEach(() => { + worker.use( + rest.post('https://localhost:1234/api/v1/namespaces', (req, res, ctx) => + req + .arrayBuffer() + .then(body => + res( + ctx.set('content-type', `${req.headers.get('content-type')}`), + ctx.body(body), + ), + ), + ), + ); + }); + it('returns the given request body', async () => { const requestBody = { kind: 'Namespace', @@ -290,21 +305,7 @@ describe('KubernetesBuilder', () => { .set(HEADER_KUBERNETES_CLUSTER, 'some-cluster') .send(requestBody); - worker.use( - rest.post('https://localhost:1234/api/v1/namespaces', (req, res, ctx) => - req - .arrayBuffer() - .then(body => - res( - ctx.set('content-type', `${req.headers.get('content-type')}`), - ctx.body(body), - ), - ), - ), - rest.all(proxyEndpointRequest.url, (req, _res, _ctx) => - req.passthrough(), - ), - ); + worker.use(rest.all(proxyEndpointRequest.url, req => req.passthrough())); const response = await proxyEndpointRequest; @@ -325,21 +326,7 @@ metadata: .set('content-type', 'application/yaml') .send(requestBody); - worker.use( - rest.post('https://localhost:1234/api/v1/namespaces', (req, res, ctx) => - req - .arrayBuffer() - .then(body => - res( - ctx.set('content-type', `${req.headers.get('content-type')}`), - ctx.body(body), - ), - ), - ), - rest.all(proxyEndpointRequest.url, (req, _res, _ctx) => - req.passthrough(), - ), - ); + worker.use(rest.all(proxyEndpointRequest.url, req => req.passthrough())); const response = await proxyEndpointRequest; expect(response.text).toEqual(requestBody); diff --git a/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts b/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts index 1e7b704ec5..92773ece6d 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts @@ -265,6 +265,7 @@ export class KubernetesBuilder { ): express.Router { const logger = this.env.logger; const router = Router(); + router.use('/proxy', proxy.createRequestHandler()); router.use(express.json()); // @deprecated @@ -297,8 +298,6 @@ export class KubernetesBuilder { }); }); - router.use('/proxy', proxy.createRequestHandler()); - addResourceRoutesToRouter(router, catalogApi, objectsProvider); return router;