import { describe, it, expect } from "vitest";
import {
defineUserStoriesHandler,
createPersonasHandler,
marketAnalysisHandler,
} from "./product.js";
describe("Product Tools", () => {
describe("defineUserStoriesHandler", () => {
it("should generate simple story", () => {
const result = defineUserStoriesHandler({
feature: "login",
role: "user",
format: "simple",
});
expect(result.content[0].text).toContain("As a user, I want to login");
});
it("should generate gherkin", () => {
const result = defineUserStoriesHandler({
feature: "login",
role: "user",
format: "gherkin",
});
expect(result.content[0].text).toContain("Feature: login");
expect(result.content[0].text).toContain("Given I am a logged in user");
});
});
describe("create_personas", () => {
it("should return personas for the target audience", () => {
const result = createPersonasHandler({
appType: "Fitness App",
targetAudience: ["Gym Goers", "Trainers"],
});
const text = result.content[0].text;
expect(text).toContain("User Personas for Fitness App");
expect(text).toContain("Gym Goers User");
expect(text).toContain("Trainers User");
expect(text).toContain("Demographics"); // New check
});
});
describe("perform_market_analysis", () => {
it("should return a SWOT analysis", () => {
const result = marketAnalysisHandler({
idea: "Uber for dog walking",
competitors: ["Rover", "Wag"],
});
const text = result.content[0].text;
expect(text).toContain("Market Analysis (SWOT): Uber for dog walking");
expect(text).toContain("Rover, Wag");
expect(text).toContain("S-O Strategies"); // New check
});
});
});