diff --git a/test/helpers/sdk/index.ts b/test/helpers/sdk/index.ts index 0d4bf4e68..37358fc8f 100644 --- a/test/helpers/sdk/index.ts +++ b/test/helpers/sdk/index.ts @@ -1,6 +1,6 @@ import type { PaginatedDocs } from 'payload/database' -import type { CreateArgs, FetchOptions, FindArgs, GeneratedTypes } from './types.js' +import type { CreateArgs, FetchOptions, FindArgs, GeneratedTypes, UpdateArgs } from './types.js' type Args = { serverURL: string @@ -53,6 +53,17 @@ export class PayloadTestSDK({ + jwt, + ...args + }: UpdateArgs) => { + return this.fetch({ + method: 'update', + args, + jwt, + }) + } + constructor({ serverURL }: Args) { this.serverURL = serverURL } diff --git a/test/helpers/sdk/types.ts b/test/helpers/sdk/types.ts index b7e62090f..ea2667551 100644 --- a/test/helpers/sdk/types.ts +++ b/test/helpers/sdk/types.ts @@ -1,5 +1,5 @@ -import type { TypeWithID, Where } from 'payload/types' -import type { MarkOptional } from 'ts-essentials' +import type { TypeWithID, Where, WhereField } from 'payload/types' +import type { DeepPartial, MarkOptional } from 'ts-essentials' type CollectionDoc = { createdAt?: string @@ -25,7 +25,7 @@ export type GeneratedTypes = { export type FetchOptions = { args?: Record jwt?: string - method: 'create' | 'find' + method: 'create' | 'find' | 'update' reduceJSON?: (json: any) => R } @@ -54,6 +54,46 @@ export type CreateArgs< user?: TypeWithID } & BaseArgs +export type UpdateByIDArgs< + TGeneratedTypes extends GeneratedTypes, + TSlug extends keyof TGeneratedTypes['collections'], +> = UpdateBaseArgs & { + id: number | string + where?: never +} + +export type UpdateManyArgs< + TGeneratedTypes extends GeneratedTypes, + TSlug extends keyof TGeneratedTypes['collections'], +> = UpdateBaseArgs & { + id: never + where?: WhereField +} + +export type UpdateBaseArgs< + TGeneratedTypes extends GeneratedTypes, + TSlug extends keyof TGeneratedTypes['collections'], +> = { + autosave?: boolean + collection: TSlug + data: DeepPartial + depth?: number + draft?: boolean + fallbackLocale?: string + file?: File + filePath?: string + locale?: string + overrideAccess?: boolean + overwriteExistingFiles?: boolean + showHiddenFields?: boolean + user?: TypeWithID +} & BaseArgs + +export type UpdateArgs< + TGeneratedTypes extends GeneratedTypes, + TSlug extends keyof TGeneratedTypes['collections'], +> = UpdateByIDArgs | UpdateManyArgs + export type FindArgs< TGeneratedTypes extends GeneratedTypes, TSlug extends keyof TGeneratedTypes['collections'], diff --git a/test/localization/e2e.spec.ts b/test/localization/e2e.spec.ts index 3c3ced3dd..8305d564d 100644 --- a/test/localization/e2e.spec.ts +++ b/test/localization/e2e.spec.ts @@ -1,12 +1,12 @@ import type { Page } from '@playwright/test' -import type { Payload } from 'payload' import { expect, test } from '@playwright/test' import path from 'path' import { wait } from 'payload/utilities' import { fileURLToPath } from 'url' -import type { LocalizedPost } from './payload-types.js' +import type { PayloadTestSDK } from '../helpers/sdk/index.js' +import type { Config, LocalizedPost } from './payload-types.js' import { changeLocale, @@ -46,7 +46,7 @@ const arabicTitle = 'arabic title' const description = 'description' let page: Page -let payload: Payload +let payload: PayloadTestSDK let serverURL: string describe('Localization', () => {