chore: adds update to test sdk

This commit is contained in:
James
2024-04-04 09:47:08 -04:00
parent 66de0b9019
commit ec565a1bd3
3 changed files with 58 additions and 7 deletions

View File

@@ -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<TGeneratedTypes extends GeneratedTypes<TGeneratedTyp
serverURL: string
update = async <T extends keyof TGeneratedTypes['collections']>({
jwt,
...args
}: UpdateArgs<TGeneratedTypes, T>) => {
return this.fetch<TGeneratedTypes['collections'][T]>({
method: 'update',
args,
jwt,
})
}
constructor({ serverURL }: Args) {
this.serverURL = serverURL
}

View File

@@ -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<T extends BaseTypes> = {
export type FetchOptions = {
args?: Record<string, unknown>
jwt?: string
method: 'create' | 'find'
method: 'create' | 'find' | 'update'
reduceJSON?: <R>(json: any) => R
}
@@ -54,6 +54,46 @@ export type CreateArgs<
user?: TypeWithID
} & BaseArgs
export type UpdateByIDArgs<
TGeneratedTypes extends GeneratedTypes<TGeneratedTypes>,
TSlug extends keyof TGeneratedTypes['collections'],
> = UpdateBaseArgs<TGeneratedTypes, TSlug> & {
id: number | string
where?: never
}
export type UpdateManyArgs<
TGeneratedTypes extends GeneratedTypes<TGeneratedTypes>,
TSlug extends keyof TGeneratedTypes['collections'],
> = UpdateBaseArgs<TGeneratedTypes, TSlug> & {
id: never
where?: WhereField
}
export type UpdateBaseArgs<
TGeneratedTypes extends GeneratedTypes<TGeneratedTypes>,
TSlug extends keyof TGeneratedTypes['collections'],
> = {
autosave?: boolean
collection: TSlug
data: DeepPartial<TGeneratedTypes['collections'][TSlug]>
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<TGeneratedTypes>,
TSlug extends keyof TGeneratedTypes['collections'],
> = UpdateByIDArgs<TGeneratedTypes, TSlug> | UpdateManyArgs<TGeneratedTypes, TSlug>
export type FindArgs<
TGeneratedTypes extends GeneratedTypes<TGeneratedTypes>,
TSlug extends keyof TGeneratedTypes['collections'],

View File

@@ -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<Config>
let serverURL: string
describe('Localization', () => {