import { describe, it, expect, beforeEach } from "vitest";
import { InMemoryDomainsRepository } from "../repositories/in-memory-domains-repository";
import { GetDomainsByUserUseCase } from "./get-domains-by-user-use-case";

let domainsRepository: InMemoryDomainsRepository;
let sut: GetDomainsByUserUseCase;

describe("Get Domains By User Use Case", () => {
  beforeEach(() => {
    domainsRepository = new InMemoryDomainsRepository();
    sut = new GetDomainsByUserUseCase(domainsRepository);
  });

  it("should be able to get domains of a user", async () => {
    await domainsRepository.create("example.com", "user-1");

    const { domains } = await sut.execute({ userId: "user-1" });

    expect(domains).toHaveLength(1);
    expect(domains[0].domain).toEqual("example.com");
  });
});
