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);