diff --git a/.api-reports/api-report-testing.md b/.api-reports/api-report-testing.md index eb8b2a052d5..2c1e6dd0195 100644 --- a/.api-reports/api-report-testing.md +++ b/.api-reports/api-report-testing.md @@ -4,8 +4,6 @@ ```ts -/// - import type { ASTNode } from 'graphql'; import type { DocumentNode } from 'graphql'; import type { ExecutionResult } from 'graphql'; @@ -13,7 +11,6 @@ import type { FieldNode } from 'graphql'; import type { FragmentDefinitionNode } from 'graphql'; import type { GraphQLError } from 'graphql'; import type { GraphQLErrorExtensions } from 'graphql'; -import type { GraphQLSchema } from 'graphql'; import { Observable } from 'zen-observable-ts'; import type { Observer } from 'zen-observable-ts'; import * as React_2 from 'react'; @@ -449,21 +446,6 @@ type ConcastSourcesIterable = Iterable>; // @public (undocumented) export function createMockClient(data: TData, query: DocumentNode, variables?: {}): ApolloClient; -// @alpha -export const createSchemaFetch: (schema: GraphQLSchema, mockFetchOpts?: { - validate: boolean; -}) => ((uri: any, options: any) => Promise) & { - mockGlobal: () => { - restore: () => void; - } & Disposable; -}; - -// Warning: (ae-forgotten-export) The symbol "TestSchemaOptions" needs to be exported by the entry point index.d.ts -// Warning: (ae-forgotten-export) The symbol "ProxiedSchema" needs to be exported by the entry point index.d.ts -// -// @alpha -export const createTestSchema: (schemaWithTypeDefs: GraphQLSchema, options: TestSchemaOptions) => ProxiedSchema; - // @public (undocumented) namespace DataProxy { // (undocumented) @@ -1283,11 +1265,6 @@ type Path = ReadonlyArray; // @public (undocumented) type Primitive = null | undefined | string | number | boolean | symbol | bigint; -// Warning: (ae-forgotten-export) The symbol "TestSchemaFns" needs to be exported by the entry point index.d.ts -// -// @public (undocumented) -type ProxiedSchema = GraphQLSchema & TestSchemaFns; - // @public (undocumented) class QueryInfo { constructor(queryManager: QueryManager, queryId?: string); @@ -1664,30 +1641,6 @@ interface SubscriptionOptions { variables?: TVariables; } -// @public (undocumented) -interface TestSchemaFns { - // (undocumented) - add: (addOptions: { - resolvers: Resolvers; - }) => ProxiedSchema; - // (undocumented) - fork: (forkOptions?: { - resolvers?: Resolvers; - }) => ProxiedSchema; - // (undocumented) - reset: () => void; -} - -// @public (undocumented) -interface TestSchemaOptions { - // (undocumented) - resolvers: Resolvers; - // (undocumented) - scalars?: { - [key: string]: any; - }; -} - // @public (undocumented) export function tick(): Promise; diff --git a/.api-reports/api-report-testing_core.md b/.api-reports/api-report-testing_core.md index 259a5a2c9bd..da8706e0df2 100644 --- a/.api-reports/api-report-testing_core.md +++ b/.api-reports/api-report-testing_core.md @@ -4,8 +4,6 @@ ```ts -/// - import type { ASTNode } from 'graphql'; import type { DocumentNode } from 'graphql'; import type { ExecutionResult } from 'graphql'; @@ -13,7 +11,6 @@ import type { FieldNode } from 'graphql'; import type { FragmentDefinitionNode } from 'graphql'; import type { GraphQLError } from 'graphql'; import type { GraphQLErrorExtensions } from 'graphql'; -import type { GraphQLSchema } from 'graphql'; import { Observable } from 'zen-observable-ts'; import type { Observer } from 'zen-observable-ts'; import type { Subscriber } from 'zen-observable-ts'; @@ -448,21 +445,6 @@ type ConcastSourcesIterable = Iterable>; // @public (undocumented) export function createMockClient(data: TData, query: DocumentNode, variables?: {}): ApolloClient; -// @alpha -export const createSchemaFetch: (schema: GraphQLSchema, mockFetchOpts?: { - validate: boolean; -}) => ((uri: any, options: any) => Promise) & { - mockGlobal: () => { - restore: () => void; - } & Disposable; -}; - -// Warning: (ae-forgotten-export) The symbol "TestSchemaOptions" needs to be exported by the entry point index.d.ts -// Warning: (ae-forgotten-export) The symbol "ProxiedSchema" needs to be exported by the entry point index.d.ts -// -// @alpha -export const createTestSchema: (schemaWithTypeDefs: GraphQLSchema, options: TestSchemaOptions) => ProxiedSchema; - // @public (undocumented) namespace DataProxy { // (undocumented) @@ -1238,11 +1220,6 @@ type Path = ReadonlyArray; // @public (undocumented) type Primitive = null | undefined | string | number | boolean | symbol | bigint; -// Warning: (ae-forgotten-export) The symbol "TestSchemaFns" needs to be exported by the entry point index.d.ts -// -// @public (undocumented) -type ProxiedSchema = GraphQLSchema & TestSchemaFns; - // @public (undocumented) class QueryInfo { constructor(queryManager: QueryManager, queryId?: string); @@ -1621,30 +1598,6 @@ interface SubscriptionOptions { variables?: TVariables; } -// @public (undocumented) -interface TestSchemaFns { - // (undocumented) - add: (addOptions: { - resolvers: Resolvers; - }) => ProxiedSchema; - // (undocumented) - fork: (forkOptions?: { - resolvers?: Resolvers; - }) => ProxiedSchema; - // (undocumented) - reset: () => void; -} - -// @public (undocumented) -interface TestSchemaOptions { - // (undocumented) - resolvers: Resolvers; - // (undocumented) - scalars?: { - [key: string]: any; - }; -} - // @public (undocumented) export function tick(): Promise; diff --git a/.api-reports/api-report-testing_experimental.md b/.api-reports/api-report-testing_experimental.md new file mode 100644 index 00000000000..cb1c775d5bf --- /dev/null +++ b/.api-reports/api-report-testing_experimental.md @@ -0,0 +1,85 @@ +## API Report File for "@apollo/client" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +/// + +import type { FieldNode } from 'graphql'; +import type { FragmentDefinitionNode } from 'graphql'; +import type { GraphQLSchema } from 'graphql'; + +// @alpha +export const createSchemaFetch: (schema: GraphQLSchema, mockFetchOpts?: { + validate: boolean; +}) => ((uri: any, options: any) => Promise) & { + mockGlobal: () => { + restore: () => void; + } & Disposable; +}; + +// Warning: (ae-forgotten-export) The symbol "TestSchemaOptions" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "ProxiedSchema" needs to be exported by the entry point index.d.ts +// +// @alpha +export const createTestSchema: (schemaWithTypeDefs: GraphQLSchema, options: TestSchemaOptions) => ProxiedSchema; + +// @public +interface FragmentMap { + // (undocumented) + [fragmentName: string]: FragmentDefinitionNode; +} + +// Warning: (ae-forgotten-export) The symbol "TestSchemaFns" needs to be exported by the entry point index.d.ts +// +// @public (undocumented) +type ProxiedSchema = GraphQLSchema & TestSchemaFns; + +// @public (undocumented) +type Resolver = (rootValue?: any, args?: any, context?: any, info?: { + field: FieldNode; + fragmentMap: FragmentMap; +}) => any; + +// @public (undocumented) +interface Resolvers { + // (undocumented) + [key: string]: { + [field: string]: Resolver; + }; +} + +// @public (undocumented) +interface TestSchemaFns { + // (undocumented) + add: (addOptions: { + resolvers: Resolvers; + }) => ProxiedSchema; + // (undocumented) + fork: (forkOptions?: { + resolvers?: Resolvers; + }) => ProxiedSchema; + // (undocumented) + reset: () => void; +} + +// @public (undocumented) +interface TestSchemaOptions { + // (undocumented) + resolvers: Resolvers; + // (undocumented) + scalars?: { + [key: string]: any; + }; +} + +// Warnings were encountered during analysis: +// +// src/core/LocalState.ts:46:5 - (ae-forgotten-export) The symbol "FragmentMap" needs to be exported by the entry point index.d.ts +// src/core/types.ts:203:5 - (ae-forgotten-export) The symbol "Resolver" needs to be exported by the entry point index.d.ts +// src/testing/experimental/createTestSchema.ts:10:23 - (ae-forgotten-export) The symbol "Resolvers" needs to be exported by the entry point index.d.ts + +// (No @packageDocumentation comment for this package) + +``` diff --git a/.changeset/wet-plants-admire.md b/.changeset/wet-plants-admire.md new file mode 100644 index 00000000000..4cfd15198e3 --- /dev/null +++ b/.changeset/wet-plants-admire.md @@ -0,0 +1,5 @@ +--- +"@apollo/client": minor +--- + +Moves new testing utilities to their own entrypoint, `testing/experimental` diff --git a/config/entryPoints.js b/config/entryPoints.js index cad194d61aa..674e1cc9ba2 100644 --- a/config/entryPoints.js +++ b/config/entryPoints.js @@ -27,6 +27,7 @@ const entryPoints = [ { dirs: ["react", "ssr"] }, { dirs: ["testing"], extensions: [".js", ".jsx"] }, { dirs: ["testing", "core"] }, + { dirs: ["testing", "experimental"] }, { dirs: ["utilities"] }, { dirs: ["utilities", "subscriptions", "relay"] }, { dirs: ["utilities", "subscriptions", "urql"] }, diff --git a/src/__tests__/__snapshots__/exports.ts.snap b/src/__tests__/__snapshots__/exports.ts.snap index 11cd795a396..f5a1dfd86bc 100644 --- a/src/__tests__/__snapshots__/exports.ts.snap +++ b/src/__tests__/__snapshots__/exports.ts.snap @@ -369,8 +369,6 @@ Array [ "MockSubscriptionLink", "MockedProvider", "createMockClient", - "createSchemaFetch", - "createTestSchema", "itAsync", "mockObservableLink", "mockSingleLink", @@ -388,8 +386,6 @@ Array [ "MockLink", "MockSubscriptionLink", "createMockClient", - "createSchemaFetch", - "createTestSchema", "itAsync", "mockObservableLink", "mockSingleLink", @@ -402,6 +398,13 @@ Array [ ] `; +exports[`exports of public entry points @apollo/client/testing/experimental 1`] = ` +Array [ + "createSchemaFetch", + "createTestSchema", +] +`; + exports[`exports of public entry points @apollo/client/utilities 1`] = ` Array [ "AutoCleanedStrongCache", diff --git a/src/__tests__/exports.ts b/src/__tests__/exports.ts index 181a1cc2b0a..d50b933810c 100644 --- a/src/__tests__/exports.ts +++ b/src/__tests__/exports.ts @@ -31,6 +31,7 @@ import * as reactParser from "../react/parser"; import * as reactSSR from "../react/ssr"; import * as testing from "../testing"; import * as testingCore from "../testing/core"; +import * as testingExperimental from "../testing/experimental"; import * as utilities from "../utilities"; import * as utilitiesGlobals from "../utilities/globals"; import * as urqlUtilities from "../utilities/subscriptions/urql"; @@ -77,6 +78,7 @@ describe("exports of public entry points", () => { check("@apollo/client/react/ssr", reactSSR); check("@apollo/client/testing", testing); check("@apollo/client/testing/core", testingCore); + check("@apollo/client/testing/experimental", testingExperimental); check("@apollo/client/utilities", utilities); check("@apollo/client/utilities/globals", utilitiesGlobals); check("@apollo/client/utilities/subscriptions/urql", urqlUtilities); diff --git a/src/testing/core/index.ts b/src/testing/core/index.ts index 3aaad32032b..e999590509a 100644 --- a/src/testing/core/index.ts +++ b/src/testing/core/index.ts @@ -12,6 +12,4 @@ export { createMockClient } from "./mocking/mockClient.js"; export { default as subscribeAndCount } from "./subscribeAndCount.js"; export { itAsync } from "./itAsync.js"; export { wait, tick } from "./wait.js"; -export { createTestSchema } from "./createTestSchema.js"; -export { createSchemaFetch } from "./createSchemaFetch.js"; export * from "./withConsoleSpy.js"; diff --git a/src/testing/core/__tests__/createTestSchema.test.tsx b/src/testing/experimental/__tests__/createTestSchema.test.tsx similarity index 100% rename from src/testing/core/__tests__/createTestSchema.test.tsx rename to src/testing/experimental/__tests__/createTestSchema.test.tsx diff --git a/src/testing/core/createSchemaFetch.ts b/src/testing/experimental/createSchemaFetch.ts similarity index 100% rename from src/testing/core/createSchemaFetch.ts rename to src/testing/experimental/createSchemaFetch.ts diff --git a/src/testing/core/createTestSchema.ts b/src/testing/experimental/createTestSchema.ts similarity index 98% rename from src/testing/core/createTestSchema.ts rename to src/testing/experimental/createTestSchema.ts index a294223440e..694b821ae1f 100644 --- a/src/testing/core/createTestSchema.ts +++ b/src/testing/experimental/createTestSchema.ts @@ -1,7 +1,7 @@ import { addResolversToSchema } from "@graphql-tools/schema"; import type { GraphQLSchema } from "graphql"; -import { createMockSchema } from "../graphql-tools/utils.js"; +import { createMockSchema } from "./graphql-tools/utils.js"; import type { Resolvers } from "../../core/types.js"; type ProxiedSchema = GraphQLSchema & TestSchemaFns; diff --git a/src/testing/graphql-tools/LICENSE b/src/testing/experimental/graphql-tools/LICENSE similarity index 100% rename from src/testing/graphql-tools/LICENSE rename to src/testing/experimental/graphql-tools/LICENSE diff --git a/src/testing/graphql-tools/utils.test.ts b/src/testing/experimental/graphql-tools/utils.test.ts similarity index 100% rename from src/testing/graphql-tools/utils.test.ts rename to src/testing/experimental/graphql-tools/utils.test.ts diff --git a/src/testing/graphql-tools/utils.ts b/src/testing/experimental/graphql-tools/utils.ts similarity index 99% rename from src/testing/graphql-tools/utils.ts rename to src/testing/experimental/graphql-tools/utils.ts index 629802eb5bd..4ff08d7ab0f 100644 --- a/src/testing/graphql-tools/utils.ts +++ b/src/testing/experimental/graphql-tools/utils.ts @@ -20,7 +20,7 @@ import { isUnionType, } from "graphql"; -import { isNonNullObject } from "../../utilities/index.js"; +import { isNonNullObject } from "../../../utilities/index.js"; import { MapperKind, mapSchema, getRootTypeNames } from "@graphql-tools/utils"; // Taken from @graphql-tools/mock: diff --git a/src/testing/experimental/index.ts b/src/testing/experimental/index.ts new file mode 100644 index 00000000000..a7080de66d2 --- /dev/null +++ b/src/testing/experimental/index.ts @@ -0,0 +1,2 @@ +export { createTestSchema } from "./createTestSchema.js"; +export { createSchemaFetch } from "./createSchemaFetch.js";