diff --git a/test/admin/components/richText/elements/Button/Button/index.scss b/test/admin/components/richText/elements/Button/Button/index.scss
deleted file mode 100644
index 3529db77d..000000000
--- a/test/admin/components/richText/elements/Button/Button/index.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-@import '../../../../../../../packages/payload/src/admin/scss/styles.scss';
-
-.button-rich-text-button {
- .btn {
- margin-right: base(1);
- }
-
- &__modal {
- display: flex;
- align-items: center;
- height: 100%;
-
- &.payload__modal-item--enterDone {
- @include blur-bg;
- }
- }
-
- &__header {
- width: 100%;
- margin-bottom: $baseline;
- display: flex;
- justify-content: space-between;
-
- h3 {
- margin: 0;
- }
-
- svg {
- width: base(1.5);
- height: base(1.5);
- }
- }
-}
diff --git a/test/admin/components/richText/elements/Button/Button/index.tsx b/test/admin/components/richText/elements/Button/Button/index.tsx
deleted file mode 100644
index 75ffc7b1e..000000000
--- a/test/admin/components/richText/elements/Button/Button/index.tsx
+++ /dev/null
@@ -1,108 +0,0 @@
-import facelessUIImport from '@faceless-ui/modal'
-
-const { Modal, useModal } = facelessUIImport
-import React, { Fragment, useCallback } from 'react'
-import { Transforms } from 'slate'
-import { ReactEditor, useSlate } from 'slate-react'
-
-// TODO:
-import Button from '../../../../../../../packages/payload/src/admin/components/elements/Button'
-import Form from '../../../../../../../packages/payload/src/admin/components/forms/Form'
-import reduceFieldsToValues from '../../../../../../../packages/payload/src/admin/components/forms/Form/reduceFieldsToValues'
-import Submit from '../../../../../../../packages/payload/src/admin/components/forms/Submit'
-import Checkbox from '../../../../../../../packages/payload/src/admin/components/forms/field-types/Checkbox'
-import ElementButton from '../../../../../../../packages/payload/src/admin/components/forms/field-types/RichText/elements/Button'
-import Select from '../../../../../../../packages/payload/src/admin/components/forms/field-types/Select'
-import Text from '../../../../../../../packages/payload/src/admin/components/forms/field-types/Text'
-import X from '../../../../../../../packages/payload/src/admin/components/icons/X'
-import MinimalTemplate from '../../../../../../../packages/payload/src/admin/components/templates/Minimal'
-import './index.scss'
-
-const baseClass = 'button-rich-text-button'
-
-const initialFormData = {
- style: 'primary',
-}
-
-const insertButton = (editor, { href, label, newTab = false, style }: any) => {
- const text = { text: ' ' }
- const button = {
- type: 'button',
- children: [text],
- href,
- label,
- newTab,
- style,
- }
-
- const nodes = [button, { children: [{ text: '' }] }]
-
- if (editor.blurSelection) {
- Transforms.select(editor, editor.blurSelection)
- }
-
- Transforms.insertNodes(editor, nodes)
-
- const currentPath = editor.selection.anchor.path[0]
- const newSelection = {
- anchor: { offset: 0, path: [currentPath + 1, 0] },
- focus: { offset: 0, path: [currentPath + 1, 0] },
- }
-
- Transforms.select(editor, newSelection)
- ReactEditor.focus(editor)
-}
-
-export const ToolbarButton: React.FC<{ path: string }> = ({ path }) => {
- const { closeAll, open } = useModal()
- const editor = useSlate()
-
- const handleAddButton = useCallback(
- (fields) => {
- const data = reduceFieldsToValues(fields)
- insertButton(editor, data)
- closeAll()
- },
- [editor, closeAll],
- )
-
- const modalSlug = `${path}-add-button`
-
- return (
-
- open(modalSlug)}>
- Button
-
-
-
-
-
-
-
-
- )
-}
diff --git a/test/admin/components/richText/elements/Button/Element/index.scss b/test/admin/components/richText/elements/Button/Element/index.scss
deleted file mode 100644
index 467ee8064..000000000
--- a/test/admin/components/richText/elements/Button/Element/index.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-@import '../../../../../../../packages/payload/src/admin/scss/styles.scss';
-
-.rich-text-button {
- margin: $baseline 0;
-}
-
-.rich-text-button__button {
- padding: base(0.5) base(1.5);
- border-radius: $style-radius-s;
-
- &--primary {
- background-color: $color-dark-gray;
- color: white;
- }
-
- &--secondary {
- background-color: $color-light-gray;
- }
-}
diff --git a/test/admin/components/richText/elements/Button/Element/index.tsx b/test/admin/components/richText/elements/Button/Element/index.tsx
deleted file mode 100644
index 8ac8af1ed..000000000
--- a/test/admin/components/richText/elements/Button/Element/index.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from 'react'
-
-import './index.scss'
-
-const baseClass = 'rich-text-button'
-
-export const ButtonElement: React.FC = ({ attributes, children, element }) => {
- const { label, style = 'primary' } = element
-
- return (
-
-
- {label}
- {children}
-
-
- )
-}
diff --git a/test/admin/components/richText/elements/Button/index.ts b/test/admin/components/richText/elements/Button/index.ts
deleted file mode 100644
index cfca4e349..000000000
--- a/test/admin/components/richText/elements/Button/index.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { RichTextCustomElement } from '../../../../../../packages/richtext-slate/src/types.js'
-
-import { ToolbarButton } from './Button/index.js'
-import { ButtonElement } from './Element/index.js'
-import { withButton } from './plugin.js'
-
-export const button: RichTextCustomElement = {
- name: 'button',
- Button: ToolbarButton,
- Element: ButtonElement,
- plugins: [withButton],
-}
diff --git a/test/admin/components/richText/elements/Button/plugin.ts b/test/admin/components/richText/elements/Button/plugin.ts
deleted file mode 100644
index 665bc1430..000000000
--- a/test/admin/components/richText/elements/Button/plugin.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import type { Editor } from 'slate'
-
-export const withButton = (incomingEditor: Editor): Editor => {
- const editor = incomingEditor
- const { isVoid } = editor
-
- editor.isVoid = (element) => (element.type === 'button' ? true : isVoid(element))
-
- return editor
-}
diff --git a/test/admin/components/richText/leaves/PurpleBackground/Button/index.tsx b/test/admin/components/richText/leaves/PurpleBackground/Button/index.tsx
deleted file mode 100644
index 3913e283c..000000000
--- a/test/admin/components/richText/leaves/PurpleBackground/Button/index.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import React from 'react'
-
-import LeafButton from '../../../../../../../packages/payload/src/admin/components/forms/field-types/RichText/leaves/Button'
-
-const Button = () => Purple Background
-
-export default Button
diff --git a/test/admin/components/richText/leaves/PurpleBackground/Leaf/index.tsx b/test/admin/components/richText/leaves/PurpleBackground/Leaf/index.tsx
deleted file mode 100644
index a0256dcd4..000000000
--- a/test/admin/components/richText/leaves/PurpleBackground/Leaf/index.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from 'react'
-
-const PurpleBackground: React.FC = ({ attributes, children }) => (
-
- {children}
-
-)
-
-export default PurpleBackground
diff --git a/test/admin/components/richText/leaves/PurpleBackground/index.ts b/test/admin/components/richText/leaves/PurpleBackground/index.ts
deleted file mode 100644
index b0ad9b62e..000000000
--- a/test/admin/components/richText/leaves/PurpleBackground/index.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import Button from './Button/index.js'
-import Leaf from './Leaf/index.js'
-
-export default {
- name: 'purple-background',
- Button,
- Leaf,
-}
diff --git a/test/admin/components/views/CustomDefault/index.tsx b/test/admin/components/views/CustomDefault/index.tsx
index ea10fb572..fbdafef51 100644
--- a/test/admin/components/views/CustomDefault/index.tsx
+++ b/test/admin/components/views/CustomDefault/index.tsx
@@ -3,10 +3,10 @@ import LinkImport from 'next/link.js'
import { redirect } from 'next/navigation.js'
import React from 'react'
-import type { AdminViewProps } from '../../../../../packages/payload/types.js'
-
const Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default
+import type { AdminViewProps } from 'payload/types'
+
import { Button } from '@payloadcms/ui/elements/Button'
import { SetStepNav } from '@payloadcms/ui/elements/StepNav'
diff --git a/test/auth/config.ts b/test/auth/config.ts
index 15bed3b8a..2b231b469 100644
--- a/test/auth/config.ts
+++ b/test/auth/config.ts
@@ -223,6 +223,7 @@ export default buildConfigWithDefaults({
custom: 'Hello, world!',
email: devUser.email,
password: devUser.password,
+ roles: ['admin'],
},
})
diff --git a/test/auth/payload-types.ts b/test/auth/payload-types.ts
index dadfe21b7..90baa3a3c 100644
--- a/test/auth/payload-types.ts
+++ b/test/auth/payload-types.ts
@@ -156,6 +156,6 @@ export interface PayloadMigration {
declare module 'payload' {
- // @ts-ignore
+ // @ts-ignore
export interface GeneratedTypes extends Config {}
-}
\ No newline at end of file
+}
diff --git a/test/dataloader/config.ts b/test/dataloader/config.ts
index be3424a43..e05d248c0 100644
--- a/test/dataloader/config.ts
+++ b/test/dataloader/config.ts
@@ -1,5 +1,7 @@
import { slateEditor } from '@payloadcms/richtext-slate'
+import type { Post } from './payload-types.js'
+
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
import { devUser } from '../credentials.js'
@@ -79,6 +81,6 @@ export default buildConfigWithDefaults({
},
})
-export const postDoc = {
+export const postDoc: Pick = {
title: 'test post',
}
diff --git a/test/dataloader/int.spec.ts b/test/dataloader/int.spec.ts
index c86dddd8d..2d57ab042 100644
--- a/test/dataloader/int.spec.ts
+++ b/test/dataloader/int.spec.ts
@@ -136,6 +136,7 @@ describe('dataloader', () => {
})
const innerMostRelationship =
+ // @ts-expect-error Deep typing not worth doing
relationAWithDepth.relationship.relationship.richText[1].value.relationship.relationship
expect(innerMostRelationship).toStrictEqual(relationB.id)
diff --git a/test/graphql-schema-gen/payload-types.ts b/test/graphql-schema-gen/payload-types.ts
index 165418181..b74a99f4d 100644
--- a/test/graphql-schema-gen/payload-types.ts
+++ b/test/graphql-schema-gen/payload-types.ts
@@ -154,5 +154,6 @@ export interface PayloadMigration {
declare module 'payload' {
+ // @ts-ignore
export interface GeneratedTypes extends Config {}
-}
\ No newline at end of file
+}
diff --git a/test/helpers/sdk/index.ts b/test/helpers/sdk/index.ts
index 5998f13a2..bf5f5310e 100644
--- a/test/helpers/sdk/index.ts
+++ b/test/helpers/sdk/index.ts
@@ -1,5 +1,5 @@
-import type { SendMailOptions } from 'nodemailer'
import type { PaginatedDocs } from 'payload/database'
+import type { SendEmailOptions } from 'payload/types'
import type {
CreateArgs,
@@ -82,7 +82,7 @@ export class PayloadTestSDK => {
+ sendEmail = async ({ jwt, ...args }: { jwt?: string } & SendEmailOptions): Promise => {
return this.fetch({
operation: 'sendEmail',
args,
diff --git a/test/live-preview/utilities/formatLivePreviewURL.ts b/test/live-preview/utilities/formatLivePreviewURL.ts
index d74dea0e4..a398b8d8e 100644
--- a/test/live-preview/utilities/formatLivePreviewURL.ts
+++ b/test/live-preview/utilities/formatLivePreviewURL.ts
@@ -1,7 +1,5 @@
import type { LivePreviewConfig } from 'payload/config'
-import type { Tenant } from '../payload-types.js'
-
export const formatLivePreviewURL: LivePreviewConfig['url'] = async ({
data,
collectionConfig,
@@ -13,7 +11,7 @@ export const formatLivePreviewURL: LivePreviewConfig['url'] = async ({
// For example, multi-tenant apps may need to lookup additional data
if (data.tenant) {
try {
- const fullTenant = (await payload
+ const fullTenant = await payload
.find({
collection: 'tenants',
where: {
@@ -24,7 +22,7 @@ export const formatLivePreviewURL: LivePreviewConfig['url'] = async ({
limit: 1,
depth: 0,
})
- .then((res) => res?.docs?.[0])) as Tenant
+ .then((res) => res?.docs?.[0])
if (fullTenant?.clientURL) {
baseURL = `${fullTenant.clientURL}/live-preview`
diff --git a/test/plugin-cloud-storage/int.spec.ts b/test/plugin-cloud-storage/int.spec.ts
index 9cfea43d3..bb834e410 100644
--- a/test/plugin-cloud-storage/int.spec.ts
+++ b/test/plugin-cloud-storage/int.spec.ts
@@ -4,6 +4,8 @@ import * as AWS from '@aws-sdk/client-s3'
import path from 'path'
import { fileURLToPath } from 'url'
+import type { Config } from './payload-types.js'
+
import { describeIfInCIOrHasLocalstack } from '../helpers.js'
import { initPayloadInt } from '../helpers/initPayloadInt.js'
import configPromise from './config.js'
@@ -103,7 +105,7 @@ describe('@payloadcms/plugin-cloud-storage', () => {
uploadId,
prefix = '',
}: {
- collectionSlug: string
+ collectionSlug: keyof Config['collections']
prefix?: string
uploadId: number | string
}) {
diff --git a/test/tsconfig.typecheck.json b/test/tsconfig.typecheck.json
index db7501ac8..b5d2267a3 100644
--- a/test/tsconfig.typecheck.json
+++ b/test/tsconfig.typecheck.json
@@ -1,11 +1,8 @@
{
"compilerOptions": {
"noEmit": true,
- // Ideally, this should be "." once we get rid of all relative package paths
- "rootDir": "..",
- "declaration": true,
- "declarationMap": true,
- "outDir": "./just-in-case",
+ "rootDir": ".",
+ "baseUrl": ".",
"target": "esnext",
"module": "NodeNext",
"moduleResolution": "NodeNext",
@@ -17,25 +14,89 @@
"lib": ["dom", "dom.iterable", "esnext"],
"resolveJsonModule": true,
"skipLibCheck": true,
- "sourceMap": true,
- "strict": false,
"types": ["jest", "node", "@types/jest"],
- "incremental": true,
+ // "incremental": true,
"isolatedModules": true,
"plugins": [
{
"name": "next"
}
],
- "paths": {}
+ "paths": {
+ "@payload-config": ["./_community/config.ts"]
+ }
},
- "exclude": ["dist", "build", "node_modules", ".eslintrc.js", "dist/**/*.js", "**/dist/**/*.js"],
+ "exclude": ["dist", "build", "temp", "node_modules"],
"include": [
// "./test/_community/**/*.ts"
- "./**/*.ts"
- // "/**/*.ts",
+ // "./_community/**/*.ts"
+ "/**/*.ts"
// "../packages/**/src/**/*.ts",
// "../packages/**/src/**/*.tsx"
],
- "references": []
+ "references": [
+ {
+ "path": "../packages/create-payload-app"
+ },
+ {
+ "path": "../packages/db-mongodb"
+ },
+ {
+ "path": "../packages/db-postgres"
+ },
+ {
+ "path": "../packages/graphql"
+ },
+ {
+ "path": "../packages/live-preview"
+ },
+ {
+ "path": "../packages/live-preview-react"
+ },
+ {
+ "path": "../packages/next"
+ },
+ {
+ "path": "../packages/payload"
+ },
+ {
+ "path": "../packages/plugin-cloud-storage"
+ },
+ {
+ "path": "../packages/plugin-cloud"
+ },
+ {
+ "path": "../packages/plugin-form-builder"
+ },
+ {
+ "path": "../packages/plugin-nested-docs"
+ },
+ {
+ "path": "../packages/plugin-redirects"
+ },
+ {
+ "path": "../packages/plugin-search"
+ },
+ {
+ "path": "../packages/plugin-sentry"
+ },
+ {
+ "path": "../packages/plugin-seo"
+ },
+ {
+ "path": "../packages/plugin-stripe"
+ },
+ {
+ "path": "../packages/richtext-slate"
+ },
+ {
+ "path": "../packages/richtext-lexical"
+ },
+ {
+ "path": "../packages/translations"
+ },
+ {
+ "path": "../packages/ui"
+ }
+ ]
}
diff --git a/test/versions/e2e.spec.ts b/test/versions/e2e.spec.ts
index 150bd8ead..790de3dc5 100644
--- a/test/versions/e2e.spec.ts
+++ b/test/versions/e2e.spec.ts
@@ -580,6 +580,7 @@ describe('versions', () => {
collection: autosaveCollectionSlug,
data: {
title: 'some title',
+ description: 'some description',
},
draft: true,
})
diff --git a/test/versions/seed.ts b/test/versions/seed.ts
index 98fdd39eb..1f00522c9 100644
--- a/test/versions/seed.ts
+++ b/test/versions/seed.ts
@@ -1,16 +1,18 @@
import { type Payload } from 'payload'
+import type { DraftPost } from './payload-types.js'
+
import { devUser } from '../credentials.js'
import { executePromises } from '../helpers/executePromises.js'
import { titleToDelete } from './shared.js'
import { draftCollectionSlug } from './slugs.js'
export async function seed(_payload: Payload, parallel: boolean = false) {
- const blocksField = [
+ const blocksField: DraftPost['blocksField'] = [
{
blockType: 'block',
- localized: 'text',
- text: 'text',
+ localized: null,
+ text: 'Hello World',
},
]