From 791b8c8707000af2d89f5896ed51e2fd4a04335e Mon Sep 17 00:00:00 2001 From: Christian Foidl Date: Tue, 19 Sep 2023 16:17:48 +0200 Subject: [PATCH] feat(core): #59 implement unsetAuth method --- packages/core/src/Drupalkit.ts | 9 +++++++++ packages/core/tests/requests.test.ts | 18 +++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/packages/core/src/Drupalkit.ts b/packages/core/src/Drupalkit.ts index f8d3120..0ba76d3 100644 --- a/packages/core/src/Drupalkit.ts +++ b/packages/core/src/Drupalkit.ts @@ -206,6 +206,15 @@ export class Drupalkit { return !!this.auth; } + /** + * Unsets previously set auth info. + * + * Makes sure that subsequent requests are anonymous. + */ + public unsetAuth() { + this.auth = undefined; + } + /** * Set the locale. * diff --git a/packages/core/tests/requests.test.ts b/packages/core/tests/requests.test.ts index b13aaf4..af6a6d6 100644 --- a/packages/core/tests/requests.test.ts +++ b/packages/core/tests/requests.test.ts @@ -202,7 +202,7 @@ test.serial("Execute hooks", async (t) => { }); test.serial("Add auth header if present", async (t) => { - t.plan(2); + t.plan(3); const authHeaderValue = "Bearer 00000"; server.use( @@ -238,6 +238,22 @@ test.serial("Add auth header if present", async (t) => { method: "GET", unauthenticated: true, }); + + // Unset auth. + drupalkit.unsetAuth(); + + server.resetHandlers(); + server.use( + rest.get("*/demo-endpoint", (req, res) => { + t.is(req.headers.get("authorization"), null); + + res.once(); + }), + ); + + await drupalkit.request("/demo-endpoint", { + method: "GET", + }); }); test.serial("Handle network errors", async (t) => {