import { describe, expect, it } from "vitest";
import { BOSS_BURROW_CLEARANCE, bossBurrowPositionY, bossIsBurrowing } from "./bossBurrowVisuals";

describe("boss burrow visuals", () => {
  it("places the scaled top of the model below the arena floor", () => {
    const modelTopY = 2.8371768724243784;
    const modelScale = 0.82;
    const positionY = bossBurrowPositionY(modelTopY, modelScale);

    expect(positionY + modelTopY * modelScale).toBeCloseTo(-BOSS_BURROW_CLEARANCE, 6);
  });

  it("starts sinking during the warning and remains submerged through the charge", () => {
    expect(bossIsBurrowing("burrow-rush", "telegraph")).toBe(true);
    expect(bossIsBurrowing("burrow-rush", "charging")).toBe(true);
    expect(bossIsBurrowing("burrow-rush", "holding")).toBe(false);
    expect(bossIsBurrowing("bull-charge", "charging")).toBe(false);
  });
});
