import { describe, it, expect } from "vitest"
import { generateDropConcept } from "./proto-concept"

// ANTHROPIC_API_KEY n'est pas injectée dans l'environnement de test : ces
// tests exercent donc toujours le générateur par règles (source "rules"),
// sans appel réseau.

describe("generateDropConcept", () => {
  it("repère les matériaux évoqués par le thème (kaki -> cordura)", async () => {
    const concept = await generateDropConcept({ name: "MC Kaki", description: "Une ligne kaki et vert phosphorescent." })
    expect(concept.source).toBe("rules")
    expect(concept.text.toLowerCase()).toContain("cordura")
  })

  it("repère les matériaux évoqués par le thème (mauve/orange -> scotchlite)", async () => {
    const concept = await generateDropConcept({ name: "Beatmaker Mauve", description: "Mauve nuit et orange fluo." })
    expect(concept.text.toLowerCase()).toContain("scotchlite")
  })

  it("retombe sur des matériaux par défaut si aucun mot-clé ne correspond", async () => {
    const concept = await generateDropConcept({ name: "Sans thème particulier" })
    expect(concept.text.toLowerCase()).toMatch(/néoprène|cordura/)
  })

  it("produit toujours les 4 sections attendues", async () => {
    const concept = await generateDropConcept({ name: "Test" })
    expect(concept.text).toContain("Silhouette :")
    expect(concept.text).toContain("Familles de matières :")
    expect(concept.text).toContain("Pièces clés :")
    expect(concept.text).toContain("Direction :")
  })
})
