Skip to content

Commit 05289b7

Browse files
committed
Add form slug to pub update/create calls in tests
1 parent 810bff2 commit 05289b7

File tree

4 files changed

+36
-7
lines changed

4 files changed

+36
-7
lines changed

core/app/components/pubs/PubEditor/actions.db.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ describe("createPubRecursive", () => {
8686
[`${community.slug}:title`]: "test title",
8787
},
8888
},
89+
formSlug: pubTypes["Minimal Pub"].defaultForm.slug,
8990
trx,
9091
});
9192
expect(result).toMatchObject(expected);
@@ -124,7 +125,7 @@ describe("updatePub", () => {
124125
},
125126
])("$name", async ({ loginUser, userRole, expected }) => {
126127
const { seedCommunity } = await import("~/prisma/seed/seedCommunity");
127-
const { community, pubs, users } = await seedCommunity({
128+
const { community, pubs, users, pubTypes } = await seedCommunity({
128129
community: {
129130
name: "test",
130131
slug: "test-actions-create-pub",
@@ -176,6 +177,7 @@ describe("updatePub", () => {
176177
},
177178
continueOnValidationError: false,
178179
deleted: [],
180+
formSlug: pubTypes["Minimal Pub"].defaultForm.slug,
179181
});
180182
expect(result).toMatchObject(expected);
181183
});

core/lib/__tests__/db.ts

+23-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,29 @@ Pg.types.setTypeParser(int8TypeId, (val: any) => {
2020

2121
const kyselyLogger =
2222
env.LOG_LEVEL === "debug" && env.KYSELY_DEBUG === "true"
23-
? ({ query: { sql, parameters }, ...event }: LogEvent) =>
24-
logger.debug({ event }, "Kysely query:\n%s; --Parameters: %o", sql, parameters)
23+
? ({ query: { sql, parameters }, ...event }: LogEvent) => {
24+
const params = parameters.map((p) => {
25+
if (p === null) {
26+
return "null";
27+
}
28+
if (p instanceof Date) {
29+
return `'${p.toISOString()}'`;
30+
}
31+
if (typeof p === "object") {
32+
const stringified = `'${JSON.stringify(p)}'`;
33+
if (Array.isArray(p)) {
34+
return "ARRAY " + stringified;
35+
}
36+
return stringified;
37+
}
38+
return `'${p}'`;
39+
});
40+
logger.debug(
41+
{ event },
42+
"Kysely query:\n%s",
43+
sql.replaceAll(/\$[0-9]+/g, () => params.shift()!)
44+
);
45+
}
2546
: undefined;
2647

2748
const tablesWithUpdateAt = databaseTables

core/prisma/seed/seedCommunity.ts

+9-3
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,10 @@ type PubFieldsByName<PF> = {
443443
};
444444

445445
type PubTypesByName<PT, PF> = {
446-
[K in keyof PT]: Omit<PubTypes, "name"> & { name: K } & { fields: PubFieldsByName<PF> };
446+
[K in keyof PT]: Omit<PubTypes, "name"> & { name: K } & {
447+
fields: PubFieldsByName<PF>;
448+
defaultForm: { slug: string };
449+
};
447450
};
448451

449452
type UsersBySlug<U extends UsersInitializer> = {
@@ -841,6 +844,9 @@ export async function seedCommunity<
841844
] as const;
842845
})
843846
),
847+
defaultForm: {
848+
slug: `${slugifyString(pubType.name)}-default-editor`,
849+
},
844850
},
845851
])
846852
) as PubTypesByName<PT, PF>;
@@ -850,11 +856,11 @@ export async function seedCommunity<
850856
insertForm(
851857
{ ...pubType, fields: Object.values(pubType.fields) },
852858
`${pubType.name} Editor (Default)`,
853-
`${slugifyString(pubType.name)}-default-editor`,
859+
pubType.defaultForm.slug,
854860
communityId,
855861
true,
856862
trx
857-
).execute()
863+
).executeTakeFirst()
858864
)
859865
);
860866

packages/contracts/src/resources/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export type CreatePubRequestBody = z.infer<typeof CreatePubRequestBody>;
7878

7979
// TODO: there has to be a better way to allow the API requests to include nulls in json fields
8080
export const CreatePubRequestBodyWithNulls = commonPubFields.extend({
81-
id: z.string().optional(),
81+
id: pubsIdSchema.optional(),
8282
values: z.record(
8383
z.union([
8484
jsonSchema.or(z.date()),

0 commit comments

Comments
 (0)