Features: - 30+ Custom Skills (cognitive, development, UI/UX, autonomous agents) - RalphLoop autonomous agent integration - Multi-AI consultation (Qwen) - Agent management system with sync capabilities - Custom hooks for session management - MCP servers integration - Plugin marketplace setup - Comprehensive installation script Components: - Skills: always-use-superpowers, ralph, brainstorming, ui-ux-pro-max, etc. - Agents: 100+ agents across engineering, marketing, product, etc. - Hooks: session-start-superpowers, qwen-consult, ralph-auto-trigger - Commands: /brainstorm, /write-plan, /execute-plan - MCP Servers: zai-mcp-server, web-search-prime, web-reader, zread - Binaries: ralphloop wrapper Installation: ./supercharge.sh
46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { describe, it, expect, beforeEach } from "vitest";
|
|
import { fakeBrowser } from "wxt/testing";
|
|
import { StateManager } from "../services/StateManager";
|
|
|
|
describe("StateManager", () => {
|
|
let stateManager: StateManager;
|
|
|
|
beforeEach(() => {
|
|
fakeBrowser.reset();
|
|
stateManager = new StateManager();
|
|
});
|
|
|
|
describe("getState", () => {
|
|
it("should return default inactive state when no stored state", async () => {
|
|
const state = await stateManager.getState();
|
|
expect(state).toEqual({ isActive: false });
|
|
});
|
|
|
|
it("should return stored state when available", async () => {
|
|
await fakeBrowser.storage.local.set({
|
|
devBrowserActiveState: { isActive: true },
|
|
});
|
|
|
|
const state = await stateManager.getState();
|
|
expect(state).toEqual({ isActive: true });
|
|
});
|
|
});
|
|
|
|
describe("setState", () => {
|
|
it("should persist state to storage", async () => {
|
|
await stateManager.setState({ isActive: true });
|
|
|
|
const stored = await fakeBrowser.storage.local.get("devBrowserActiveState");
|
|
expect(stored.devBrowserActiveState).toEqual({ isActive: true });
|
|
});
|
|
|
|
it("should update state from active to inactive", async () => {
|
|
await stateManager.setState({ isActive: true });
|
|
await stateManager.setState({ isActive: false });
|
|
|
|
const state = await stateManager.getState();
|
|
expect(state).toEqual({ isActive: false });
|
|
});
|
|
});
|
|
});
|