@confect/test 1.0.0-next.3 → 1.0.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @confect/test
2
2
 
3
+ ## 1.0.0-next.4
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [46109fb]
8
+ - @confect/server@1.0.0-next.4
9
+ - @confect/core@1.0.0-next.4
10
+
3
11
  ## 1.0.0-next.3
4
12
 
5
13
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { Ref } from "@confect/core";
2
- import { DatabaseSchema, RegisteredFunctions } from "@confect/server";
2
+ import { DatabaseSchema, RegisteredConvexFunction } from "@confect/server";
3
3
  import { Context, Effect, Layer, ParseResult, Schema } from "effect";
4
4
  import { UserIdentity } from "convex/server";
5
5
  import { Value } from "convex/values";
@@ -13,8 +13,8 @@ type TestConfectWithoutIdentity<ConfectSchema extends DatabaseSchema.AnyWithProp
13
13
  mutation: <MutationRef extends Ref.AnyMutation>(mutationRef: MutationRef, args: Ref.Args<MutationRef>["Type"]) => Effect.Effect<Ref.Returns<MutationRef>["Type"], ParseResult.ParseError>;
14
14
  action: <ActionRef extends Ref.AnyAction>(actionRef: ActionRef, args: Ref.Args<ActionRef>["Type"]) => Effect.Effect<Ref.Returns<ActionRef>["Type"], ParseResult.ParseError>;
15
15
  run: {
16
- <E>(handler: Effect.Effect<void, E, RegisteredFunctions.MutationServices<ConfectSchema>>): Effect.Effect<void>;
17
- <A, B extends Value, E>(handler: Effect.Effect<A, E, RegisteredFunctions.MutationServices<ConfectSchema>>, returns: Schema.Schema<A, B>): Effect.Effect<A, ParseResult.ParseError>;
16
+ <E>(handler: Effect.Effect<void, E, RegisteredConvexFunction.MutationServices<ConfectSchema>>): Effect.Effect<void>;
17
+ <A, B extends Value, E>(handler: Effect.Effect<A, E, RegisteredConvexFunction.MutationServices<ConfectSchema>>, returns: Schema.Schema<A, B>): Effect.Effect<A, ParseResult.ParseError>;
18
18
  };
19
19
  fetch: (pathQueryFragment: string, init?: RequestInit) => Effect.Effect<Response>;
20
20
  finishInProgressScheduledFunctions: () => Effect.Effect<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"TestConfect.d.ts","names":[],"sources":["../src/TestConfect.ts"],"mappings":";;;;;;;;;;KAaY,0BAAA,uBACY,cAAA,CAAe,YAAA;EAErC,KAAA,oBAAyB,GAAA,CAAI,QAAA,EAC3B,QAAA,EAAU,QAAA,EACV,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,QAAA,cACZ,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,OAAA,CAAQ,QAAA,WAAmB,WAAA,CAAY,UAAA;EAC9D,QAAA,uBAA+B,GAAA,CAAI,WAAA,EACjC,WAAA,EAAa,WAAA,EACb,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,WAAA,cACZ,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,OAAA,CAAQ,WAAA,WAAsB,WAAA,CAAY,UAAA;EACjE,MAAA,qBAA2B,GAAA,CAAI,SAAA,EAC7B,SAAA,EAAW,SAAA,EACX,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,SAAA,cACZ,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,OAAA,CAAQ,SAAA,WAAoB,WAAA,CAAY,UAAA;EAC/D,GAAA;IAAA,IAEI,OAAA,EAAS,MAAA,CAAO,MAAA,OAEd,CAAA,EACA,mBAAA,CAAoB,gBAAA,CAAiB,aAAA,KAEtC,MAAA,CAAO,MAAA;IAAA,cACI,KAAA,KACZ,OAAA,EAAS,MAAA,CAAO,MAAA,CACd,CAAA,EACA,CAAA,EACA,mBAAA,CAAoB,gBAAA,CAAiB,aAAA,IAEvC,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,IACzB,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,WAAA,CAAY,UAAA;EAAA;EAElC,KAAA,GACE,iBAAA,UACA,IAAA,GAAO,WAAA,KACJ,MAAA,CAAO,MAAA,CAAO,QAAA;EACnB,kCAAA,QAA0C,MAAA,CAAO,MAAA;EACjD,2BAAA,GACE,aAAA,iBACG,MAAA,CAAO,MAAA;AAAA;AAAA,KAGF,WAAA,uBAAkC,cAAA,CAAe,YAAA;EAC3D,YAAA,GACE,YAAA,EAAc,OAAA,CAAQ,YAAA,MACnB,0BAAA,CAA2B,aAAA;AAAA,IAC9B,0BAAA,CAA2B,aAAA;AAAA,cAElB,WAAA,yBACW,cAAA,CAAe,YAAA,OAAY,OAAA,CAAA,GAAA,CAAA,WAAA,CAAA,aAAA,GAAA,WAAA,CAAA,aAAA;AAAA,cA0LtC,KAAA,2BACc,cAAA,CAAe,YAAA,EACtC,cAAA,EAAgB,eAAA,EAChB,OAAA,EAAS,MAAA,eAAqB,OAAA,iBAE5B,KAAA,CAAM,KAAA,CAAM,WAAA,CAAY,eAAA"}
