feat: add logto auth and backend metrics integration
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import { describe, expect, test, vi } from "vitest";
|
||||
|
||||
import { createLogtoAuthClient } from "../src/background/auth/client";
|
||||
|
||||
vi.mock("@logto/chrome-extension", () => {
|
||||
const signIn = vi.fn(async () => undefined);
|
||||
const signOut = vi.fn(async () => undefined);
|
||||
const MockLogtoClient = vi.fn(function MockLogtoClient() {
|
||||
return {
|
||||
getAccessToken: vi.fn(async () => "token"),
|
||||
getIdTokenClaims: vi.fn(async () => null),
|
||||
isAuthenticated: vi.fn(async () => false),
|
||||
signIn,
|
||||
signOut
|
||||
};
|
||||
});
|
||||
|
||||
return {
|
||||
default: MockLogtoClient
|
||||
};
|
||||
});
|
||||
|
||||
describe("background-auth-client", () => {
|
||||
test("uses chrome identity redirect URLs for sign in and sign out", async () => {
|
||||
const getRedirectURL = vi.fn((path?: string) =>
|
||||
path ? `https://extension.chromiumapp.org${path}` : "https://extension.chromiumapp.org/"
|
||||
);
|
||||
|
||||
(
|
||||
globalThis as typeof globalThis & {
|
||||
chrome?: {
|
||||
identity?: {
|
||||
getRedirectURL?: (path?: string) => string;
|
||||
};
|
||||
};
|
||||
}
|
||||
).chrome = {
|
||||
identity: {
|
||||
getRedirectURL
|
||||
}
|
||||
};
|
||||
|
||||
const authClient = createLogtoAuthClient();
|
||||
await authClient.signIn();
|
||||
await authClient.signOut();
|
||||
|
||||
expect(getRedirectURL).toHaveBeenNthCalledWith(1, "/callback");
|
||||
expect(getRedirectURL).toHaveBeenNthCalledWith(2);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user