Ctrl K
ComunidadGuías…

tests/project-deployments.spec.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { expect } from "@playwright/test";

import { createDeploymentScenario } from "../apps/backend/src/database/seeds";
import { loggedTest } from "./logged-test";
import { ensureTeamOwner, screenshot } from "./util";

loggedTest.beforeEach(async ({ auth, team }) => {
  await ensureTeamOwner({ team: team.team, user: auth.user });
});

loggedTest("deployments", async ({ page, team, project, builds }) => {
  // A deployment links to the most recent build sharing its commit — every
  // build of the scenario does — so the expected number follows the scenario
  // rather than being pinned to whichever build happens to come last.
  const latestBuildNumber = Math.max(
    ...Object.values(builds).map((build) => build.number),
  );

  await createDeploymentScenario({
    projectId: project.id,
    accountSlug: team.account.slug,
    projectName: project.name,
  });

  await page.goto(`/${team.account.slug}/${project.name}/deployments`);

  await expect(
    page.getByRole("heading", { name: "Deployments" }),
  ).toBeVisible();
  const buildLink = page.getByRole("link", {
    name: `Build #${latestBuildNumber}`,
  });
  await expect(buildLink).toBeVisible();
  await expect(buildLink).toHaveAttribute(
    "href",
    `/${team.account.slug}/${project.name}/builds/${latestBuildNumber}`,
  );
  await expect(page.getByText("preview-main", { exact: true })).toBeVisible();
  await expect(page.getByText("Production", { exact: true })).toBeVisible();

  await screenshot(page, "project-deployments", {
    replacements: {
      [team.account.slug]: "acme",
    },
  });
});