import { describe, it, expect } from "vitest";
import { formatBibliography } from "../services/bibliography-generator.js";
import type { CitationLibrarySource } from "@skola/shared";

const sample: CitationLibrarySource = {
  decimalId: 1, type: "Journal Article", title: "Test Paper",
  authors: ["Smith, John", "Jones, Alice"], journal: "Test Journal",
  volume: "5", issue: "2", pages: "100-110", date: "2023",
  year: 2023, doi: "10.1234/test", abstract: "", isbn: "", publisher: "",
  origin: "RIS", fileName: "test.ris", importedAt: new Date().toISOString(), note: ""
};

describe("formatBibliography", () => {
  it("generates APA7 format", () => {
    const result = formatBibliography([sample], "APA7");
    expect(result.plain).toContain("Smith, J.");
    expect(result.plain).toContain("(2023)");
    expect(result.plain).toContain("Test Paper");
  });
  it("generates IEEE numbered format", () => {
    const result = formatBibliography([sample], "IEEE");
    expect(result.plain).toContain("[1]");
  });
  it("produces HTML with bibliography-entry class", () => {
    const result = formatBibliography([sample], "HARVARD");
    expect(result.html).toContain("bibliography-entry");
  });
});
