From 2dbbca9df5f063b5ee781f47206835f211949d11 Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Fri, 3 May 2024 11:29:02 +0200 Subject: [PATCH] Fix: supports any kind of text/turtle response --- .../src/requester/requests/readResource.ts | 2 +- packages/solid/test/Integration.test.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/solid/src/requester/requests/readResource.ts b/packages/solid/src/requester/requests/readResource.ts index fbfb4db..74c6b2c 100644 --- a/packages/solid/src/requester/requests/readResource.ts +++ b/packages/solid/src/requester/requests/readResource.ts @@ -124,7 +124,7 @@ export async function readResource( ); } - if (contentType === "text/turtle") { + if (contentType.startsWith("text/turtle")) { // Parse Turtle const rawTurtle = await response.text(); if (options?.dataset) { diff --git a/packages/solid/test/Integration.test.ts b/packages/solid/test/Integration.test.ts index 1b3b625..127acbd 100644 --- a/packages/solid/test/Integration.test.ts +++ b/packages/solid/test/Integration.test.ts @@ -385,6 +385,24 @@ describe("Integration", () => { ); }); + it("Parses Turtle even when the content type contains parameters", async () => { + fetchMock.mockResolvedValueOnce( + new Response(SPIDER_MAN_TTL, { + status: 200, + headers: new Headers({ "content-type": "text/turtle;charset=utf-8" }), + }), + ); + const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI); + const result = await testRequestLoads(() => resource.read(), resource, { + isLoading: true, + isReading: true, + isDoingInitialFetch: true, + }); + expect(result.isError).toBe(false); + if (result.isError) return; + expect(result.type).toBe("dataReadSuccess"); + }); + it("Returns an UnexpectedResourceError if an unknown error is triggered", async () => { fetchMock.mockRejectedValueOnce(new Error("Something happened.")); const resource = solidLdoDataset.getResource(SAMPLE2_DATA_URI);