Skip to content

Commit 6e2399f

Browse files
committed
feat: add clearActiveStorage and tests
1 parent 05e7203 commit 6e2399f

File tree

4 files changed

+63
-0
lines changed

4 files changed

+63
-0
lines changed

lib/main.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ describe("index exports", () => {
5050
// token utils
5151
"getActiveStorage",
5252
"hasActiveStorage",
53+
"clearActiveStorage",
5354
"getClaim",
5455
"getClaims",
5556
"getCurrentOrganization",

lib/utils/generateAuthUrl.test.ts

+35
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { describe, it, expect } from "vitest";
22
import { IssuerRouteTypes, LoginOptions, Scopes } from "../types";
33
import { generateAuthUrl } from "./generateAuthUrl";
4+
import { MemoryStorage, StorageKeys } from "../sessionManager";
5+
import { setActiveStorage } from "./token";
46

57
describe("generateAuthUrl", () => {
68
it("should generate the correct auth URL with required parameters", async () => {
@@ -121,4 +123,37 @@ describe("generateAuthUrl", () => {
121123
result.url.searchParams.delete("state");
122124
expect(result.url.toString()).toBe(expectedUrl);
123125
});
126+
127+
it("should update state when active state found", async () => {
128+
129+
const store = new MemoryStorage();
130+
setActiveStorage(store);
131+
132+
const domain = "https://auth.example.com";
133+
const options: LoginOptions = {
134+
clientId: "client123",
135+
responseType: "code",
136+
scope: [Scopes.openid, Scopes.profile],
137+
loginHint: "[email protected]",
138+
isCreateOrg: true,
139+
connectionId: "conn123",
140+
redirectURL: "https://example.com",
141+
audience: "audience123",
142+
prompt: "login",
143+
};
144+
145+
await generateAuthUrl(
146+
domain,
147+
IssuerRouteTypes.login,
148+
options,
149+
);
150+
151+
const state = await store.getSessionItem(StorageKeys.state)
152+
const nonce = await store.getSessionItem(StorageKeys.nonce)
153+
const codeVerifier = await store.getSessionItem(StorageKeys.state)
154+
155+
expect(state).toBeDefined();
156+
expect(nonce).toBeDefined();
157+
expect(codeVerifier).toBeDefined();
158+
});
124159
});

lib/utils/token/index.test.ts

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { describe, expect, it, beforeEach, vi } from "vitest";
2+
import { MemoryStorage } from "../../sessionManager";
3+
import { getActiveStorage, hasActiveStorage, setActiveStorage, clearActiveStorage } from ".";
4+
5+
describe("token index", () => {
6+
it("hasActiveStorage", async () => {
7+
const storage = new MemoryStorage();
8+
setActiveStorage(storage);
9+
expect(hasActiveStorage()).toStrictEqual(true);
10+
11+
});
12+
});
13+
14+
describe("token index", () => {
15+
it("hasActiveStorage when not set", async () => {
16+
clearActiveStorage();
17+
console.log(getActiveStorage());
18+
expect(hasActiveStorage()).toStrictEqual(false);
19+
});
20+
});
21+

lib/utils/token/index.ts

+6
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,16 @@ const hasActiveStorage = (): boolean => {
3939
return storage.value !== null;
4040
};
4141

42+
const clearActiveStorage = (): void => {
43+
storage.value = null
44+
};
45+
46+
4247
export {
4348
setActiveStorage,
4449
getActiveStorage,
4550
hasActiveStorage,
51+
clearActiveStorage,
4652
getClaim,
4753
getClaims,
4854
getCurrentOrganization,

0 commit comments

Comments
 (0)