| ... | @@ -6327,48 +6327,26 @@ it.layer(NodeServices.layer)("server router seam", (it) => { | ... | @@ -6327,48 +6327,26 @@ it.layer(NodeServices.layer)("server router seam", (it) => { |
| 6327 | }).pipe(Effect.provide(NodeHttpServer.layerTest)), | 6327 | }).pipe(Effect.provide(NodeHttpServer.layerTest)), |
| 6328 | ); | 6328 | ); |
| 6329 | | 6329 | |
| 6330 | it.effect("refreshes providers for each subscribeServerConfig connection", () => | 6330 | it.effect("serves config on reconnect without starting provider probes", () => |
| 6331 | Effect.gen(function* () { | 6331 | Effect.gen(function* () { |
| 6332 | const refreshCalls = yield* Ref.make(0); | 6332 | const refresh = vi.fn(() => Effect.never); |
| 6333 | const firstRefreshDone = yield* Deferred.make<void>(); | | |
| 6334 | const secondRefreshDone = yield* Deferred.make<void>(); | | |
| 6335 | | | |
| 6336 | yield* buildAppUnderTest({ | 6333 | yield* buildAppUnderTest({ |
| 6337 | layers: { | 6334 | layers: { providerRegistry: { refresh } }, |
| 6338 | providerRegistry: { | | |
| 6339 | refresh: () => | | |
| 6340 | Ref.updateAndGet(refreshCalls, (count) => count + 1).pipe( | | |
| 6341 | Effect.tap((count) => | | |
| 6342 | Deferred.succeed( | | |
| 6343 | count === 1 ? firstRefreshDone : secondRefreshDone, | | |
| 6344 | undefined, | | |
| 6345 | ).pipe(Effect.ignore), | | |
| 6346 | ), | | |
| 6347 | Effect.as([]), | | |
| 6348 | ), | | |
| 6349 | }, | | |
| 6350 | }, | | |
| 6351 | }); | 6335 | }); |
| 6352 | | 6336 | |
| 6353 | const wsUrl = yield* getWsServerUrl("/ws"); | 6337 | const wsUrl = yield* getWsServerUrl("/ws"); |
| 6354 | yield* Effect.scoped( | 6338 | for (let connection = 0; connection < 2; connection += 1) { |
| 6355 | withWsRpcClient(wsUrl, (client) => | 6339 | const event = yield* Effect.scoped( |
| 6356 | Effect.gen(function* () { | 6340 | withWsRpcClient(wsUrl, (client) => |
| 6357 | yield* client[WS_METHODS.subscribeServerConfig]({}).pipe(Stream.runHead); | 6341 | client[WS_METHODS.subscribeServerConfig]({}).pipe( |
| 6358 | yield* Deferred.await(firstRefreshDone); | 6342 | Stream.runHead, |
| 6359 | }), | 6343 | Effect.map(Option.getOrThrow), |
| 6360 | ), | 6344 | ), |
| 6361 | ); | 6345 | ), |
| 6362 | yield* Effect.scoped( | 6346 | ); |
| 6363 | withWsRpcClient(wsUrl, (client) => | 6347 | assert.equal(event.type, "snapshot"); |
| 6364 | Effect.gen(function* () { | 6348 | } |
| 6365 | yield* client[WS_METHODS.subscribeServerConfig]({}).pipe(Stream.runHead); | 6349 | assert.equal(refresh.mock.calls.length, 0); |
| 6366 | yield* Deferred.await(secondRefreshDone); | | |
| 6367 | }), | | |
| 6368 | ), | | |
| 6369 | ); | | |
| 6370 | | | |
| 6371 | assert.equal(yield* Ref.get(refreshCalls), 2); | | |
| 6372 | }).pipe(Effect.provide(NodeHttpServer.layerTest)), | 6350 | }).pipe(Effect.provide(NodeHttpServer.layerTest)), |
| 6373 | ); | 6351 | ); |
| 6374 | | 6352 | |