1
+ {"version":3,"file":"TestConfect.d.ts","names":[],"sources":["../src/TestConfect.ts"],"mappings":";;;;;;;;;;KAaY,0BAAA,uBACY,cAAA,CAAe,YAAA;EAErC,KAAA,oBAAyB,GAAA,CAAI,QAAA,EAC3B,QAAA,EAAU,QAAA,EACV,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,QAAA,cACZ,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,OAAA,CAAQ,QAAA,WAAmB,WAAA,CAAY,UAAA;EAC9D,QAAA,uBAA+B,GAAA,CAAI,WAAA,EACjC,WAAA,EAAa,WAAA,EACb,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,WAAA,cACZ,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,OAAA,CAAQ,WAAA,WAAsB,WAAA,CAAY,UAAA;EACjE,MAAA,qBAA2B,GAAA,CAAI,SAAA,EAC7B,SAAA,EAAW,SAAA,EACX,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,SAAA,cACZ,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,OAAA,CAAQ,SAAA,WAAoB,WAAA,CAAY,UAAA;EAC/D,GAAA;IAAA,IAEI,OAAA,EAAS,MAAA,CAAO,MAAA,OAEd,CAAA,EACA,wBAAA,CAAyB,gBAAA,CAAiB,aAAA,KAE3C,MAAA,CAAO,MAAA;IAAA,cACI,KAAA,KACZ,OAAA,EAAS,MAAA,CAAO,MAAA,CACd,CAAA,EACA,CAAA,EACA,wBAAA,CAAyB,gBAAA,CAAiB,aAAA,IAE5C,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,IACzB,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,WAAA,CAAY,UAAA;EAAA;EAElC,KAAA,GACE,iBAAA,UACA,IAAA,GAAO,WAAA,KACJ,MAAA,CAAO,MAAA,CAAO,QAAA;EACnB,kCAAA,QAA0C,MAAA,CAAO,MAAA;EACjD,2BAAA,GACE,aAAA,iBACG,MAAA,CAAO,MAAA;AAAA;AAAA,KAGF,WAAA,uBAAkC,cAAA,CAAe,YAAA;EAC3D,YAAA,GACE,YAAA,EAAc,OAAA,CAAQ,YAAA,MACnB,0BAAA,CAA2B,aAAA;AAAA,IAC9B,0BAAA,CAA2B,aAAA;AAAA,cAElB,WAAA,yBACW,cAAA,CAAe,YAAA,OAAY,OAAA,CAAA,GAAA,CAAA,WAAA,CAAA,aAAA,GAAA,WAAA,CAAA,aAAA;AAAA,cA4LtC,KAAA,2BACc,cAAA,CAAe,YAAA,EACtC,cAAA,EAAgB,eAAA,EAChB,OAAA,EAAS,MAAA,eAAqB,OAAA,iBAE5B,KAAA,CAAM,KAAA,CAAM,WAAA,CAAY,eAAA"}
@@ -1,6 +1,6 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
2
  import { Ref } from "@confect/core";
3
- import { RegisteredFunctions } from "@confect/server";
3
+ import { RegisteredConvexFunction } from "@confect/server";
4
4
  import { convexTest } from "convex-test";
5
5
  import { Context, Effect, Layer, Schema } from "effect";
6
6
 
@@ -37,7 +37,7 @@ var TestConfectImplWithoutIdentity = class {
37
37
  return yield* Schema.decode(action.returns)(encodedReturns);
38
38
  });
