You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
import fs from "node:fs";
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
|
|
describe("storage-state", () => {
|
|
let tmpDir: string;
|
|
|
|
afterEach(() => {
|
|
if (tmpDir && fs.existsSync(tmpDir)) {
|
|
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
}
|
|
vi.resetModules();
|
|
});
|
|
|
|
it("invalidateStorageState 删除 state 文件", async () => {
|
|
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "rpa-state-"));
|
|
const stateFile = path.join(tmpDir, "state.json");
|
|
fs.writeFileSync(stateFile, "{}");
|
|
process.env.RPA_STORAGE_STATE_PATH = stateFile;
|
|
|
|
const { invalidateStorageState, storageStateExists } = await import(
|
|
"@/lib/rpa/storage-state"
|
|
);
|
|
expect(storageStateExists()).toBe(true);
|
|
invalidateStorageState();
|
|
expect(storageStateExists()).toBe(false);
|
|
});
|
|
|
|
it("getStorageStateForContext 存在时返回 storageState", async () => {
|
|
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "rpa-state-"));
|
|
const stateFile = path.join(tmpDir, "state.json");
|
|
fs.writeFileSync(stateFile, '{"cookies":[]}');
|
|
process.env.RPA_STORAGE_STATE_PATH = stateFile;
|
|
|
|
const { getStorageStateForContext } = await import(
|
|
"@/lib/rpa/storage-state"
|
|
);
|
|
expect(getStorageStateForContext()).toEqual({ storageState: stateFile });
|
|
});
|
|
});
|