48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
// @vitest-environment jsdom
|
|
// @vitest-environment-options {"url":"https://xingtu.cn/ad/creator/market"}
|
|
|
|
import { describe, expect, test, vi } from "vitest";
|
|
|
|
import { bootContentScript } from "../src/content/index";
|
|
|
|
describe("market-auth-gating", () => {
|
|
test("shows a login gate instead of booting the market controller when unauthenticated", async () => {
|
|
document.body.innerHTML = "<div></div>";
|
|
|
|
const createMarketController = vi.fn();
|
|
await bootContentScript({
|
|
createMarketController,
|
|
document,
|
|
sendAuthMessage: vi.fn(async () => ({
|
|
ok: true,
|
|
type: "auth:state",
|
|
value: { isAuthenticated: false }
|
|
})),
|
|
window
|
|
});
|
|
|
|
expect(createMarketController).not.toHaveBeenCalled();
|
|
expect(document.body.textContent).toContain("请先登录插件");
|
|
});
|
|
|
|
test("shows an expired login message when auth state reports a token error", async () => {
|
|
document.body.innerHTML = "<div></div>";
|
|
|
|
await bootContentScript({
|
|
createMarketController: vi.fn(),
|
|
document,
|
|
sendAuthMessage: vi.fn(async () => ({
|
|
ok: true,
|
|
type: "auth:state",
|
|
value: {
|
|
isAuthenticated: false,
|
|
lastError: "token expired"
|
|
}
|
|
})),
|
|
window
|
|
});
|
|
|
|
expect(document.body.textContent).toContain("登录已过期,请重新登录");
|
|
});
|
|
});
|