39
39
  run = ((handler, returns) => {
40
- const makeMutationLayer = (mutationCtx) => RegisteredFunctions.mutationLayer(this.confectSchema, mutationCtx);
40
+ const makeMutationLayer = (mutationCtx) => RegisteredConvexFunction.mutationLayer(this.confectSchema, mutationCtx);
41
41
  return returns === void 0 ? Effect.promise(() => this.testConvex.run((mutationCtx) => Effect.runPromise(handler.pipe(Effect.asVoid, Effect.provide(makeMutationLayer(mutationCtx)))))) : Effect.promise(() => this.testConvex.run((mutationCtx) => Effect.runPromise(handler.pipe(Effect.andThen(Schema.encode(returns)), Effect.provide(makeMutationLayer(mutationCtx)))))).pipe(Effect.andThen(Schema.decode(returns)));
42
42
  });
43
43
  fetch = (pathQueryFragment, init) => Effect.promise(() => this.testConvex.fetch(pathQueryFragment, init));
@@ -1 +1 @@
1
- {"version":3,"file":"TestConfect.js","names":[],"sources":["../src/TestConfect.ts"],"sourcesContent":["import { Ref } from \"@confect/core\";\nimport type { DatabaseSchema, DataModel } from \"@confect/server\";\nimport { RegisteredFunctions } from \"@confect/server\";\nimport type {\n TestConvexForDataModel,\n TestConvexForDataModelAndIdentity,\n} from \"convex-test\";\nimport { convexTest } from \"convex-test\";\nimport type { GenericMutationCtx, UserIdentity } from \"convex/server\";\nimport type { Value } from \"convex/values\";\nimport type { ParseResult } from \"effect\";\nimport { Context, Effect, Layer, Schema } from \"effect\";\n\nexport type TestConfectWithoutIdentity<\n ConfectSchema extends DatabaseSchema.AnyWithProps,\n> = {\n query: <QueryRef extends Ref.AnyQuery>(\n queryRef: QueryRef,\n args: Ref.Args<QueryRef>[\"Type\"],\n ) => Effect.Effect<Ref.Returns<QueryRef>[\"Type\"], ParseResult.ParseError>;\n mutation: <MutationRef extends Ref.AnyMutation>(\n mutationRef: MutationRef,\n args: Ref.Args<MutationRef>[\"Type\"],\n ) => Effect.Effect<Ref.Returns<MutationRef>[\"Type\"], ParseResult.ParseError>;\n action: <ActionRef extends Ref.AnyAction>(\n actionRef: ActionRef,\n args: Ref.Args<ActionRef>[\"Type\"],\n ) => Effect.Effect<Ref.Returns<ActionRef>[\"Type\"], ParseResult.ParseError>;\n run: {\n <E>(\n handler: Effect.Effect<\n void,\n E,\n RegisteredFunctions.MutationServices<ConfectSchema>\n >,\n ): Effect.Effect<void>;\n <A, B extends Value, E>(\n handler: Effect.Effect<\n A,\n E,\n RegisteredFunctions.MutationServices<ConfectSchema>\n >,\n returns: Schema.Schema<A, B>,\n ): Effect.Effect<A, ParseResult.ParseError>;\n };\n fetch: (\n pathQueryFragment: string,\n init?: RequestInit,\n ) => Effect.Effect<Response>;\n finishInProgressScheduledFunctions: () => Effect.Effect<void>;\n finishAllScheduledFunctions: (\n advanceTimers: () => void,\n ) => Effect.Effect<void>;\n};\n\nexport type TestConfect<ConfectSchema extends DatabaseSchema.AnyWithProps> = {\n withIdentity: (\n userIdentity: Partial<UserIdentity>,\n ) => TestConfectWithoutIdentity<ConfectSchema>;\n} & TestConfectWithoutIdentity<ConfectSchema>;\n\nexport const TestConfect = <\n ConfectSchema extends DatabaseSchema.AnyWithProps,\n>() =>\n Context.GenericTag<TestConfect<ConfectSchema>>(\"@confect/test/TestConfect\");\n\nclass TestConfectImplWithoutIdentity<\n ConfectSchema extends DatabaseSchema.AnyWithProps,\n> implements TestConfectWithoutIdentity<ConfectSchema> {\n constructor(\n private confectSchema: ConfectSchema,\n private testConvex: TestConvexForDataModel<\n DataModel.ToConvex<DataModel.FromSchema<ConfectSchema>>\n >,\n ) {}\n\n readonly query = <QueryRef extends Ref.AnyQuery>(\n queryRef: QueryRef,\n args: Ref.Args<QueryRef>[\"Type\"],\n ): Effect.Effect<Ref.Returns<QueryRef>[\"Type\"], ParseResult.ParseError> =>\n Effect.gen(this, function* () {\n const query = Ref.getFunction(queryRef);\n const queryName = Ref.getConvexFunctionName(queryRef);\n\n const encodedArgs = yield* Schema.encode(query.args)(args);\n\n const encodedReturns = yield* Effect.promise(() =>\n this.testConvex.query(queryName as any, encodedArgs),\n );\n\n return yield* Schema.decode(query.returns)(encodedReturns);\n });\n\n readonly mutation = <MutationRef extends Ref.AnyMutation>(\n mutationRef: MutationRef,\n args: Ref.Args<MutationRef>[\"Type\"],\n ): Effect.Effect<Ref.Returns<MutationRef>[\"Type\"], ParseResult.ParseError> =>\n Effect.gen(this, function* () {\n const mutation = Ref.getFunction(mutationRef);\n const mutationName = Ref.getConvexFunctionName(mutationRef);\n\n const encodedArgs = yield* Schema.encode(mutation.args)(args);\n\n const encodedReturns = yield* Effect.promise(() =>\n this.testConvex.mutation(mutationName as any, encodedArgs),\n );\n\n return yield* Schema.decode(mutation.returns)(encodedReturns);\n });\n\n readonly action = <ActionRef extends Ref.AnyAction>(\n actionRef: ActionRef,\n args: Ref.Args<ActionRef>[\"Type\"],\n ): Effect.Effect<Ref.Returns<ActionRef>[\"Type\"], ParseResult.ParseError> =>\n Effect.gen(this, function* () {\n const action = Ref.getFunction(actionRef);\n const actionName = Ref.getConvexFunctionName(actionRef);\n\n const encodedArgs = yield* Schema.encode(action.args)(args);\n\n const encodedReturns = yield* Effect.promise(() =>\n this.testConvex.action(actionName as any, encodedArgs),\n );\n\n return yield* Schema.decode(action.returns)(encodedReturns);\n });\n\n readonly run: TestConfectWithoutIdentity<ConfectSchema>[\"run\"] = (<\n A,\n B extends Value,\n E,\n >(\n handler: Effect.Effect<\n A,\n E,\n RegisteredFunctions.MutationServices<ConfectSchema>\n >,\n returns?: Schema.Schema<A, B>,\n ): Effect.Effect<void> | Effect.Effect<A, ParseResult.ParseError> => {\n const makeMutationLayer = (\n mutationCtx: GenericMutationCtx<\n DataModel.ToConvex<DataModel.FromSchema<ConfectSchema>>\n >,\n ): Layer.Layer<RegisteredFunctions.MutationServices<ConfectSchema>> =>\n RegisteredFunctions.mutationLayer(\n this.confectSchema,\n mutationCtx,\n ) as Layer.Layer<RegisteredFunctions.MutationServices<ConfectSchema>>;\n\n return returns === undefined\n ? Effect.promise(() =>\n this.testConvex.run((mutationCtx) =>\n Effect.runPromise(\n handler.pipe(\n Effect.asVoid,\n Effect.provide(makeMutationLayer(mutationCtx)),\n ),\n ),\n ),\n )\n : Effect.promise(() =>\n this.testConvex.run((mutationCtx) =>\n Effect.runPromise(\n handler.pipe(\n Effect.andThen(Schema.encode(returns)),\n Effect.provide(makeMutationLayer(mutationCtx)),\n ),\n ),\n ),\n ).pipe(Effect.andThen(Schema.decode(returns)));\n }) as TestConfectWithoutIdentity<ConfectSchema>[\"run\"];\n\n readonly fetch = <PathQueryFragment extends string>(\n pathQueryFragment: PathQueryFragment,\n init?: RequestInit,\n ) => Effect.promise(() => this.testConvex.fetch(pathQueryFragment, init));\n\n readonly finishInProgressScheduledFunctions = () =>\n Effect.promise(() => this.testConvex.finishInProgressScheduledFunctions());\n\n readonly finishAllScheduledFunctions = (advanceTimers: () => void) =>\n Effect.promise(() =>\n this.testConvex.finishAllScheduledFunctions(advanceTimers),\n );\n}\n\nclass TestConfectImpl<\n ConfectSchema extends DatabaseSchema.AnyWithProps,\n> implements TestConfect<ConfectSchema> {\n private readonly testConfectImplWithoutIdentity: TestConfectImplWithoutIdentity<ConfectSchema>;\n\n constructor(\n private confectSchema: ConfectSchema,\n private testConvex: TestConvexForDataModelAndIdentity<\n DataModel.ToConvex<DataModel.FromSchema<ConfectSchema>>\n >,\n ) {\n this.testConvex = testConvex;\n this.testConfectImplWithoutIdentity = new TestConfectImplWithoutIdentity(\n confectSchema,\n testConvex,\n );\n }\n\n readonly withIdentity = (userIdentity: Partial<UserIdentity>) =>\n new TestConfectImplWithoutIdentity(\n this.confectSchema,\n this.testConvex.withIdentity(userIdentity),\n );\n\n readonly query = <QueryRef extends Ref.AnyQuery>(\n queryRef: QueryRef,\n args: Ref.Args<QueryRef>[\"Type\"],\n ) => this.testConfectImplWithoutIdentity.query(queryRef, args);\n\n readonly mutation = <MutationRef extends Ref.AnyMutation>(\n mutationRef: MutationRef,\n args: Ref.Args<MutationRef>[\"Type\"],\n ) => this.testConfectImplWithoutIdentity.mutation(mutationRef, args);\n\n readonly action = <ActionRef extends Ref.AnyAction>(\n actionRef: ActionRef,\n args: Ref.Args<ActionRef>[\"Type\"],\n ) => this.testConfectImplWithoutIdentity.action(actionRef, args);\n\n readonly run: TestConfect<ConfectSchema>[\"run\"] = ((\n handler: any,\n returns?: any,\n ) =>\n this.testConfectImplWithoutIdentity.run(\n handler,\n returns,\n )) as TestConfect<ConfectSchema>[\"run\"];\n\n readonly fetch = <PathQueryFragment extends string>(\n pathQueryFragment: PathQueryFragment,\n init?: RequestInit,\n ) => this.testConfectImplWithoutIdentity.fetch(pathQueryFragment, init);\n\n readonly finishInProgressScheduledFunctions = () =>\n this.testConfectImplWithoutIdentity.finishInProgressScheduledFunctions();\n\n readonly finishAllScheduledFunctions = (advanceTimers: () => void) =>\n this.testConfectImplWithoutIdentity.finishAllScheduledFunctions(\n advanceTimers,\n );\n}\n\nexport const layer =\n <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n modules: Record<string, () => Promise<any>>,\n ) =>\n (): Layer.Layer<TestConfect<DatabaseSchema_>> =>\n Layer.sync(\n TestConfect<DatabaseSchema_>(),\n () =>\n new TestConfectImpl(\n databaseSchema,\n convexTest(\n databaseSchema.convexSchemaDefinition,\n modules,\n ) as unknown as TestConvexForDataModelAndIdentity<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n ),\n );\n"],"mappings":"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"}
1
+ {"version":3,"file":"TestConfect.js","names":[],"sources":["../src/TestConfect.ts"],"sourcesContent":["import { Ref } from \"@confect/core\";\nimport type { DatabaseSchema, DataModel } from \"@confect/server\";\nimport { RegisteredConvexFunction } from \"@confect/server\";\nimport type {\n TestConvexForDataModel,\n TestConvexForDataModelAndIdentity,\n} from \"convex-test\";\nimport { convexTest } from \"convex-test\";\nimport type { GenericMutationCtx, UserIdentity } from \"convex/server\";\nimport type { Value } from \"convex/values\";\nimport type { ParseResult } from \"effect\";\nimport { Context, Effect, Layer, Schema } from \"effect\";\n\nexport type TestConfectWithoutIdentity<\n ConfectSchema extends DatabaseSchema.AnyWithProps,\n> = {\n query: <QueryRef extends Ref.AnyQuery>(\n queryRef: QueryRef,\n args: Ref.Args<QueryRef>[\"Type\"],\n ) => Effect.Effect<Ref.Returns<QueryRef>[\"Type\"], ParseResult.ParseError>;\n mutation: <MutationRef extends Ref.AnyMutation>(\n mutationRef: MutationRef,\n args: Ref.Args<MutationRef>[\"Type\"],\n ) => Effect.Effect<Ref.Returns<MutationRef>[\"Type\"], ParseResult.ParseError>;\n action: <ActionRef extends Ref.AnyAction>(\n actionRef: ActionRef,\n args: Ref.Args<ActionRef>[\"Type\"],\n ) => Effect.Effect<Ref.Returns<ActionRef>[\"Type\"], ParseResult.ParseError>;\n run: {\n <E>(\n handler: Effect.Effect<\n void,\n E,\n RegisteredConvexFunction.MutationServices<ConfectSchema>\n >,\n ): Effect.Effect<void>;\n <A, B extends Value, E>(\n handler: Effect.Effect<\n A,\n E,\n RegisteredConvexFunction.MutationServices<ConfectSchema>\n >,\n returns: Schema.Schema<A, B>,\n ): Effect.Effect<A, ParseResult.ParseError>;\n };\n fetch: (\n pathQueryFragment: string,\n init?: RequestInit,\n ) => Effect.Effect<Response>;\n finishInProgressScheduledFunctions: () => Effect.Effect<void>;\n finishAllScheduledFunctions: (\n advanceTimers: () => void,\n ) => Effect.Effect<void>;\n};\n\nexport type TestConfect<ConfectSchema extends DatabaseSchema.AnyWithProps> = {\n withIdentity: (\n userIdentity: Partial<UserIdentity>,\n ) => TestConfectWithoutIdentity<ConfectSchema>;\n} & TestConfectWithoutIdentity<ConfectSchema>;\n\nexport const TestConfect = <\n ConfectSchema extends DatabaseSchema.AnyWithProps,\n>() =>\n Context.GenericTag<TestConfect<ConfectSchema>>(\"@confect/test/TestConfect\");\n\nclass TestConfectImplWithoutIdentity<\n ConfectSchema extends DatabaseSchema.AnyWithProps,\n> implements TestConfectWithoutIdentity<ConfectSchema> {\n constructor(\n private confectSchema: ConfectSchema,\n private testConvex: TestConvexForDataModel<\n DataModel.ToConvex<DataModel.FromSchema<ConfectSchema>>\n >,\n ) {}\n\n readonly query = <QueryRef extends Ref.AnyQuery>(\n queryRef: QueryRef,\n args: Ref.Args<QueryRef>[\"Type\"],\n ): Effect.Effect<Ref.Returns<QueryRef>[\"Type\"], ParseResult.ParseError> =>\n Effect.gen(this, function* () {\n const query = Ref.getFunction(queryRef);\n const queryName = Ref.getConvexFunctionName(queryRef);\n\n const encodedArgs = yield* Schema.encode(query.args)(args);\n\n const encodedReturns = yield* Effect.promise(() =>\n this.testConvex.query(queryName as any, encodedArgs),\n );\n\n return yield* Schema.decode(query.returns)(encodedReturns);\n });\n\n readonly mutation = <MutationRef extends Ref.AnyMutation>(\n mutationRef: MutationRef,\n args: Ref.Args<MutationRef>[\"Type\"],\n ): Effect.Effect<Ref.Returns<MutationRef>[\"Type\"], ParseResult.ParseError> =>\n Effect.gen(this, function* () {\n const mutation = Ref.getFunction(mutationRef);\n const mutationName = Ref.getConvexFunctionName(mutationRef);\n\n const encodedArgs = yield* Schema.encode(mutation.args)(args);\n\n const encodedReturns = yield* Effect.promise(() =>\n this.testConvex.mutation(mutationName as any, encodedArgs),\n );\n\n return yield* Schema.decode(mutation.returns)(encodedReturns);\n });\n\n readonly action = <ActionRef extends Ref.AnyAction>(\n actionRef: ActionRef,\n args: Ref.Args<ActionRef>[\"Type\"],\n ): Effect.Effect<Ref.Returns<ActionRef>[\"Type\"], ParseResult.ParseError> =>\n Effect.gen(this, function* () {\n const action = Ref.getFunction(actionRef);\n const actionName = Ref.getConvexFunctionName(actionRef);\n\n const encodedArgs = yield* Schema.encode(action.args)(args);\n\n const encodedReturns = yield* Effect.promise(() =>\n this.testConvex.action(actionName as any, encodedArgs),\n );\n\n return yield* Schema.decode(action.returns)(encodedReturns);\n });\n\n readonly run: TestConfectWithoutIdentity<ConfectSchema>[\"run\"] = (<\n A,\n B extends Value,\n E,\n >(\n handler: Effect.Effect<\n A,\n E,\n RegisteredConvexFunction.MutationServices<ConfectSchema>\n >,\n returns?: Schema.Schema<A, B>,\n ): Effect.Effect<void> | Effect.Effect<A, ParseResult.ParseError> => {\n const makeMutationLayer = (\n mutationCtx: GenericMutationCtx<\n DataModel.ToConvex<DataModel.FromSchema<ConfectSchema>>\n >,\n ): Layer.Layer<RegisteredConvexFunction.MutationServices<ConfectSchema>> =>\n RegisteredConvexFunction.mutationLayer(\n this.confectSchema,\n mutationCtx,\n ) as Layer.Layer<\n RegisteredConvexFunction.MutationServices<ConfectSchema>\n >;\n\n return returns === undefined\n ? Effect.promise(() =>\n this.testConvex.run((mutationCtx) =>\n Effect.runPromise(\n handler.pipe(\n Effect.asVoid,\n Effect.provide(makeMutationLayer(mutationCtx)),\n ),\n ),\n ),\n )\n : Effect.promise(() =>\n this.testConvex.run((mutationCtx) =>\n Effect.runPromise(\n handler.pipe(\n Effect.andThen(Schema.encode(returns)),\n Effect.provide(makeMutationLayer(mutationCtx)),\n ),\n ),\n ),\n ).pipe(Effect.andThen(Schema.decode(returns)));\n }) as TestConfectWithoutIdentity<ConfectSchema>[\"run\"];\n\n readonly fetch = <PathQueryFragment extends string>(\n pathQueryFragment: PathQueryFragment,\n init?: RequestInit,\n ) => Effect.promise(() => this.testConvex.fetch(pathQueryFragment, init));\n\n readonly finishInProgressScheduledFunctions = () =>\n Effect.promise(() => this.testConvex.finishInProgressScheduledFunctions());\n\n readonly finishAllScheduledFunctions = (advanceTimers: () => void) =>\n Effect.promise(() =>\n this.testConvex.finishAllScheduledFunctions(advanceTimers),\n );\n}\n\nclass TestConfectImpl<\n ConfectSchema extends DatabaseSchema.AnyWithProps,\n> implements TestConfect<ConfectSchema> {\n private readonly testConfectImplWithoutIdentity: TestConfectImplWithoutIdentity<ConfectSchema>;\n\n constructor(\n private confectSchema: ConfectSchema,\n private testConvex: TestConvexForDataModelAndIdentity<\n DataModel.ToConvex<DataModel.FromSchema<ConfectSchema>>\n >,\n ) {\n this.testConvex = testConvex;\n this.testConfectImplWithoutIdentity = new TestConfectImplWithoutIdentity(\n confectSchema,\n testConvex,\n );\n }\n\n readonly withIdentity = (userIdentity: Partial<UserIdentity>) =>\n new TestConfectImplWithoutIdentity(\n this.confectSchema,\n this.testConvex.withIdentity(userIdentity),\n );\n\n readonly query = <QueryRef extends Ref.AnyQuery>(\n queryRef: QueryRef,\n args: Ref.Args<QueryRef>[\"Type\"],\n ) => this.testConfectImplWithoutIdentity.query(queryRef, args);\n\n readonly mutation = <MutationRef extends Ref.AnyMutation>(\n mutationRef: MutationRef,\n args: Ref.Args<MutationRef>[\"Type\"],\n ) => this.testConfectImplWithoutIdentity.mutation(mutationRef, args);\n\n readonly action = <ActionRef extends Ref.AnyAction>(\n actionRef: ActionRef,\n args: Ref.Args<ActionRef>[\"Type\"],\n ) => this.testConfectImplWithoutIdentity.action(actionRef, args);\n\n readonly run: TestConfect<ConfectSchema>[\"run\"] = ((\n handler: any,\n returns?: any,\n ) =>\n this.testConfectImplWithoutIdentity.run(\n handler,\n returns,\n )) as TestConfect<ConfectSchema>[\"run\"];\n\n readonly fetch = <PathQueryFragment extends string>(\n pathQueryFragment: PathQueryFragment,\n init?: RequestInit,\n ) => this.testConfectImplWithoutIdentity.fetch(pathQueryFragment, init);\n\n readonly finishInProgressScheduledFunctions = () =>\n this.testConfectImplWithoutIdentity.finishInProgressScheduledFunctions();\n\n readonly finishAllScheduledFunctions = (advanceTimers: () => void) =>\n this.testConfectImplWithoutIdentity.finishAllScheduledFunctions(\n advanceTimers,\n );\n}\n\nexport const layer =\n <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n modules: Record<string, () => Promise<any>>,\n ) =>\n (): Layer.Layer<TestConfect<DatabaseSchema_>> =>\n Layer.sync(\n TestConfect<DatabaseSchema_>(),\n () =>\n new TestConfectImpl(\n databaseSchema,\n convexTest(\n databaseSchema.convexSchemaDefinition,\n modules,\n ) as unknown as TestConvexForDataModelAndIdentity<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n ),\n );\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@confect/test",
3
- "version": "1.0.0-next.3",
3
+ "version": "1.0.0-next.4",
4
4
  "description": "Utilities for testing Confect apps without a live Convex backend",
5
5
  "repository": {
6
6
  "type": "git",
@@ -54,8 +54,8 @@
54
54
  "convex": "^1.30.0",
55
55
  "convex-test": "^0.0.38",
56
56
  "effect": "^3.19.16",
57
- "@confect/core": "1.0.0-next.3",
58
- "@confect/server": "1.0.0-next.3"
57
+ "@confect/core": "1.0.0-next.4",
58
+ "@confect/server": "1.0.0-next.4"
59
59
  },
60
60
  "engines": {
61
61
  "node": ">=22",
@@ -1,6 +1,6 @@
1
1
  import { Ref } from "@confect/core";
2
2
  import type { DatabaseSchema, DataModel } from "@confect/server";
3
- import { RegisteredFunctions } from "@confect/server";
3
+ import { RegisteredConvexFunction } from "@confect/server";
4
4
  import type {
5
5
  TestConvexForDataModel,
6
6
  TestConvexForDataModelAndIdentity,
@@ -31,14 +31,14 @@ export type TestConfectWithoutIdentity<
31
31
  handler: Effect.Effect<
32
32
  void,
33
33
  E,
34
- RegisteredFunctions.MutationServices<ConfectSchema>
34
+ RegisteredConvexFunction.MutationServices<ConfectSchema>
35
35
  >,
36
36
  ): Effect.Effect<void>;
37
37
  <A, B extends Value, E>(
38
38
  handler: Effect.Effect<
39
39
  A,
40
40
  E,
41
- RegisteredFunctions.MutationServices<ConfectSchema>
41
+ RegisteredConvexFunction.MutationServices<ConfectSchema>
42
42
  >,
43
43
  returns: Schema.Schema<A, B>,
44
44
  ): Effect.Effect<A, ParseResult.ParseError>;
@@ -133,7 +133,7 @@ class TestConfectImplWithoutIdentity<
133
133
  handler: Effect.Effect<
134
134
  A,
135
135
  E,
136
- RegisteredFunctions.MutationServices<ConfectSchema>
136
+ RegisteredConvexFunction.MutationServices<ConfectSchema>
137
137
  >,
138
138
  returns?: Schema.Schema<A, B>,
139
139
  ): Effect.Effect<void> | Effect.Effect<A, ParseResult.ParseError> => {
@@ -141,11 +141,13 @@ class TestConfectImplWithoutIdentity<
141
141
  mutationCtx: GenericMutationCtx<
142
142
  DataModel.ToConvex<DataModel.FromSchema<ConfectSchema>>
143
143
  >,
144
- ): Layer.Layer<RegisteredFunctions.MutationServices<ConfectSchema>> =>
145
- RegisteredFunctions.mutationLayer(
144
+ ): Layer.Layer<RegisteredConvexFunction.MutationServices<ConfectSchema>> =>
145
+ RegisteredConvexFunction.mutationLayer(
146
146
  this.confectSchema,
147
147
  mutationCtx,
148
- ) as Layer.Layer<RegisteredFunctions.MutationServices<ConfectSchema>>;
148
+ ) as Layer.Layer<
149
+ RegisteredConvexFunction.MutationServices<ConfectSchema>
150
+ >;
149
151
 
150
152
  return returns === undefined
151
153
  ? Effect.promise(() =>