feat/Update_Controllers_to_Allow_for_Premium_Membership

This commit is contained in:
cesnimda
2026-08-03 09:17:28 +02:00
parent de937d25dc
commit c3f4a57195
187 changed files with 26062 additions and 991 deletions
@@ -6,6 +6,7 @@ import AiWorkspacePanel from "./components/AiWorkspacePanel";
import Markdown from "./components/Markdown";
import { ToastProvider } from "./toast";
import { api } from "./api";
import { AccountPlanProvider } from "./accountPlan";
jest.mock("./api", () => ({
api: {
@@ -67,6 +68,20 @@ test("cover letter sends the selected mode", async () => {
await waitFor(() => expect(mockedApi.post).toHaveBeenCalledWith("/jobapplications/7/ai/generate", expect.objectContaining({ module: "cover-letter", mode: "professional" })));
});
test("free users see a locked state and cannot start generation", async () => {
render(
<ToastProvider>
<AccountPlanProvider value={{ plan: "free", canUseAi: false, canUseProThemes: false }}>
<AiWorkspacePanel jobId={7} />
</AccountPlanProvider>
</ToastProvider>,
);
expect(await screen.findByText(/AI generation is a Pro feature/)).toBeInTheDocument();
expect(screen.getByRole("button", { name: "Pro required" })).toBeDisabled();
expect(mockedApi.post).not.toHaveBeenCalled();
});
test("Markdown renders headings, bold, and bullet lists", () => {
render(<Markdown text={"# Title\n**Strengths**\n- one\n- two\nplain *word*"} />);
expect(screen.getByText("Title")).toBeInTheDocument();