From 58d0d85dda8ce9b823ee76bd6d020a43e8d933d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 7 Sep 2024 01:44:24 +0200 Subject: [PATCH] Tests --- src/Layers/trpc/TRPCRouter.ts | 4 ++-- src/Layers/trpc/tests.ts | 9 +++++++-- src/Layers/trpc/tests2.ts | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 src/Layers/trpc/tests2.ts diff --git a/src/Layers/trpc/TRPCRouter.ts b/src/Layers/trpc/TRPCRouter.ts index 5ab2263..a475740 100644 --- a/src/Layers/trpc/TRPCRouter.ts +++ b/src/Layers/trpc/TRPCRouter.ts @@ -1,9 +1,9 @@ -import type { AnyRouterDef, Router } from "@trpc/server" +import type { AnyRouter, AnyRouterDef, Router } from "@trpc/server" import { Context, Effect, Layer } from "effect" export class TRPCAnyRouter extends Context.Tag("@thilalib/TRCP/TRPCRouter") + AnyRouter >() {} diff --git a/src/Layers/trpc/tests.ts b/src/Layers/trpc/tests.ts index 5e3105a..366521a 100644 --- a/src/Layers/trpc/tests.ts +++ b/src/Layers/trpc/tests.ts @@ -1,4 +1,4 @@ -import { Config, Effect, Layer } from "effect" +import { Config, Context, Effect, Layer } from "effect" import * as TRPC from "." import { ExpressApp, ExpressNodeHTTPServer } from "../express" @@ -16,6 +16,7 @@ const router = TRPCBuilder.pipe(Effect.map(t => t.router({ }))) const { TRPCRouter, TRPCRouterLive } = TRPC.TRPCRouter.make(router) +type TRouter = Context.Tag.Service const ServerLive = Layer.empty.pipe( @@ -33,7 +34,11 @@ const ServerLive = Layer.empty.pipe( Layer.provideMerge(ExpressApp.ExpressAppLive()) ) -await Layer.launch(ServerLive).pipe( +await Effect.gen(function*() { + // yield* TRPCRouter + + return yield* Layer.launch(ServerLive) +}).pipe( Effect.scoped, Effect.runPromise, ) diff --git a/src/Layers/trpc/tests2.ts b/src/Layers/trpc/tests2.ts new file mode 100644 index 0000000..c1f2330 --- /dev/null +++ b/src/Layers/trpc/tests2.ts @@ -0,0 +1,35 @@ +import type { AnyRouter } from "@trpc/server" +import { Context, Effect, Layer } from "effect" +import * as TRPC from "." + + +const { TRPCBuilder, TRPCBuilderLive } = TRPC.TRPCBuilder.make() + +const router = TRPCBuilder.pipe(Effect.map(t => t.router({ + ping: t.procedure.query(({ ctx }) => ctx.run( + Effect.succeed("pong") + )), +}))) + + +export class TRPCAnyRouter extends Context.Tag("@thilalib/TRCP/TRPCRouter")() {} + +export class TRPCRouter extends Context.Tag("@thilalib/TRCP/TRPCRouter") +>() {} + +const RouterLive = Layer.effect(TRPCRouter, router) +const AnyRouterLive = Layer.effect(TRPCAnyRouter, router) + + +const main = Effect.gen(function*() { + yield* TRPCAnyRouter + yield* TRPCRouter +}) + +const runnable = main.pipe( + Effect.provide(RouterLive), + Effect.provide(TRPCBuilderLive), +)