diff --git a/.changeset/itchy-eggs-stare.md b/.changeset/itchy-eggs-stare.md
new file mode 100644
index 00000000000..c746ed010c9
--- /dev/null
+++ b/.changeset/itchy-eggs-stare.md
@@ -0,0 +1,6 @@
+---
+'@keystone-next/testing': major
+'@keystone-next/keystone': minor
+---
+
+Moved exports of `@keystone-next/testing` to `@keystone-next/keystone/testing`
diff --git a/docs/pages/docs/guides/testing.mdx b/docs/pages/docs/guides/testing.mdx
index e70afacb7e0..af81f4a0b18 100644
--- a/docs/pages/docs/guides/testing.mdx
+++ b/docs/pages/docs/guides/testing.mdx
@@ -3,11 +3,11 @@ import { Markdown } from '../../../components/Markdown';
# Testing
When building a web application it's important to be able to test the behaviour of your system to ensure it does what you expect.
-In this guide we'll show you how to use the `@keystone-next/testing` package and [Jest](https://jestjs.io/) to write tests to check the behaviour of your GraphQL API.
+In this guide we'll show you how to use `@keystone-next/keystone/testing` and [Jest](https://jestjs.io/) to write tests to check the behaviour of your GraphQL API.
## Running tests
-In order to run tests using the `@keystone-next/testing` package, we recommend adding the following script to your `package.json` file.
+In order to run tests using `@keystone-next/keystone/testing`, we recommend adding the following script to your `package.json` file.
```json
"scripts": {
@@ -30,7 +30,7 @@ The first step to writing a test for your Keystone system is to setup a test run
You can then use this runner to wrap your test functions.
```typescript
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { config } from './keystone';
const runner = setupTestRunner({ config });
@@ -204,7 +204,7 @@ The context API can be used after calling `connect()` in the `beforeAll()` block
x> Be careful of sharing database state across tests. Avoid relying on changes of state from one test in subsequent tests.
```
-import { setupTestEnv, TestEnv } from '@keystone-next/testing';
+import { setupTestEnv, TestEnv } from '@keystone-next/keystone/testing';
import { KeystoneContext } from '@keystone-next/types';
describe('Example tests using test environment', () => {
@@ -234,4 +234,4 @@ describe('Example tests using test environment', () => {
});
```
-export default ({ children }) => {children};
+export default ({ children }) => {children};
diff --git a/examples-staging/ecommerce/package.json b/examples-staging/ecommerce/package.json
index 4a174a517da..b73a7535519 100644
--- a/examples-staging/ecommerce/package.json
+++ b/examples-staging/ecommerce/package.json
@@ -30,7 +30,6 @@
"stripe": "^8.169.0"
},
"devDependencies": {
- "@keystone-next/testing": "^1.1.1",
"typescript": "^4.3.5"
},
"engines": {
diff --git a/examples-staging/ecommerce/tests/mutations.test.ts b/examples-staging/ecommerce/tests/mutations.test.ts
index 6a114e9ea51..a2c73580c9f 100644
--- a/examples-staging/ecommerce/tests/mutations.test.ts
+++ b/examples-staging/ecommerce/tests/mutations.test.ts
@@ -1,5 +1,5 @@
import { KeystoneContext } from '@keystone-next/types';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import config from '../keystone';
const FAKE_ID = 'cinjfgbkjnfg';
diff --git a/examples/README.md b/examples/README.md
index e83361784cb..0e8cca9c196 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -23,7 +23,7 @@ Each project below demonstrates a Keystone feature you can learn about and exper
- [`extendGraphqlSchema`](./extend-graphql-schema): Extends the GraphQL API of the Task Manager base.
- [Virtual field](./virtual-field): Adds virtual fields to the Blog base.
- [Document field](./document-field): Adds document fields to the Blog base.
-- [Testing](./testing): Adds tests with `@keystone-next/testing` to the `withAuth()` example.
+- [Testing](./testing): Adds tests with `@keystone-next/keystone/testing` to the `withAuth()` example.
- [Custom field](./custom-field): Adds a custom `stars` field to the Blog base.
- [Custom field view](./custom-field-view): Adds a custom Admin UI view to a `json` field to the Task Manager base.
- [Custom Admin UI logo](./custom-admin-ui-logo): Adds a custom logo in the Admin UI to the Task Manager base.
diff --git a/examples/testing/README.md b/examples/testing/README.md
index ad49944a828..b64f5c36660 100644
--- a/examples/testing/README.md
+++ b/examples/testing/README.md
@@ -18,7 +18,7 @@ You can also access a GraphQL Playground at [localhost:3000/api/graphql](http://
## Features
-Keystone provides a testing library in the package [`@keystone-next/testing`](https://keystonejs.com/guides/testing) which helps you write tests using [Jest](https://jestjs.io/).
+Keystone provides a testing library in [`@keystone-next/keystone/testing`](https://keystonejs.com/guides/testing) which helps you write tests using [Jest](https://jestjs.io/).
This example project uses this library to add tests to the [`withAuth()`](../with-auth) example project. The tests can be found in [example.test.ts](./example.test.ts)
### Running tests
@@ -63,7 +63,7 @@ Ran all test suites.
The function `setupTestRunner` takes the project's `KeystoneConfig` object and creates a `runner` function. This test runner is then used to wrap a test function.
```typescript
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import config from './keystone';
const runner = setupTestRunner({ config });
@@ -128,7 +128,7 @@ The function `setupTestEnv` is used to set up a test environment which can be us
```typescript
import { KeystoneContext } from '@keystone-next/types';
-import { setupTestEnv, TestEnv } from '@keystone-next/testing';
+import { setupTestEnv, TestEnv } from '@keystone-next/keystone/testing';
import config from './keystone';
describe('Example tests using test environment', () => {
diff --git a/examples/testing/example.test.ts b/examples/testing/example.test.ts
index 5bdf91d8ac7..065064a41cd 100644
--- a/examples/testing/example.test.ts
+++ b/examples/testing/example.test.ts
@@ -1,5 +1,5 @@
import { KeystoneContext } from '@keystone-next/types';
-import { setupTestEnv, setupTestRunner, TestEnv } from '@keystone-next/testing';
+import { setupTestEnv, setupTestRunner, TestEnv } from '@keystone-next/keystone/testing';
import config from './keystone';
// Setup a test runner which will provide a clean test environment
diff --git a/examples/testing/package.json b/examples/testing/package.json
index e094b5328f9..6068f7cefec 100644
--- a/examples/testing/package.json
+++ b/examples/testing/package.json
@@ -16,7 +16,6 @@
"@keystone-next/auth": "^31.0.0",
"@keystone-next/fields": "^14.0.0",
"@keystone-next/keystone": "^24.0.0",
- "@keystone-next/testing": "^1.1.1",
"@keystone-next/types": "^24.0.0"
},
"devDependencies": {
diff --git a/packages/keystone/package.json b/packages/keystone/package.json
index d2be3d4829e..a53c95ed00e 100644
--- a/packages/keystone/package.json
+++ b/packages/keystone/package.json
@@ -16,7 +16,8 @@
"session",
"dist",
"static",
- "admin-ui"
+ "admin-ui",
+ "testing"
],
"bin": {
"keystone-next": "bin/cli.js"
@@ -62,6 +63,7 @@
"@types/prettier": "^2.3.2",
"@types/prompts": "^2.0.14",
"@types/source-map-support": "^0.5.4",
+ "@types/supertest": "^2.0.11",
"@types/uid-safe": "^2.1.2",
"@types/uuid": "^8.3.1",
"apollo-server-errors": "^2.5.0",
@@ -86,6 +88,7 @@
"graphql-upload": "^12.0.0",
"image-size": "^1.0.0",
"image-type": "^4.1.0",
+ "memoize-one": "^5.2.1",
"meow": "^9.0.0",
"next": "^10.2.3",
"node-fetch": "^2.6.1",
@@ -100,6 +103,7 @@
"react-dom": "^17.0.2",
"resolve": "^1.20.0",
"source-map-support": "^0.5.19",
+ "supertest": "^6.1.5",
"typescript": "^4.3.5",
"uid-safe": "^2.1.5",
"uuid": "^8.3.2"
@@ -125,6 +129,7 @@
"___internal-do-not-use-will-break-in-patch/admin-ui/{next-config.ts,id-field-view.tsx}",
"artifacts.ts",
"migrations.ts",
+ "testing.ts",
"schema/index.ts",
"session/index.ts",
"scripts/index.ts",
diff --git a/packages/keystone/src/testing.ts b/packages/keystone/src/testing.ts
new file mode 100644
index 00000000000..02edf3f7f62
--- /dev/null
+++ b/packages/keystone/src/testing.ts
@@ -0,0 +1,91 @@
+import path from 'path';
+import crypto from 'crypto';
+import fs from 'fs';
+import express from 'express';
+import supertest, { Test } from 'supertest';
+import memoizeOne from 'memoize-one';
+import type { KeystoneConfig, KeystoneContext } from '@keystone-next/types';
+import {
+ getCommittedArtifacts,
+ writeCommittedArtifacts,
+ requirePrismaClient,
+ generateNodeModulesArtifacts,
+} from './artifacts';
+import { pushPrismaSchemaToDatabase } from './migrations';
+import { initConfig, createSystem, createExpressServer } from '.';
+
+export type GraphQLRequest = (arg: {
+ query: string;
+ variables?: Record;
+ operationName?: string;
+}) => Test;
+
+export type TestArgs = {
+ context: KeystoneContext;
+ graphQLRequest: GraphQLRequest;
+ app: express.Express;
+};
+
+export type TestEnv = {
+ connect: () => Promise;
+ disconnect: () => Promise;
+ testArgs: TestArgs;
+};
+
+const _hashPrismaSchema = memoizeOne(prismaSchema =>
+ crypto.createHash('md5').update(prismaSchema).digest('hex')
+);
+const _alreadyGeneratedProjects = new Set();
+export async function setupTestEnv({
+ config: _config,
+}: {
+ config: KeystoneConfig;
+}): Promise {
+ // Force the UI to always be disabled.
+ const config = initConfig({ ..._config, ui: { isDisabled: true } });
+ const { graphQLSchema, getKeystone } = createSystem(config);
+
+ const artifacts = await getCommittedArtifacts(graphQLSchema, config);
+ const hash = _hashPrismaSchema(artifacts.prisma);
+
+ const artifactPath = path.resolve('.keystone', 'tests', hash);
+
+ if (!_alreadyGeneratedProjects.has(hash)) {
+ _alreadyGeneratedProjects.add(hash);
+ fs.mkdirSync(artifactPath, { recursive: true });
+ await writeCommittedArtifacts(artifacts, artifactPath);
+ await generateNodeModulesArtifacts(graphQLSchema, config, artifactPath);
+ }
+ await pushPrismaSchemaToDatabase(
+ config.db.url,
+ artifacts.prisma,
+ path.join(artifactPath, 'schema.prisma'),
+ true // shouldDropDatabase
+ );
+
+ const { connect, disconnect, createContext } = getKeystone(requirePrismaClient(artifactPath));
+
+ // (config, graphQLSchema, createContext, dev, projectAdminPath, isVerbose)
+ const app = await createExpressServer(config, graphQLSchema, createContext, true, '', false);
+
+ const graphQLRequest: GraphQLRequest = ({ query, variables = undefined, operationName }) =>
+ supertest(app)
+ .post('/api/graphql')
+ .send({ query, variables, operationName })
+ .set('Accept', 'application/json');
+
+ return { connect, disconnect, testArgs: { context: createContext(), graphQLRequest, app } };
+}
+
+export function setupTestRunner({ config }: { config: KeystoneConfig }) {
+ return (testFn: (testArgs: TestArgs) => Promise) => async () => {
+ // Reset the database to be empty for every test.
+ const { connect, disconnect, testArgs } = await setupTestEnv({ config });
+ await connect();
+ try {
+ return await testFn(testArgs);
+ } finally {
+ await disconnect();
+ }
+ };
+}
diff --git a/packages/keystone/testing/package.json b/packages/keystone/testing/package.json
new file mode 100644
index 00000000000..6cbbe144d0c
--- /dev/null
+++ b/packages/keystone/testing/package.json
@@ -0,0 +1,4 @@
+{
+ "main": "dist/keystone.cjs.js",
+ "module": "dist/keystone.esm.js"
+}
diff --git a/packages/testing/README.md b/packages/testing/README.md
index 81cb69fcca1..66e2b3d5adb 100644
--- a/packages/testing/README.md
+++ b/packages/testing/README.md
@@ -1,3 +1,3 @@
# Testing
-This package provides tools to help you test your Keystone system.
+This exports of this package have been moved to `@keystone-next/keystone`
diff --git a/packages/testing/package.json b/packages/testing/package.json
index 4e1827333ea..c107c88febc 100644
--- a/packages/testing/package.json
+++ b/packages/testing/package.json
@@ -9,12 +9,5 @@
"engines": {
"node": "^12.20 || >= 14.13"
},
- "dependencies": {
- "@keystone-next/keystone": "^24.0.0",
- "@types/supertest": "^2.0.11",
- "express": "^4.17.1",
- "memoize-one": "^5.2.1",
- "supertest": "^6.1.5"
- },
"repository": "https://github.com/keystonejs/keystone/tree/master/packages/testing"
}
diff --git a/packages/testing/src/index.ts b/packages/testing/src/index.ts
index 36f060e55f4..bba900a323f 100644
--- a/packages/testing/src/index.ts
+++ b/packages/testing/src/index.ts
@@ -1,91 +1,5 @@
-import path from 'path';
-import crypto from 'crypto';
-import fs from 'fs';
-import express from 'express';
-import supertest, { Test } from 'supertest';
-import memoizeOne from 'memoize-one';
-import { initConfig, createSystem, createExpressServer } from '@keystone-next/keystone';
-import { pushPrismaSchemaToDatabase } from '@keystone-next/keystone/migrations';
-import {
- getCommittedArtifacts,
- writeCommittedArtifacts,
- requirePrismaClient,
- generateNodeModulesArtifacts,
-} from '@keystone-next/keystone/artifacts';
-import type { KeystoneConfig, KeystoneContext } from '@keystone-next/types';
-
-export type GraphQLRequest = (arg: {
- query: string;
- variables?: Record;
- operationName?: string;
-}) => Test;
-
-export type TestArgs = {
- context: KeystoneContext;
- graphQLRequest: GraphQLRequest;
- app: express.Express;
-};
-
-export type TestEnv = {
- connect: () => Promise;
- disconnect: () => Promise;
- testArgs: TestArgs;
-};
-
-const _hashPrismaSchema = memoizeOne(prismaSchema =>
- crypto.createHash('md5').update(prismaSchema).digest('hex')
+throw new Error(
+ "Keystone's testing utilities have moved to `@keystone-next/keystone/testing`, please import them from there instead."
);
-const _alreadyGeneratedProjects = new Set();
-export async function setupTestEnv({
- config: _config,
-}: {
- config: KeystoneConfig;
-}): Promise {
- // Force the UI to always be disabled.
- const config = initConfig({ ..._config, ui: { isDisabled: true } });
- const { graphQLSchema, getKeystone } = createSystem(config);
-
- const artifacts = await getCommittedArtifacts(graphQLSchema, config);
- const hash = _hashPrismaSchema(artifacts.prisma);
-
- const artifactPath = path.resolve('.keystone', 'tests', hash);
-
- if (!_alreadyGeneratedProjects.has(hash)) {
- _alreadyGeneratedProjects.add(hash);
- fs.mkdirSync(artifactPath, { recursive: true });
- await writeCommittedArtifacts(artifacts, artifactPath);
- await generateNodeModulesArtifacts(graphQLSchema, config, artifactPath);
- }
- await pushPrismaSchemaToDatabase(
- config.db.url,
- artifacts.prisma,
- path.join(artifactPath, 'schema.prisma'),
- true // shouldDropDatabase
- );
-
- const { connect, disconnect, createContext } = getKeystone(requirePrismaClient(artifactPath));
-
- // (config, graphQLSchema, createContext, dev, projectAdminPath, isVerbose)
- const app = await createExpressServer(config, graphQLSchema, createContext, true, '', false);
-
- const graphQLRequest: GraphQLRequest = ({ query, variables = undefined, operationName }) =>
- supertest(app)
- .post('/api/graphql')
- .send({ query, variables, operationName })
- .set('Accept', 'application/json');
-
- return { connect, disconnect, testArgs: { context: createContext(), graphQLRequest, app } };
-}
-export function setupTestRunner({ config }: { config: KeystoneConfig }) {
- return (testFn: (testArgs: TestArgs) => Promise) => async () => {
- // Reset the database to be empty for every test.
- const { connect, disconnect, testArgs } = await setupTestEnv({ config });
- await connect();
- try {
- return await testFn(testArgs);
- } finally {
- await disconnect();
- }
- };
-}
+export {};
diff --git a/tests/admin-ui-tests/package.json b/tests/admin-ui-tests/package.json
index c59a07e04fe..c070e224814 100644
--- a/tests/admin-ui-tests/package.json
+++ b/tests/admin-ui-tests/package.json
@@ -25,7 +25,6 @@
"build": "keystone-next build"
},
"dependencies": {
- "@keystone-next/testing": "^1.1.1",
"@keystone-next/types": "^24.0.0",
"@keystone-next/utils": "^1.0.4",
"@manypkg/find-root": "^1.1.0",
diff --git a/tests/api-tests/access-control/authed.test.ts b/tests/api-tests/access-control/authed.test.ts
index 746bab83f25..659dc63fe2a 100644
--- a/tests/api-tests/access-control/authed.test.ts
+++ b/tests/api-tests/access-control/authed.test.ts
@@ -1,6 +1,6 @@
import { GraphQLError } from 'graphql';
import { DatabaseProvider, KeystoneContext } from '@keystone-next/types';
-import { setupTestEnv, TestEnv } from '@keystone-next/testing';
+import { setupTestEnv, TestEnv } from '@keystone-next/keystone/testing';
import { expectAccessDenied } from '../utils';
import {
FAKE_ID,
diff --git a/tests/api-tests/access-control/mutations-field-static.test.ts b/tests/api-tests/access-control/mutations-field-static.test.ts
index 7eebb4e8b4e..1cea319af95 100644
--- a/tests/api-tests/access-control/mutations-field-static.test.ts
+++ b/tests/api-tests/access-control/mutations-field-static.test.ts
@@ -1,6 +1,6 @@
import { text } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectAccessDenied } from '../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/access-control/mutations-list-declarative.test.ts b/tests/api-tests/access-control/mutations-list-declarative.test.ts
index c1618c85856..e47f36be911 100644
--- a/tests/api-tests/access-control/mutations-list-declarative.test.ts
+++ b/tests/api-tests/access-control/mutations-list-declarative.test.ts
@@ -1,6 +1,6 @@
import { text } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectAccessDenied } from '../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/access-control/mutations-list-static.test.ts b/tests/api-tests/access-control/mutations-list-static.test.ts
index 3c2ce0d1a0a..54901b97cd8 100644
--- a/tests/api-tests/access-control/mutations-list-static.test.ts
+++ b/tests/api-tests/access-control/mutations-list-static.test.ts
@@ -1,6 +1,6 @@
import { text } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectAccessDenied } from '../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/access-control/not-authed.test.ts b/tests/api-tests/access-control/not-authed.test.ts
index d95b7f3f4f8..672273684c6 100644
--- a/tests/api-tests/access-control/not-authed.test.ts
+++ b/tests/api-tests/access-control/not-authed.test.ts
@@ -1,6 +1,6 @@
import { GraphQLError } from 'graphql';
import { KeystoneContext } from '@keystone-next/types';
-import { GraphQLRequest, setupTestEnv, TestEnv } from '@keystone-next/testing';
+import { GraphQLRequest, setupTestEnv, TestEnv } from '@keystone-next/keystone/testing';
import { expectAccessDenied, expectGraphQLValidationError } from '../utils';
import {
FAKE_ID,
diff --git a/tests/api-tests/access-control/schema.test.ts b/tests/api-tests/access-control/schema.test.ts
index bdfa91f8654..8325b6b3c7c 100644
--- a/tests/api-tests/access-control/schema.test.ts
+++ b/tests/api-tests/access-control/schema.test.ts
@@ -1,4 +1,4 @@
-import { setupTestEnv, TestEnv } from '@keystone-next/testing';
+import { setupTestEnv, TestEnv } from '@keystone-next/keystone/testing';
import { getGqlNames, KeystoneContext } from '@keystone-next/types';
import {
getStaticListName,
diff --git a/tests/api-tests/auth-header.test.ts b/tests/api-tests/auth-header.test.ts
index e9d027d55d3..950bb061e70 100644
--- a/tests/api-tests/auth-header.test.ts
+++ b/tests/api-tests/auth-header.test.ts
@@ -3,7 +3,7 @@ import { createSchema, list } from '@keystone-next/keystone/schema';
import { statelessSessions } from '@keystone-next/keystone/session';
import { createAuth } from '@keystone-next/auth';
import type { KeystoneContext } from '@keystone-next/types';
-import { setupTestRunner, TestArgs, setupTestEnv } from '@keystone-next/testing';
+import { setupTestRunner, TestArgs, setupTestEnv } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectAccessDenied } from './utils';
const initialData = {
diff --git a/tests/api-tests/default-value/defaults.test.ts b/tests/api-tests/default-value/defaults.test.ts
index 5f6b813a358..5291be3407a 100644
--- a/tests/api-tests/default-value/defaults.test.ts
+++ b/tests/api-tests/default-value/defaults.test.ts
@@ -1,6 +1,6 @@
import { text } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { BaseFields } from '@keystone-next/types';
import { apiTestConfig } from '../utils';
diff --git a/tests/api-tests/extend-graphql-schema/extend-graphql-schema.test.ts b/tests/api-tests/extend-graphql-schema/extend-graphql-schema.test.ts
index 5d07a5b50a9..d3003d735eb 100644
--- a/tests/api-tests/extend-graphql-schema/extend-graphql-schema.test.ts
+++ b/tests/api-tests/extend-graphql-schema/extend-graphql-schema.test.ts
@@ -1,6 +1,6 @@
import { createSchema, list, graphQLSchemaExtension, gql } from '@keystone-next/keystone/schema';
import { text } from '@keystone-next/fields';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectInternalServerError } from '../utils';
const falseFn: (...args: any) => boolean = () => false;
diff --git a/tests/api-tests/fields/crud.test.ts b/tests/api-tests/fields/crud.test.ts
index adcf02f04a4..03fa388fc87 100644
--- a/tests/api-tests/fields/crud.test.ts
+++ b/tests/api-tests/fields/crud.test.ts
@@ -2,7 +2,7 @@ import path from 'path';
import globby from 'globby';
import { createSchema, list } from '@keystone-next/keystone/schema';
import { KeystoneContext } from '@keystone-next/types';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../utils';
const testModules = globby.sync(`packages/**/src/**/test-fixtures.{js,ts}`, {
diff --git a/tests/api-tests/fields/filter.test.ts b/tests/api-tests/fields/filter.test.ts
index 21d803ed0c5..55b61baed15 100644
--- a/tests/api-tests/fields/filter.test.ts
+++ b/tests/api-tests/fields/filter.test.ts
@@ -2,7 +2,7 @@ import path from 'path';
import globby from 'globby';
import { createSchema, list } from '@keystone-next/keystone/schema';
import { KeystoneContext } from '@keystone-next/types';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../utils';
const testModules = globby.sync(`packages/**/src/**/test-fixtures.{js,ts}`, {
diff --git a/tests/api-tests/fields/required.test.ts b/tests/api-tests/fields/required.test.ts
index 99f307d5ce5..dd790b71efa 100644
--- a/tests/api-tests/fields/required.test.ts
+++ b/tests/api-tests/fields/required.test.ts
@@ -1,7 +1,7 @@
import globby from 'globby';
import { createSchema, list } from '@keystone-next/keystone/schema';
import { text } from '@keystone-next/fields';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectValidationError } from '../utils';
const testModules = globby.sync(`packages/**/src/**/test-fixtures.{js,ts}`, {
diff --git a/tests/api-tests/fields/types/Virtual.test.ts b/tests/api-tests/fields/types/Virtual.test.ts
index 1c06f1b9de6..42c58939bf8 100644
--- a/tests/api-tests/fields/types/Virtual.test.ts
+++ b/tests/api-tests/fields/types/Virtual.test.ts
@@ -1,6 +1,6 @@
import { integer, relationship, text, virtual } from '@keystone-next/fields';
import { BaseFields, createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { schema } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/fields/types/document.test.ts b/tests/api-tests/fields/types/document.test.ts
index 8609c0ca211..cac608804fc 100644
--- a/tests/api-tests/fields/types/document.test.ts
+++ b/tests/api-tests/fields/types/document.test.ts
@@ -1,7 +1,7 @@
import { text } from '@keystone-next/fields';
import { document } from '@keystone-next/fields-document';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { KeystoneContext } from '../../../../packages/types/src';
import { apiTestConfig, expectInternalServerError } from '../../utils';
diff --git a/tests/api-tests/fields/unique.test.ts b/tests/api-tests/fields/unique.test.ts
index b2bf558bb4c..2d94e4a10e0 100644
--- a/tests/api-tests/fields/unique.test.ts
+++ b/tests/api-tests/fields/unique.test.ts
@@ -1,7 +1,7 @@
import globby from 'globby';
import { createSchema, list } from '@keystone-next/keystone/schema';
import { text } from '@keystone-next/fields';
-import { setupTestEnv, setupTestRunner } from '@keystone-next/testing';
+import { setupTestEnv, setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectPrismaError } from '../utils';
const testModules = globby.sync(`packages/**/src/**/test-fixtures.{js,ts}`, {
diff --git a/tests/api-tests/fields/unsupported.test.ts b/tests/api-tests/fields/unsupported.test.ts
index 1be2536745e..80be238f02b 100644
--- a/tests/api-tests/fields/unsupported.test.ts
+++ b/tests/api-tests/fields/unsupported.test.ts
@@ -1,7 +1,7 @@
import path from 'path';
import globby from 'globby';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestEnv } from '@keystone-next/testing';
+import { setupTestEnv } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../utils';
const testModules = globby.sync(`packages/**/src/**/test-fixtures.{js,ts}`, {
diff --git a/tests/api-tests/healthcheck.test.ts b/tests/api-tests/healthcheck.test.ts
index 0c8bbf411c4..3d7421ef27f 100644
--- a/tests/api-tests/healthcheck.test.ts
+++ b/tests/api-tests/healthcheck.test.ts
@@ -1,6 +1,6 @@
import { createSchema, list } from '@keystone-next/keystone/schema';
import { text } from '@keystone-next/fields';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import supertest from 'supertest';
import { apiTestConfig } from './utils';
diff --git a/tests/api-tests/hooks/auth-hooks.test.skip.ts b/tests/api-tests/hooks/auth-hooks.test.skip.ts
index 3b289e7aafb..aed14bf1399 100644
--- a/tests/api-tests/hooks/auth-hooks.test.skip.ts
+++ b/tests/api-tests/hooks/auth-hooks.test.skip.ts
@@ -4,7 +4,7 @@ import superagent from 'superagent';
import express from 'express';
import { createSchema, list } from '@keystone-next/keystone/schema';
import { text, password } from '@keystone-next/fields';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/hooks/hook-errors.test.ts b/tests/api-tests/hooks/hook-errors.test.ts
index bd2dad79fab..fe508af7001 100644
--- a/tests/api-tests/hooks/hook-errors.test.ts
+++ b/tests/api-tests/hooks/hook-errors.test.ts
@@ -1,6 +1,6 @@
import { text } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { GraphQLRequest, setupTestRunner } from '@keystone-next/testing';
+import { GraphQLRequest, setupTestRunner } from '@keystone-next/keystone/testing';
import { KeystoneContext } from '../../../packages/types/src';
import { apiTestConfig, expectAccessDenied, expectExtensionError } from '../utils';
diff --git a/tests/api-tests/hooks/list-hooks.test.ts b/tests/api-tests/hooks/list-hooks.test.ts
index 72ab482736c..cebeb0d8d0d 100644
--- a/tests/api-tests/hooks/list-hooks.test.ts
+++ b/tests/api-tests/hooks/list-hooks.test.ts
@@ -1,6 +1,6 @@
import { text } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectExtensionError } from '../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/hooks/validation.test.ts b/tests/api-tests/hooks/validation.test.ts
index 54e8276b360..0803cf1a002 100644
--- a/tests/api-tests/hooks/validation.test.ts
+++ b/tests/api-tests/hooks/validation.test.ts
@@ -1,6 +1,6 @@
import { text } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectValidationError } from '../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/id-field.test.ts b/tests/api-tests/id-field.test.ts
index 095be4f6000..dad66472ffe 100644
--- a/tests/api-tests/id-field.test.ts
+++ b/tests/api-tests/id-field.test.ts
@@ -1,6 +1,6 @@
import { createSchema, list } from '@keystone-next/keystone/schema';
import { text } from '@keystone-next/fields';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { isCuid } from 'cuid';
import { validate } from 'uuid';
import { apiTestConfig, expectBadUserInput } from './utils';
diff --git a/tests/api-tests/new-interfaces.test.ts b/tests/api-tests/new-interfaces.test.ts
index 95606f73019..e39c446ab49 100644
--- a/tests/api-tests/new-interfaces.test.ts
+++ b/tests/api-tests/new-interfaces.test.ts
@@ -1,6 +1,6 @@
import { createSchema, list } from '@keystone-next/keystone/schema';
import { text } from '@keystone-next/fields';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from './utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/package.json b/tests/api-tests/package.json
index d14c3f9ac32..ca6349e9569 100644
--- a/tests/api-tests/package.json
+++ b/tests/api-tests/package.json
@@ -27,7 +27,6 @@
"uuid": "^8.3.2"
},
"dependencies": {
- "@keystone-next/testing": "^1.1.1",
"@keystone-next/types": "^24.0.0",
"@keystone-next/utils": "^1.0.4",
"apollo-cache-control": "^0.14.0",
diff --git a/tests/api-tests/queries/cache-hints.test.ts b/tests/api-tests/queries/cache-hints.test.ts
index f2146dcfcfc..63c4fc6da03 100644
--- a/tests/api-tests/queries/cache-hints.test.ts
+++ b/tests/api-tests/queries/cache-hints.test.ts
@@ -2,7 +2,7 @@ import { CacheScope } from 'apollo-cache-control';
import { text, relationship, integer } from '@keystone-next/fields';
import { list, createSchema, graphQLSchemaExtension } from '@keystone-next/keystone/schema';
import { KeystoneContext } from '@keystone-next/types';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/queries/filters.test.ts b/tests/api-tests/queries/filters.test.ts
index c3a731f665b..1a4a6114813 100644
--- a/tests/api-tests/queries/filters.test.ts
+++ b/tests/api-tests/queries/filters.test.ts
@@ -1,6 +1,6 @@
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/queries/limits.test.ts b/tests/api-tests/queries/limits.test.ts
index dd0ee7e96b8..133bf743482 100644
--- a/tests/api-tests/queries/limits.test.ts
+++ b/tests/api-tests/queries/limits.test.ts
@@ -1,6 +1,6 @@
import { text, integer, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectGraphQLValidationError, expectLimitsExceededError } from '../utils';
import { depthLimit, definitionLimit, fieldLimit } from './validation';
diff --git a/tests/api-tests/queries/orderBy.test.ts b/tests/api-tests/queries/orderBy.test.ts
index d391cde2b9e..f94e452ff5a 100644
--- a/tests/api-tests/queries/orderBy.test.ts
+++ b/tests/api-tests/queries/orderBy.test.ts
@@ -1,6 +1,6 @@
import { integer } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig, expectBadUserInput } from '../utils';
diff --git a/tests/api-tests/queries/relationships.test.ts b/tests/api-tests/queries/relationships.test.ts
index a87d4960d3c..aad22ffdc35 100644
--- a/tests/api-tests/queries/relationships.test.ts
+++ b/tests/api-tests/queries/relationships.test.ts
@@ -2,7 +2,7 @@ import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/crud-self-ref/many-to-many-one-sided.test.ts b/tests/api-tests/relationships/crud-self-ref/many-to-many-one-sided.test.ts
index 62c85fb47ef..f466adcbf22 100644
--- a/tests/api-tests/relationships/crud-self-ref/many-to-many-one-sided.test.ts
+++ b/tests/api-tests/relationships/crud-self-ref/many-to-many-one-sided.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud-self-ref/many-to-many.test.ts b/tests/api-tests/relationships/crud-self-ref/many-to-many.test.ts
index 6be81e702de..c186ed7aecf 100644
--- a/tests/api-tests/relationships/crud-self-ref/many-to-many.test.ts
+++ b/tests/api-tests/relationships/crud-self-ref/many-to-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud-self-ref/one-to-many-one-sided.test.ts b/tests/api-tests/relationships/crud-self-ref/one-to-many-one-sided.test.ts
index 9d77cb502f1..172c45a8e05 100644
--- a/tests/api-tests/relationships/crud-self-ref/one-to-many-one-sided.test.ts
+++ b/tests/api-tests/relationships/crud-self-ref/one-to-many-one-sided.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud-self-ref/one-to-many.test.ts b/tests/api-tests/relationships/crud-self-ref/one-to-many.test.ts
index 09d4ec8dae5..1ccef934cf9 100644
--- a/tests/api-tests/relationships/crud-self-ref/one-to-many.test.ts
+++ b/tests/api-tests/relationships/crud-self-ref/one-to-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud-self-ref/one-to-one.test.ts b/tests/api-tests/relationships/crud-self-ref/one-to-one.test.ts
index 3d0dc526ca7..09389638c0c 100644
--- a/tests/api-tests/relationships/crud-self-ref/one-to-one.test.ts
+++ b/tests/api-tests/relationships/crud-self-ref/one-to-one.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud/many-to-many-one-sided.test.ts b/tests/api-tests/relationships/crud/many-to-many-one-sided.test.ts
index fb9ca10d78f..8d0352da977 100644
--- a/tests/api-tests/relationships/crud/many-to-many-one-sided.test.ts
+++ b/tests/api-tests/relationships/crud/many-to-many-one-sided.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud/many-to-many.test.ts b/tests/api-tests/relationships/crud/many-to-many.test.ts
index 5f9309524e3..3619f083a0f 100644
--- a/tests/api-tests/relationships/crud/many-to-many.test.ts
+++ b/tests/api-tests/relationships/crud/many-to-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud/one-to-many-one-sided.test.ts b/tests/api-tests/relationships/crud/one-to-many-one-sided.test.ts
index d7b96de0065..817c62b345e 100644
--- a/tests/api-tests/relationships/crud/one-to-many-one-sided.test.ts
+++ b/tests/api-tests/relationships/crud/one-to-many-one-sided.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud/one-to-many.test.ts b/tests/api-tests/relationships/crud/one-to-many.test.ts
index 6585dbe2f75..71f6da5e4a4 100644
--- a/tests/api-tests/relationships/crud/one-to-many.test.ts
+++ b/tests/api-tests/relationships/crud/one-to-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/crud/one-to-one.test.ts b/tests/api-tests/relationships/crud/one-to-one.test.ts
index b4117a0c4b1..cf78d01bc5a 100644
--- a/tests/api-tests/relationships/crud/one-to-one.test.ts
+++ b/tests/api-tests/relationships/crud/one-to-one.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import type { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/filtering/access-control.test.ts b/tests/api-tests/relationships/filtering/access-control.test.ts
index df0b3715ba7..201cfbc6247 100644
--- a/tests/api-tests/relationships/filtering/access-control.test.ts
+++ b/tests/api-tests/relationships/filtering/access-control.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/filtering/filtering.test.ts b/tests/api-tests/relationships/filtering/filtering.test.ts
index 32224aea55a..e416b5ff4c5 100644
--- a/tests/api-tests/relationships/filtering/filtering.test.ts
+++ b/tests/api-tests/relationships/filtering/filtering.test.ts
@@ -1,6 +1,6 @@
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../../utils';
type IdType = any;
diff --git a/tests/api-tests/relationships/filtering/nested.test.ts b/tests/api-tests/relationships/filtering/nested.test.ts
index daf5829477b..751a22d9f2a 100644
--- a/tests/api-tests/relationships/filtering/nested.test.ts
+++ b/tests/api-tests/relationships/filtering/nested.test.ts
@@ -1,4 +1,4 @@
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
import { apiTestConfig } from '../../utils';
diff --git a/tests/api-tests/relationships/many-to-one-to-one.test.ts b/tests/api-tests/relationships/many-to-one-to-one.test.ts
index b56821167b4..9bb0829f2e3 100644
--- a/tests/api-tests/relationships/many-to-one-to-one.test.ts
+++ b/tests/api-tests/relationships/many-to-one-to-one.test.ts
@@ -2,7 +2,7 @@ import { KeystoneContext } from '@keystone-next/types';
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/nested-mutations/connect-many.test.ts b/tests/api-tests/relationships/nested-mutations/connect-many.test.ts
index 39acbcc3784..cb73cff3ec5 100644
--- a/tests/api-tests/relationships/nested-mutations/connect-many.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/connect-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectRelationshipError } from '../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/nested-mutations/connect-singular.test.ts b/tests/api-tests/relationships/nested-mutations/connect-singular.test.ts
index 99c518ac9a6..83d7095d890 100644
--- a/tests/api-tests/relationships/nested-mutations/connect-singular.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/connect-singular.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectRelationshipError } from '../../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/relationships/nested-mutations/create-and-connect-many.test.ts b/tests/api-tests/relationships/nested-mutations/create-and-connect-many.test.ts
index f0e5bcdfb62..54ce6032310 100644
--- a/tests/api-tests/relationships/nested-mutations/create-and-connect-many.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/create-and-connect-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectRelationshipError } from '../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/nested-mutations/create-and-connect-singular.test.ts b/tests/api-tests/relationships/nested-mutations/create-and-connect-singular.test.ts
index 69dd4782b1b..15f9f4aef71 100644
--- a/tests/api-tests/relationships/nested-mutations/create-and-connect-singular.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/create-and-connect-singular.test.ts
@@ -1,6 +1,6 @@
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectRelationshipError } from '../../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/relationships/nested-mutations/create-many.test.ts b/tests/api-tests/relationships/nested-mutations/create-many.test.ts
index 0440365f3aa..8409eacfdcf 100644
--- a/tests/api-tests/relationships/nested-mutations/create-many.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/create-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectAccessDenied, expectRelationshipError } from '../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/nested-mutations/create-singular.test.ts b/tests/api-tests/relationships/nested-mutations/create-singular.test.ts
index feedce7adc8..a64c1a03f3c 100644
--- a/tests/api-tests/relationships/nested-mutations/create-singular.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/create-singular.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectGraphQLValidationError, expectRelationshipError } from '../../utils';
const runner = setupTestRunner({
diff --git a/tests/api-tests/relationships/nested-mutations/disconnect-many.test.ts b/tests/api-tests/relationships/nested-mutations/disconnect-many.test.ts
index 5c9340b1f26..3da3ee4cd12 100644
--- a/tests/api-tests/relationships/nested-mutations/disconnect-many.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/disconnect-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectGraphQLValidationError, expectRelationshipError } from '../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/nested-mutations/disconnect-singular.test.ts b/tests/api-tests/relationships/nested-mutations/disconnect-singular.test.ts
index 0d42b4bfa9c..818ed3a01b1 100644
--- a/tests/api-tests/relationships/nested-mutations/disconnect-singular.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/disconnect-singular.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectGraphQLValidationError } from '../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/nested-mutations/reconnect-many-to-one.test.ts b/tests/api-tests/relationships/nested-mutations/reconnect-many-to-one.test.ts
index 7dd1c6e6f8f..2562e19e120 100644
--- a/tests/api-tests/relationships/nested-mutations/reconnect-many-to-one.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/reconnect-many-to-one.test.ts
@@ -1,6 +1,6 @@
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../../utils';
type IdType = any;
diff --git a/tests/api-tests/relationships/nested-mutations/set-many.test.ts b/tests/api-tests/relationships/nested-mutations/set-many.test.ts
index 23655182eb0..c369620cd87 100644
--- a/tests/api-tests/relationships/nested-mutations/set-many.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/set-many.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig, expectGraphQLValidationError, expectRelationshipError } from '../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/nested-mutations/two-way-backreference/to-many.test.ts b/tests/api-tests/relationships/nested-mutations/two-way-backreference/to-many.test.ts
index 68eb9bcfae2..ffcac56eea6 100644
--- a/tests/api-tests/relationships/nested-mutations/two-way-backreference/to-many.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/two-way-backreference/to-many.test.ts
@@ -2,7 +2,7 @@ import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
import { KeystoneContext } from '@keystone-next/types';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/nested-mutations/two-way-backreference/to-one-required.test.ts b/tests/api-tests/relationships/nested-mutations/two-way-backreference/to-one-required.test.ts
index 36ca0062501..175dcea016c 100644
--- a/tests/api-tests/relationships/nested-mutations/two-way-backreference/to-one-required.test.ts
+++ b/tests/api-tests/relationships/nested-mutations/two-way-backreference/to-one-required.test.ts
@@ -1,7 +1,7 @@
import { gen, sampleOne } from 'testcheck';
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { apiTestConfig } from '../../../utils';
const alphanumGenerator = gen.alphaNumString.notEmpty();
diff --git a/tests/api-tests/relationships/shared-names.test.ts b/tests/api-tests/relationships/shared-names.test.ts
index 2d058c296c8..2553ad3436c 100644
--- a/tests/api-tests/relationships/shared-names.test.ts
+++ b/tests/api-tests/relationships/shared-names.test.ts
@@ -1,6 +1,6 @@
import { text, relationship } from '@keystone-next/fields';
import { createSchema, list } from '@keystone-next/keystone/schema';
-import { setupTestRunner } from '@keystone-next/testing';
+import { setupTestRunner } from '@keystone-next/keystone/testing';
import { KeystoneContext } from '@keystone-next/types';
import { apiTestConfig } from '../utils';
diff --git a/tests/api-tests/utils.ts b/tests/api-tests/utils.ts
index 5b85916b4cc..391b70fdc15 100644
--- a/tests/api-tests/utils.ts
+++ b/tests/api-tests/utils.ts
@@ -2,7 +2,7 @@ import { KeystoneConfig, DatabaseProvider } from '@keystone-next/types';
// This function injects the db configuration that we use for testing in CI.
// This functionality is a keystone repo specific way of doing things, so we don't
-// export it from the `@keystone-next/testing` package.
+// export it from `@keystone-next/keystone/testing`.
export const apiTestConfig = (
config: Omit & {
db?: Omit;
diff --git a/tests/benchmarks/fixtures/create-related.js b/tests/benchmarks/fixtures/create-related.js
index 1a513c6a0af..a9b0d133068 100644
--- a/tests/benchmarks/fixtures/create-related.js
+++ b/tests/benchmarks/fixtures/create-related.js
@@ -1,6 +1,6 @@
const { text, relationship } = require('@keystone-next/fields');
const { list, createSchema } = require('@keystone-next/keystone/schema');
-const { setupTestRunner } = require('@keystone-next/testing');
+const { setupTestRunner } = require('@keystone-next/keystone/testing');
const { apiTestConfig } = require('../../utils.ts');
const { FixtureGroup, timeQuery, populate, range } = require('../lib/utils');
diff --git a/tests/benchmarks/fixtures/create.js b/tests/benchmarks/fixtures/create.js
index 7fdd3c011db..b3c3f3c27ca 100644
--- a/tests/benchmarks/fixtures/create.js
+++ b/tests/benchmarks/fixtures/create.js
@@ -1,6 +1,6 @@
const { text } = require('@keystone-next/fields');
const { list, createSchema } = require('@keystone-next/keystone/schema');
-const { setupTestRunner } = require('@keystone-next/testing');
+const { setupTestRunner } = require('@keystone-next/keystone/testing');
const { apiTestConfig } = require('../../utils.ts');
const { FixtureGroup, timeQuery, populate, range } = require('../lib/utils');
diff --git a/tests/benchmarks/fixtures/query.js b/tests/benchmarks/fixtures/query.js
index 2c97640661d..8071dd2a1fb 100644
--- a/tests/benchmarks/fixtures/query.js
+++ b/tests/benchmarks/fixtures/query.js
@@ -1,6 +1,6 @@
const { text, relationship } = require('@keystone-next/fields');
const { createSchema, list } = require('@keystone-next/keystone/schema');
-const { setupTestRunner } = require('@keystone-next/testing');
+const { setupTestRunner } = require('@keystone-next/keystone/testing');
const { apiTestConfig } = require('../../utils.ts');
const { FixtureGroup, timeQuery, populate, range } = require('../lib/utils');
diff --git a/tests/benchmarks/package.json b/tests/benchmarks/package.json
index 0d27253703b..17a6c0b5360 100644
--- a/tests/benchmarks/package.json
+++ b/tests/benchmarks/package.json
@@ -16,7 +16,6 @@
"dependencies": {
"@keystone-next/fields": "^14.0.0",
"@keystone-next/keystone": "^24.0.0",
- "@keystone-next/testing": "^1.1.1",
"cookie-signature": "^1.1.0",
"testcheck": "^1.0.0-rc.2"
}