/**
 * @jest-environment jsdom
 */

const fs = require("fs");
const path = require("path");

describe("calculate() Snapshot Tests", () => {

    let calculate;
    let snapshotFile;

    beforeEach(() => {

        // Standard: irgendeine Datei setzen, falls Test nichts setzt
        snapshotFile = "snapshot_default.csv";

        // DOM erzeugen
        document.body.innerHTML = `
            <textarea id="analysis-log"></textarea>
        `;

        // Fetch dynamisch mocken
        global.fetch = jest.fn(async () => {

            const csvPath = path.join(__dirname, "snapshots", snapshotFile);
            const csvContent = fs.readFileSync(csvPath, "utf8");

            return {
                ok: true,
                headers: { get: () => "text/csv" },
                text: async () => csvContent
            };
        });

        // Modul erst JETZT laden (DOM existiert)
        ({ calculate } = require("../public/calculateActions.js"));
    });

    // ✅ Beispiel 1: Die Datei aus deiner Frage
    test("Snapshot 1775406055428 wird korrekt geladen", async () => {

        snapshotFile = "snapshot_video0_1775406055428_two_cam.csv";

        var result = await calculate();

        expect(global.fetch).toHaveBeenCalledWith("/api/latest-snapshot");

        //console.log("Berechnungsergebnis:", result.features["forearm.angleZ"].valueDeg);
        const r = result.features["forearm.angleZ"].valueDeg
        expect(r).toBeCloseTo(131.3436, 1);
    });
});