chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
import { describe, expect, vi } from "vitest";
|
||||
|
||||
var dbClientHolder: any = undefined;
|
||||
function setDbClient(client: any) {
|
||||
dbClientHolder = client;
|
||||
}
|
||||
|
||||
vi.mock("~/v3/services/baseService.server", async () => {
|
||||
const { ServiceValidationError } = await import("~/v3/services/common.server");
|
||||
return { ServiceValidationError };
|
||||
});
|
||||
|
||||
vi.mock("~/db.server", async () => {
|
||||
const { Prisma } = await import("@trigger.dev/database");
|
||||
return {
|
||||
Prisma,
|
||||
sqlDatabaseSchema: Prisma.sql(["public"]),
|
||||
get prisma() {
|
||||
return dbClientHolder;
|
||||
},
|
||||
get $replica() {
|
||||
return dbClientHolder;
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
import { postgresTest } from "@internal/testcontainers";
|
||||
import type { PrismaClient } from "@trigger.dev/database";
|
||||
import { ApiWaitpointListPresenter } from "~/presenters/v3/ApiWaitpointListPresenter.server";
|
||||
|
||||
vi.setConfig({ testTimeout: 120_000 });
|
||||
|
||||
const ENV_ID = "env0000000000000000t19";
|
||||
const PROJ_ID = "proj00000000000000t19";
|
||||
|
||||
async function seedLegacyParents(prisma: PrismaClient, slug: string) {
|
||||
const org = await prisma.organization.create({
|
||||
data: { title: `org-${slug}`, slug: `org-${slug}` },
|
||||
});
|
||||
await prisma.project.create({
|
||||
data: {
|
||||
id: PROJ_ID,
|
||||
name: `proj-${slug}`,
|
||||
slug: `proj-${slug}`,
|
||||
organizationId: org.id,
|
||||
externalRef: `proj-${slug}`,
|
||||
engine: "V2",
|
||||
},
|
||||
});
|
||||
await prisma.runtimeEnvironment.create({
|
||||
data: {
|
||||
id: ENV_ID,
|
||||
slug: `env-${slug}`,
|
||||
type: "PRODUCTION",
|
||||
projectId: PROJ_ID,
|
||||
organizationId: org.id,
|
||||
apiKey: `tr_prod_${slug}`,
|
||||
pkApiKey: `pk_prod_${slug}`,
|
||||
shortcode: `sc-${slug}`,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const baseEnv = {
|
||||
id: ENV_ID,
|
||||
type: "PRODUCTION" as const,
|
||||
project: { id: PROJ_ID, engine: "V2" as const },
|
||||
apiKey: "tr_prod_t19",
|
||||
};
|
||||
|
||||
describe("ApiWaitpointListPresenter read-route threading", () => {
|
||||
postgresTest(
|
||||
"split enabled: waitpoint on NEW handle is returned via readRoute",
|
||||
async ({ prisma }) => {
|
||||
setDbClient(prisma);
|
||||
await seedLegacyParents(prisma, "t19split");
|
||||
|
||||
await prisma.waitpoint.create({
|
||||
data: {
|
||||
id: "wp_t19_0000000000000000001",
|
||||
friendlyId: "wpt_t19_001",
|
||||
type: "MANUAL",
|
||||
status: "PENDING",
|
||||
idempotencyKey: "idem-t19-001",
|
||||
userProvidedIdempotencyKey: false,
|
||||
projectId: PROJ_ID,
|
||||
environmentId: ENV_ID,
|
||||
},
|
||||
});
|
||||
|
||||
const presenter = new ApiWaitpointListPresenter(undefined, undefined, {
|
||||
runOpsNew: prisma as any,
|
||||
runOpsLegacyReplica: prisma as any,
|
||||
splitEnabled: true,
|
||||
});
|
||||
|
||||
const result = await presenter.call(baseEnv, {});
|
||||
|
||||
expect(result.data.length).toBeGreaterThan(0);
|
||||
expect(result.data.some((t) => t.id === "wpt_t19_001")).toBe(true);
|
||||
}
|
||||
);
|
||||
|
||||
postgresTest(
|
||||
"passthrough: no readRoute => _replica only, result empty (nothing seeded)",
|
||||
async ({ prisma }) => {
|
||||
setDbClient(prisma);
|
||||
await seedLegacyParents(prisma, "t19pass");
|
||||
|
||||
const presenter = new ApiWaitpointListPresenter(prisma, prisma);
|
||||
|
||||
const result = await presenter.call(baseEnv, {});
|
||||
expect(result.data).toEqual([]);
|
||||
}
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user