refactor(storage): use unstorage for session state
This commit is contained in:
@@ -35,34 +35,38 @@ describe("subscription exit helpers", () => {
|
||||
peekPendingChatUnlockMock.mockReset();
|
||||
});
|
||||
|
||||
it("uses explicit chat image return urls first", () => {
|
||||
consumePendingChatImageReturnMock.mockReturnValue({
|
||||
it("uses explicit chat image return urls first", async () => {
|
||||
consumePendingChatImageReturnMock.mockResolvedValue({
|
||||
reason: "image_paywall",
|
||||
messageId: "msg_1",
|
||||
returnUrl: "/chat/image/msg_1",
|
||||
createdAt: 1,
|
||||
});
|
||||
|
||||
expect(consumeSubscriptionExplicitExitUrl()).toBe("/chat/image/msg_1");
|
||||
await expect(consumeSubscriptionExplicitExitUrl()).resolves.toBe(
|
||||
"/chat/image/msg_1",
|
||||
);
|
||||
});
|
||||
|
||||
it("falls back to chat when requested", () => {
|
||||
consumePendingChatImageReturnMock.mockReturnValue(null);
|
||||
peekPendingChatUnlockMock.mockReturnValue(null);
|
||||
it("falls back to chat when requested", async () => {
|
||||
consumePendingChatImageReturnMock.mockResolvedValue(null);
|
||||
peekPendingChatUnlockMock.mockResolvedValue(null);
|
||||
|
||||
expect(consumeSubscriptionExitUrl("chat")).toBe(ROUTES.chat);
|
||||
await expect(consumeSubscriptionExitUrl("chat")).resolves.toBe(ROUTES.chat);
|
||||
});
|
||||
|
||||
it("falls back to sidebar by default", () => {
|
||||
consumePendingChatImageReturnMock.mockReturnValue(null);
|
||||
peekPendingChatUnlockMock.mockReturnValue(null);
|
||||
it("falls back to sidebar by default", async () => {
|
||||
consumePendingChatImageReturnMock.mockResolvedValue(null);
|
||||
peekPendingChatUnlockMock.mockResolvedValue(null);
|
||||
|
||||
expect(getSubscriptionFallbackExitUrl(null)).toBe(ROUTES.sidebar);
|
||||
expect(consumeSubscriptionExitUrl(null)).toBe(ROUTES.sidebar);
|
||||
await expect(consumeSubscriptionExitUrl(null)).resolves.toBe(
|
||||
ROUTES.sidebar,
|
||||
);
|
||||
});
|
||||
|
||||
it("peeks chat unlock return urls without clearing them", () => {
|
||||
peekPendingChatUnlockMock.mockReturnValue({
|
||||
it("peeks chat unlock return urls without clearing them", async () => {
|
||||
peekPendingChatUnlockMock.mockResolvedValue({
|
||||
reason: "single_message_unlock",
|
||||
messageId: "msg_1",
|
||||
kind: "image",
|
||||
@@ -71,13 +75,15 @@ describe("subscription exit helpers", () => {
|
||||
createdAt: 1,
|
||||
});
|
||||
|
||||
expect(peekSubscriptionExplicitExitUrl()).toBe("/chat/image/msg_1");
|
||||
await expect(peekSubscriptionExplicitExitUrl()).resolves.toBe(
|
||||
"/chat/image/msg_1",
|
||||
);
|
||||
expect(clearPendingChatUnlockMock).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("clears chat unlock return urls when consumed", () => {
|
||||
consumePendingChatImageReturnMock.mockReturnValue(null);
|
||||
peekPendingChatUnlockMock.mockReturnValue({
|
||||
it("clears chat unlock return urls when consumed", async () => {
|
||||
consumePendingChatImageReturnMock.mockResolvedValue(null);
|
||||
peekPendingChatUnlockMock.mockResolvedValue({
|
||||
reason: "single_message_unlock",
|
||||
messageId: "msg_1",
|
||||
kind: "image",
|
||||
@@ -86,7 +92,9 @@ describe("subscription exit helpers", () => {
|
||||
createdAt: 1,
|
||||
});
|
||||
|
||||
expect(consumeSubscriptionExplicitExitUrl()).toBe("/chat/image/msg_1");
|
||||
await expect(consumeSubscriptionExplicitExitUrl()).resolves.toBe(
|
||||
"/chat/image/msg_1",
|
||||
);
|
||||
expect(clearPendingChatUnlockMock).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user