From d1cc6ed88d7b70dfba5654c9e3e11b2bc7728730 Mon Sep 17 00:00:00 2001 From: garronej Date: Sun, 16 Apr 2023 03:00:03 +0200 Subject: [PATCH] Smarter getKcContext typing --- src/account/kcContext/createGetKcContext.ts | 4 ++-- src/login/kcContext/createGetKcContext.ts | 4 ++-- test/lib/createGetKcContext.spec.ts | 12 ++++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/account/kcContext/createGetKcContext.ts b/src/account/kcContext/createGetKcContext.ts index 1431d773..3df844cd 100644 --- a/src/account/kcContext/createGetKcContext.ts +++ b/src/account/kcContext/createGetKcContext.ts @@ -15,11 +15,11 @@ export function createGetKcContext["pageId"]>(params?: { + function getKcContext["pageId"] | undefined = undefined>(params?: { mockPageId?: PageId; storyParams?: DeepPartial, { pageId: PageId }>>; }): { - kcContext: ExtendKcContext["pageId"] extends PageId + kcContext: PageId extends undefined ? ExtendKcContext | undefined : Extract, { pageId: PageId }>; } { diff --git a/src/login/kcContext/createGetKcContext.ts b/src/login/kcContext/createGetKcContext.ts index a90d2463..c26d3f2a 100644 --- a/src/login/kcContext/createGetKcContext.ts +++ b/src/login/kcContext/createGetKcContext.ts @@ -18,11 +18,11 @@ export function createGetKcContext["pageId"]>(params?: { + function getKcContext["pageId"] | undefined = undefined>(params?: { mockPageId?: PageId; storyParams?: DeepPartial, { pageId: PageId }>>; }): { - kcContext: ExtendKcContext["pageId"] extends PageId + kcContext: PageId extends undefined ? ExtendKcContext | undefined : Extract, { pageId: PageId }>; } { diff --git a/test/lib/createGetKcContext.spec.ts b/test/lib/createGetKcContext.spec.ts index a31250ec..721dcad4 100644 --- a/test/lib/createGetKcContext.spec.ts +++ b/test/lib/createGetKcContext.spec.ts @@ -258,4 +258,16 @@ describe("createGetKcContext", () => { assert>(); }); + + it("no undefined as long as we provide a mock pageId", () => { + const { getKcContext } = createGetKcContext(); + + const mockPageId: KcContext["pageId"] = "login.ftl" as any; + + const { kcContext } = getKcContext({ + mockPageId + }); + + assert>(); + }); });