// @vitest-environment jsdom

import { fireEvent, render, screen } from "@testing-library/react";
import { describe, expect, it, vi } from "vitest";
import { SelectStepSection } from "./select-step";

describe("SelectStepSection", () => {
  it("renders actions and file-sync warnings", () => {
    const onBack = vi.fn();
    const onPreview = vi.fn();

    render(
      <SelectStepSection
        mode="file-sync"
        sourceRegionId=""
        sourceStatusHasDiff={false}
        sourceOverlapsTargets={true}
        effectiveSelectedCount={0}
        isTagValid={true}
        targetTag=""
        selectedCount={0}
        canPreview={true}
        previewing={false}
        onBack={onBack}
        onPreview={onPreview}
        targetRegionsPanel={<div>Target Regions Placeholder</div>}
        configPanel={<div>Config Panel Placeholder</div>}
      />
    );

    expect(screen.getByText("Select a source region")).toBeInTheDocument();
    expect(screen.getByText("No sync targets remain after excluding the source region.")).toBeInTheDocument();

    fireEvent.click(screen.getByRole("button", { name: "Back" }));
    expect(onBack).toHaveBeenCalledTimes(1);

    fireEvent.click(screen.getByRole("button", { name: "Preview Changes" }));
    expect(onPreview).toHaveBeenCalledTimes(1);
  });
});
