From 6a92e826fdf6ab69985bed9e82b7559387183cfc Mon Sep 17 00:00:00 2001 From: Budleigh Salterton Date: Fri, 2 Jun 2023 11:50:53 +0000 Subject: [PATCH 1/3] Add failing test --- packages/api-server/test/rest-methods.spec.ts | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/packages/api-server/test/rest-methods.spec.ts b/packages/api-server/test/rest-methods.spec.ts index a8c366cb5..64a25fa26 100644 --- a/packages/api-server/test/rest-methods.spec.ts +++ b/packages/api-server/test/rest-methods.spec.ts @@ -73,6 +73,49 @@ noGHTest("Get works when we have content", async t => { t.is(fullBody, "{\"healthy\":true}", "Data retrieved"); }); +noGHTest("Get works with spaces and strange chars", async t => { + const endpoints = [ + "/abc", + "/abc+", + "/abc ", + "/abc śź", + "/abc %0", + "/abc \0", + "/abc \t", + "/abc abc", + "/abc+abc", + "/abc%20abc", + "/abc\nabc", + "/abc'\"abc" + ]; + + const monitorEndpoint = (name: string) => { + const out: { received: number, url?: string } = { received: 0 }; + + api.get(name, (message) => { + out.received++; + out.url = message.url; + return "OK"; + }); + return out; + }; + + const makeRequest = async (name: string) => { + const { request, response } = mockRequestResponse("GET", name); + + server.request(request, response); + + return [await response.fullBody, response.statusCode, name]; + }; + + const srvSide = endpoints.map(monitorEndpoint); + + const cliSide = await Promise.all(endpoints.map(makeRequest)); + + t.deepEqual(endpoints.map((name) => ["\"OK\"", 200, name]), cliSide); + t.deepEqual(endpoints.map((name) => ({ received: 1, url: name })), srvSide); +}); + noGHTest("Op fails with bad and works with good content type", async t => { let hadKilled = false; From 1ca7f928f7b94cedb5821c61efbddab2122df394 Mon Sep 17 00:00:00 2001 From: Budleigh Salterton Date: Fri, 2 Jun 2023 11:59:40 +0000 Subject: [PATCH 2/3] Make test run on github --- packages/api-server/test/rest-methods.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api-server/test/rest-methods.spec.ts b/packages/api-server/test/rest-methods.spec.ts index 64a25fa26..f36441a51 100644 --- a/packages/api-server/test/rest-methods.spec.ts +++ b/packages/api-server/test/rest-methods.spec.ts @@ -52,7 +52,7 @@ skip("Get works on empty response", async t => { t.is(response.statusCode, 204, "No content"); }); -noGHTest("Get works when we have content", async t => { +test("Get works when we have content", async t => { const { request, response } = mockRequestResponse("GET", "/api/get"); api.get("/api/get", RunnerMessageCode.MONITORING, comm); From 489d81f624d5c29331db613b1e771d6a2fd550fc Mon Sep 17 00:00:00 2001 From: Budleigh Salterton Date: Mon, 8 Jan 2024 13:52:48 +0000 Subject: [PATCH 3/3] Turn on gh test --- packages/api-server/test/rest-methods.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api-server/test/rest-methods.spec.ts b/packages/api-server/test/rest-methods.spec.ts index f36441a51..7b6e48a49 100644 --- a/packages/api-server/test/rest-methods.spec.ts +++ b/packages/api-server/test/rest-methods.spec.ts @@ -73,7 +73,7 @@ test("Get works when we have content", async t => { t.is(fullBody, "{\"healthy\":true}", "Data retrieved"); }); -noGHTest("Get works with spaces and strange chars", async t => { +test("Get works with spaces and strange chars", async t => { const endpoints = [ "/abc", "/abc+",