feat/Update_Controllers_to_Allow_for_Premium_Membership
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user