@livestore/common-cf 0.4.0-dev.5 → 0.4.0-dev.6

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.
@@ -1,18 +1,22 @@
1
1
  import { Chunk, Effect, FetchHttpClient, Layer, Option, RpcClient, RpcSerialization, Stream, } from '@livestore/utils/effect';
2
- import { startWranglerDevServerPromise } from '@livestore/utils-dev/node';
2
+ import { PlatformNode } from '@livestore/utils/node';
3
+ import { WranglerDevServerService } from '@livestore/utils-dev/node';
3
4
  import { Vitest } from '@livestore/utils-dev/node-vitest';
4
- import { beforeAll, expect } from 'vitest';
5
+ import { expect } from 'vitest';
5
6
  import { TestRpcs } from "./test-fixtures/rpc-schema.js";
6
- let port;
7
- beforeAll(async () => {
8
- const { port: wranglerPort } = await startWranglerDevServerPromise({
7
+ const testTimeout = 60_000;
8
+ const withWranglerTest = Vitest.makeWithTestCtx({
9
+ timeout: testTimeout,
10
+ makeLayer: () => WranglerDevServerService.Default({
9
11
  cwd: `${import.meta.dirname}/test-fixtures`,
10
- });
11
- port = wranglerPort;
12
+ }).pipe(Layer.provide(PlatformNode.NodeContext.layer), Layer.provide(FetchHttpClient.layer)),
12
13
  });
13
- const ProtocolLive = Layer.suspend(() => RpcClient.layerProtocolHttp({
14
- url: `http://localhost:${port}/rpc`,
15
- }).pipe(Layer.provide([FetchHttpClient.layer, RpcSerialization.layerJson])));
14
+ const ProtocolLive = Layer.suspend(() => Effect.gen(function* () {
15
+ const server = yield* WranglerDevServerService;
16
+ return RpcClient.layerProtocolHttp({
17
+ url: `${server.url}/rpc`,
18
+ }).pipe(Layer.provide([FetchHttpClient.layer, RpcSerialization.layerJson]));
19
+ }).pipe(Layer.unwrapEffect));
16
20
  /**
17
21
  * Test Architecture - Effect RPC via HTTP
18
22
  *
@@ -30,24 +34,24 @@ const ProtocolLive = Layer.suspend(() => RpcClient.layerProtocolHttp({
30
34
  *
31
35
  * Test Path: Test → Worker /rpc → Server DO (HTTP RPC)
32
36
  */
33
- Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
37
+ Vitest.describe('Durable Object RPC', { timeout: testTimeout }, () => {
34
38
  // Direct HTTP RPC client tests
35
- Vitest.scopedLive('should call ping method', Effect.fn(function* () {
39
+ Vitest.scopedLive('should call ping method', (test) => Effect.gen(function* () {
36
40
  const client = yield* RpcClient.make(TestRpcs);
37
41
  const result = yield* client.Ping({ message: 'Hello HTTP RPC' });
38
42
  expect(result).toEqual({ response: 'Pong: Hello HTTP RPC' });
39
- }, Effect.provide(ProtocolLive)));
40
- Vitest.scopedLive('should call echo method', Effect.fn(function* () {
43
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
44
+ Vitest.scopedLive('should call echo method', (test) => Effect.gen(function* () {
41
45
  const client = yield* RpcClient.make(TestRpcs);
42
46
  const result = yield* client.Echo({ text: 'Echo' });
43
47
  expect(result).toEqual({ echo: 'Echo: Echo' });
44
- }, Effect.provide(ProtocolLive)));
45
- Vitest.scopedLive('should call add method', Effect.fn(function* () {
48
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
49
+ Vitest.scopedLive('should call add method', (test) => Effect.gen(function* () {
46
50
  const client = yield* RpcClient.make(TestRpcs);
47
51
  const result = yield* client.Add({ a: 15, b: 25 });
48
52
  expect(result).toEqual({ result: 40 });
49
- }, Effect.provide(ProtocolLive)));
50
- Vitest.scopedLive('should handle RPC fail method', Effect.fn(function* () {
53
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
54
+ Vitest.scopedLive('should handle RPC fail method', (test) => Effect.gen(function* () {
51
55
  const client = yield* RpcClient.make(TestRpcs);
52
56
  const error = yield* client.Fail({ message: 'test http failure' }).pipe(Effect.exit);
53
57
  expect(error.toString()).toMatchInlineSnapshot(`
@@ -61,8 +65,8 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
61
65
  }
62
66
  }"
63
67
  `);
64
- }, Effect.provide(ProtocolLive)));
65
- Vitest.scopedLive('should handle defect method', Effect.fn(function* () {
68
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
69
+ Vitest.scopedLive('should handle defect method', (test) => Effect.gen(function* () {
66
70
  const client = yield* RpcClient.make(TestRpcs);
67
71
  const error = yield* client.Defect({ message: 'test http defect' }).pipe(Effect.exit);
68
72
  expect(error.toString()).toMatchInlineSnapshot(`
@@ -76,14 +80,14 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
76
80
  }
77
81
  }"
78
82
  `);
79
- }, Effect.provide(ProtocolLive)));
80
- Vitest.scopedLive('should handle streaming RPC via HTTP', Effect.fn(function* () {
83
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
84
+ Vitest.scopedLive('should handle streaming RPC via HTTP', (test) => Effect.gen(function* () {
81
85
  const client = yield* RpcClient.make(TestRpcs);
82
86
  const stream = client.Stream({}).pipe(Stream.take(4), Stream.map((c) => c.maybeNumber.pipe(Option.getOrUndefined)));
83
87
  const chunks = yield* Stream.runCollect(stream);
84
88
  expect(Chunk.toReadonlyArray(chunks)).toEqual([1, 4, 9, 16]); // squares of 1,2,3,4
85
- }, Effect.provide(ProtocolLive)));
86
- Vitest.scopedLive('should handle streaming RPC with error via HTTP', Effect.fn(function* () {
89
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
90
+ Vitest.scopedLive('should handle streaming RPC with error via HTTP', (test) => Effect.gen(function* () {
87
91
  const client = yield* RpcClient.make(TestRpcs);
88
92
  const stream = client.StreamError({ count: 5, errorAfter: 4 });
89
93
  const error = yield* Stream.runCollect(stream).pipe(Effect.exit);
@@ -98,8 +102,8 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
98
102
  }
99
103
  }"
100
104
  `);
101
- }, Effect.provide(ProtocolLive)));
102
- Vitest.scopedLive('should handle streaming RPC with defect via HTTP', Effect.fn(function* () {
105
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
106
+ Vitest.scopedLive('should handle streaming RPC with defect via HTTP', (test) => Effect.gen(function* () {
103
107
  const client = yield* RpcClient.make(TestRpcs);
104
108
  const stream = client.StreamDefect({ count: 4, defectAfter: 1 });
105
109
  const error = yield* Stream.runCollect(stream).pipe(Effect.exit);
@@ -114,15 +118,15 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
114
118
  }
115
119
  }"
116
120
  `);
117
- }, Effect.provide(ProtocolLive)));
118
- Vitest.scopedLive('should handle stream interruption via HTTP', Effect.fn(function* () {
121
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
122
+ Vitest.scopedLive('should handle stream interruption via HTTP', (test) => Effect.gen(function* () {
119
123
  const client = yield* RpcClient.make(TestRpcs);
120
124
  const stream = client.StreamInterruptible({ delay: 50, interruptAfterCount: 3 }).pipe(Stream.take(3));
121
125
  const chunks = yield* Stream.runCollect(stream);
122
126
  expect(Chunk.toReadonlyArray(chunks)).toEqual([1, 2, 3]);
123
- }, Effect.provide(ProtocolLive)));
127
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
124
128
  // TODO @IMax153
125
- Vitest.scopedLive.skip('should handle streaming RPC bug scenario', Effect.fn(function* () {
129
+ Vitest.scopedLive.skip('should handle streaming RPC bug scenario', (test) => Effect.gen(function* () {
126
130
  const client = yield* RpcClient.make(TestRpcs);
127
131
  yield* client.StreamBugScenarioDoClient({});
128
132
  /*
@@ -173,6 +177,6 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
173
177
  ```
174
178
 
175
179
  */
176
- }, Effect.provide(ProtocolLive)));
180
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
177
181
  });
178
182
  //# sourceMappingURL=rpc.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.test.js","sourceRoot":"","sources":["../../src/do-rpc/rpc.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.test.js","sourceRoot":"","sources":["../../src/do-rpc/rpc.test.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * @see {@link https://developers.cloudflare.com/durable-objects/best-practices/websockets/ Cloudflare WebSocket Best Practices}
16
16
  */
17
- import { notYetImplemented } from '@livestore/utils';
17
+ import { notYetImplemented, omitUndefineds } from '@livestore/utils';
18
18
  import { constVoid, Effect, Exit, Layer, Logger, LogLevel, Mailbox, RpcMessage, RpcSerialization, RpcServer, Scope, Stream, } from '@livestore/utils/effect';
19
19
  /**
20
20
  * Sets up WebSocket RPC functionality on a Cloudflare Durable Object with hibernation support.
@@ -92,7 +92,7 @@ export const setupDurableObjectWebSocketRpc = ({ doSelf, rpcLayer, webSocketMode
92
92
  const ProtocolLive = layerRpcServerWebsocket({
93
93
  ws,
94
94
  incomingQueue,
95
- onMessage,
95
+ ...omitUndefineds({ onMessage }),
96
96
  }).pipe(Layer.provide(RpcSerialization.layerJson));
97
97
  const ServerLive = rpcLayer.pipe(Layer.provide(ProtocolLive));
98
98
  yield* Layer.launch(ServerLive).pipe(Effect.tapCauseLogPretty, Effect.forkIn(scope));
@@ -1 +1 @@
1
- {"version":3,"file":"ws-rpc-server.js","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-rpc-server.js","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc-server.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,38 @@
1
- import { Chunk, Effect, Layer, Option, RpcClient, RpcSerialization, Socket, Stream } from '@livestore/utils/effect';
2
- import { startWranglerDevServerPromise } from '@livestore/utils-dev/node';
1
+ import { Chunk, Effect, FetchHttpClient, Layer, Option, RpcClient, RpcSerialization, Socket, Stream, } from '@livestore/utils/effect';
2
+ import { PlatformNode } from '@livestore/utils/node';
3
+ import { WranglerDevServerService } from '@livestore/utils-dev/node';
3
4
  import { Vitest } from '@livestore/utils-dev/node-vitest';
4
- import { beforeAll, expect } from 'vitest';
5
+ import { expect } from 'vitest';
5
6
  import { TestRpcs } from "./test-fixtures/rpc-schema.js";
6
- let port;
7
- beforeAll(async () => {
8
- const { port: wranglerPort } = await startWranglerDevServerPromise({
7
+ const testTimeout = 60_000;
8
+ const withWranglerTest = Vitest.makeWithTestCtx({
9
+ timeout: testTimeout,
10
+ makeLayer: () => WranglerDevServerService.Default({
9
11
  cwd: `${import.meta.dirname}/test-fixtures`,
10
- });
11
- port = wranglerPort;
12
+ }).pipe(Layer.provide(PlatformNode.NodeContext.layer), Layer.provide(FetchHttpClient.layer)),
12
13
  });
13
- const ProtocolLive = Layer.suspend(() => RpcClient.layerProtocolSocket().pipe(Layer.provide(Socket.layerWebSocket(`ws://localhost:${port}`)), Layer.provide(Socket.layerWebSocketConstructorGlobal), Layer.provide(RpcSerialization.layerJson)));
14
- Vitest.describe('Durable Object WebSocket RPC', { timeout: 5000 }, () => {
14
+ const ProtocolLive = Layer.suspend(() => Effect.gen(function* () {
15
+ const server = yield* WranglerDevServerService;
16
+ return RpcClient.layerProtocolSocket().pipe(Layer.provide(Socket.layerWebSocket(`ws://localhost:${server.port}`)), Layer.provide(Socket.layerWebSocketConstructorGlobal), Layer.provide(RpcSerialization.layerJson));
17
+ }).pipe(Layer.unwrapEffect));
18
+ Vitest.describe('Durable Object WebSocket RPC', { timeout: testTimeout }, () => {
15
19
  // Direct HTTP RPC client tests
16
- Vitest.scopedLive('should call ping method', Effect.fn(function* () {
20
+ Vitest.scopedLive('should call ping method', (test) => Effect.gen(function* () {
17
21
  const client = yield* RpcClient.make(TestRpcs);
18
22
  const result = yield* client.Ping({ message: 'Hello HTTP RPC' });
19
23
  expect(result).toEqual({ response: 'Pong: Hello HTTP RPC' });
20
- }, Effect.provide(ProtocolLive)));
21
- Vitest.scopedLive('should call echo method', Effect.fn(function* () {
24
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
25
+ Vitest.scopedLive('should call echo method', (test) => Effect.gen(function* () {
22
26
  const client = yield* RpcClient.make(TestRpcs);
23
27
  const result = yield* client.Echo({ text: 'Echo' });
24
28
  expect(result).toEqual({ echo: 'Echo: Echo' });
25
- }, Effect.provide(ProtocolLive)));
26
- Vitest.scopedLive('should call add method', Effect.fn(function* () {
29
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
30
+ Vitest.scopedLive('should call add method', (test) => Effect.gen(function* () {
27
31
  const client = yield* RpcClient.make(TestRpcs);
28
32
  const result = yield* client.Add({ a: 15, b: 25 });
29
33
  expect(result).toEqual({ result: 40 });
30
- }, Effect.provide(ProtocolLive)));
31
- Vitest.scopedLive('should handle RPC fail method', Effect.fn(function* () {
34
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
35
+ Vitest.scopedLive('should handle RPC fail method', (test) => Effect.gen(function* () {
32
36
  const client = yield* RpcClient.make(TestRpcs);
33
37
  const error = yield* client.Fail({ message: 'test http failure' }).pipe(Effect.exit);
34
38
  expect(error.toString()).toMatchInlineSnapshot(`
@@ -42,8 +46,8 @@ Vitest.describe('Durable Object WebSocket RPC', { timeout: 5000 }, () => {
42
46
  }
43
47
  }"
44
48
  `);
45
- }, Effect.provide(ProtocolLive)));
46
- Vitest.scopedLive('should handle defect method', Effect.fn(function* () {
49
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
50
+ Vitest.scopedLive('should handle defect method', (test) => Effect.gen(function* () {
47
51
  const client = yield* RpcClient.make(TestRpcs);
48
52
  const error = yield* client.Defect({ message: 'test http defect' }).pipe(Effect.exit);
49
53
  expect(error.toString()).toMatchInlineSnapshot(`
@@ -57,14 +61,14 @@ Vitest.describe('Durable Object WebSocket RPC', { timeout: 5000 }, () => {
57
61
  }
58
62
  }"
59
63
  `);
60
- }, Effect.provide(ProtocolLive)));
61
- Vitest.scopedLive('should handle streaming RPC via HTTP', Effect.fn(function* () {
64
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
65
+ Vitest.scopedLive('should handle streaming RPC via HTTP', (test) => Effect.gen(function* () {
62
66
  const client = yield* RpcClient.make(TestRpcs);
63
67
  const stream = client.Stream({}).pipe(Stream.take(4), Stream.map((c) => c.maybeNumber.pipe(Option.getOrUndefined)));
64
68
  const chunks = yield* Stream.runCollect(stream);
65
69
  expect(Chunk.toReadonlyArray(chunks)).toEqual([1, 4, 9, 16]); // squares of 1,2,3,4
66
- }, Effect.provide(ProtocolLive)));
67
- Vitest.scopedLive('should handle streaming RPC with error via HTTP', Effect.fn(function* () {
70
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
71
+ Vitest.scopedLive('should handle streaming RPC with error via HTTP', (test) => Effect.gen(function* () {
68
72
  const client = yield* RpcClient.make(TestRpcs);
69
73
  const stream = client.StreamError({ count: 5, errorAfter: 4 });
70
74
  const error = yield* Stream.runCollect(stream).pipe(Effect.exit);
@@ -79,8 +83,8 @@ Vitest.describe('Durable Object WebSocket RPC', { timeout: 5000 }, () => {
79
83
  }
80
84
  }"
81
85
  `);
82
- }, Effect.provide(ProtocolLive)));
83
- Vitest.scopedLive('should handle streaming RPC with defect via HTTP', Effect.fn(function* () {
86
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
87
+ Vitest.scopedLive('should handle streaming RPC with defect via HTTP', (test) => Effect.gen(function* () {
84
88
  const client = yield* RpcClient.make(TestRpcs);
85
89
  const stream = client.StreamDefect({ count: 4, defectAfter: 1 });
86
90
  const error = yield* Stream.runCollect(stream).pipe(Effect.exit);
@@ -95,16 +99,16 @@ Vitest.describe('Durable Object WebSocket RPC', { timeout: 5000 }, () => {
95
99
  }
96
100
  }"
97
101
  `);
98
- }, Effect.provide(ProtocolLive)));
99
- Vitest.scopedLive('should handle stream interruption via HTTP', Effect.fn(function* () {
102
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
103
+ Vitest.scopedLive('should handle stream interruption via HTTP', (test) => Effect.gen(function* () {
100
104
  const client = yield* RpcClient.make(TestRpcs);
101
105
  const stream = client.StreamInterruptible({ delay: 50, interruptAfterCount: 3 }).pipe(Stream.take(3));
102
106
  const chunks = yield* Stream.runCollect(stream);
103
107
  expect(Chunk.toReadonlyArray(chunks)).toEqual([1, 2, 3]);
104
- }, Effect.provide(ProtocolLive)));
108
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
105
109
  });
106
110
  Vitest.describe('Hibernation Tests', { timeout: 25000 }, () => {
107
- Vitest.scopedLive('should maintain RPC functionality after hibernation', Effect.fn(function* () {
111
+ Vitest.scopedLive('should maintain RPC functionality after hibernation', (test) => Effect.gen(function* () {
108
112
  console.log('🧪 Testing RPC server persistence across hibernation...');
109
113
  // Step 1: Create client and test initial functionality
110
114
  console.log('Step 1: Establishing initial connection and testing RPC methods...');
@@ -149,8 +153,8 @@ Vitest.describe('Hibernation Tests', { timeout: 25000 }, () => {
149
153
  expect(Chunk.toReadonlyArray(chunks)).toEqual([1, 4, 9]); // squares of 1,2,3
150
154
  console.log('✅ Streaming after hibernation successful');
151
155
  console.log('🎉 All RPC operations successful after hibernation!');
152
- }, Effect.provide(ProtocolLive)));
153
- Vitest.scopedLive('should handle rapid operations after hibernation', Effect.fn(function* () {
156
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
157
+ Vitest.scopedLive('should handle rapid operations after hibernation', (test) => Effect.gen(function* () {
154
158
  console.log('🧪 Testing rapid operations after hibernation...');
155
159
  console.log('Step 1: Establishing initial connection...');
156
160
  const client = yield* RpcClient.make(TestRpcs);
@@ -184,6 +188,6 @@ Vitest.describe('Hibernation Tests', { timeout: 25000 }, () => {
184
188
  });
185
189
  console.log('✅ All rapid operations successful:', results.map((r) => r.operation));
186
190
  console.log('🎉 Rapid operations work correctly after hibernation!');
187
- }, Effect.provide(ProtocolLive)));
191
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
188
192
  });
189
193
  //# sourceMappingURL=ws-rpc.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ws-rpc.test.js","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-rpc.test.js","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/common-cf",
3
- "version": "0.4.0-dev.5",
3
+ "version": "0.4.0-dev.6",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -9,13 +9,13 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "@cloudflare/workers-types": "4.20250823.0",
12
- "@livestore/common": "0.4.0-dev.5",
13
- "@livestore/utils": "0.4.0-dev.5"
12
+ "@livestore/common": "0.4.0-dev.6",
13
+ "@livestore/utils": "0.4.0-dev.6"
14
14
  },
15
15
  "devDependencies": {
16
16
  "vitest": "3.2.4",
17
17
  "wrangler": "^4.32.0",
18
- "@livestore/utils-dev": "0.4.0-dev.5"
18
+ "@livestore/utils-dev": "0.4.0-dev.6"
19
19
  },
20
20
  "files": [
21
21
  "dist",
@@ -8,24 +8,29 @@ import {
8
8
  RpcSerialization,
9
9
  Stream,
10
10
  } from '@livestore/utils/effect'
11
- import { startWranglerDevServerPromise } from '@livestore/utils-dev/node'
11
+ import { PlatformNode } from '@livestore/utils/node'
12
+ import { WranglerDevServerService } from '@livestore/utils-dev/node'
12
13
  import { Vitest } from '@livestore/utils-dev/node-vitest'
13
- import { beforeAll, expect } from 'vitest'
14
+ import { expect } from 'vitest'
14
15
  import { TestRpcs } from './test-fixtures/rpc-schema.ts'
15
16
 
16
- let port: number
17
+ const testTimeout = 60_000
17
18
 
18
- beforeAll(async () => {
19
- const { port: wranglerPort } = await startWranglerDevServerPromise({
20
- cwd: `${import.meta.dirname}/test-fixtures`,
21
- })
22
- port = wranglerPort
19
+ const withWranglerTest = Vitest.makeWithTestCtx({
20
+ timeout: testTimeout,
21
+ makeLayer: () =>
22
+ WranglerDevServerService.Default({
23
+ cwd: `${import.meta.dirname}/test-fixtures`,
24
+ }).pipe(Layer.provide(PlatformNode.NodeContext.layer), Layer.provide(FetchHttpClient.layer)),
23
25
  })
24
26
 
25
27
  const ProtocolLive = Layer.suspend(() =>
26
- RpcClient.layerProtocolHttp({
27
- url: `http://localhost:${port}/rpc`,
28
- }).pipe(Layer.provide([FetchHttpClient.layer, RpcSerialization.layerJson])),
28
+ Effect.gen(function* () {
29
+ const server = yield* WranglerDevServerService
30
+ return RpcClient.layerProtocolHttp({
31
+ url: `${server.url}/rpc`,
32
+ }).pipe(Layer.provide([FetchHttpClient.layer, RpcSerialization.layerJson]))
33
+ }).pipe(Layer.unwrapEffect),
29
34
  )
30
35
 
31
36
  /**
@@ -46,38 +51,34 @@ const ProtocolLive = Layer.suspend(() =>
46
51
  * Test Path: Test → Worker /rpc → Server DO (HTTP RPC)
47
52
  */
48
53
 
49
- Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
54
+ Vitest.describe('Durable Object RPC', { timeout: testTimeout }, () => {
50
55
  // Direct HTTP RPC client tests
51
- Vitest.scopedLive(
52
- 'should call ping method',
53
- Effect.fn(function* () {
56
+ Vitest.scopedLive('should call ping method', (test) =>
57
+ Effect.gen(function* () {
54
58
  const client = yield* RpcClient.make(TestRpcs)
55
59
  const result = yield* client.Ping({ message: 'Hello HTTP RPC' })
56
60
  expect(result).toEqual({ response: 'Pong: Hello HTTP RPC' })
57
- }, Effect.provide(ProtocolLive)),
61
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
58
62
  )
59
63
 
60
- Vitest.scopedLive(
61
- 'should call echo method',
62
- Effect.fn(function* () {
64
+ Vitest.scopedLive('should call echo method', (test) =>
65
+ Effect.gen(function* () {
63
66
  const client = yield* RpcClient.make(TestRpcs)
64
67
  const result = yield* client.Echo({ text: 'Echo' })
65
68
  expect(result).toEqual({ echo: 'Echo: Echo' })
66
- }, Effect.provide(ProtocolLive)),
69
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
67
70
  )
68
71
 
69
- Vitest.scopedLive(
70
- 'should call add method',
71
- Effect.fn(function* () {
72
+ Vitest.scopedLive('should call add method', (test) =>
73
+ Effect.gen(function* () {
72
74
  const client = yield* RpcClient.make(TestRpcs)
73
75
  const result = yield* client.Add({ a: 15, b: 25 })
74
76
  expect(result).toEqual({ result: 40 })
75
- }, Effect.provide(ProtocolLive)),
77
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
76
78
  )
77
79
 
78
- Vitest.scopedLive(
79
- 'should handle RPC fail method',
80
- Effect.fn(function* () {
80
+ Vitest.scopedLive('should handle RPC fail method', (test) =>
81
+ Effect.gen(function* () {
81
82
  const client = yield* RpcClient.make(TestRpcs)
82
83
  const error = yield* client.Fail({ message: 'test http failure' }).pipe(Effect.exit)
83
84
  expect(error.toString()).toMatchInlineSnapshot(`
@@ -91,12 +92,11 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
91
92
  }
92
93
  }"
93
94
  `)
94
- }, Effect.provide(ProtocolLive)),
95
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
95
96
  )
96
97
 
97
- Vitest.scopedLive(
98
- 'should handle defect method',
99
- Effect.fn(function* () {
98
+ Vitest.scopedLive('should handle defect method', (test) =>
99
+ Effect.gen(function* () {
100
100
  const client = yield* RpcClient.make(TestRpcs)
101
101
  const error = yield* client.Defect({ message: 'test http defect' }).pipe(Effect.exit)
102
102
  expect(error.toString()).toMatchInlineSnapshot(`
@@ -110,12 +110,11 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
110
110
  }
111
111
  }"
112
112
  `)
113
- }, Effect.provide(ProtocolLive)),
113
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
114
114
  )
115
115
 
116
- Vitest.scopedLive(
117
- 'should handle streaming RPC via HTTP',
118
- Effect.fn(function* () {
116
+ Vitest.scopedLive('should handle streaming RPC via HTTP', (test) =>
117
+ Effect.gen(function* () {
119
118
  const client = yield* RpcClient.make(TestRpcs)
120
119
  const stream = client.Stream({}).pipe(
121
120
  Stream.take(4),
@@ -123,12 +122,11 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
123
122
  )
124
123
  const chunks = yield* Stream.runCollect(stream)
125
124
  expect(Chunk.toReadonlyArray(chunks)).toEqual([1, 4, 9, 16]) // squares of 1,2,3,4
126
- }, Effect.provide(ProtocolLive)),
125
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
127
126
  )
128
127
 
129
- Vitest.scopedLive(
130
- 'should handle streaming RPC with error via HTTP',
131
- Effect.fn(function* () {
128
+ Vitest.scopedLive('should handle streaming RPC with error via HTTP', (test) =>
129
+ Effect.gen(function* () {
132
130
  const client = yield* RpcClient.make(TestRpcs)
133
131
  const stream = client.StreamError({ count: 5, errorAfter: 4 })
134
132
  const error = yield* Stream.runCollect(stream).pipe(Effect.exit)
@@ -143,12 +141,11 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
143
141
  }
144
142
  }"
145
143
  `)
146
- }, Effect.provide(ProtocolLive)),
144
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
147
145
  )
148
146
 
149
- Vitest.scopedLive(
150
- 'should handle streaming RPC with defect via HTTP',
151
- Effect.fn(function* () {
147
+ Vitest.scopedLive('should handle streaming RPC with defect via HTTP', (test) =>
148
+ Effect.gen(function* () {
152
149
  const client = yield* RpcClient.make(TestRpcs)
153
150
  const stream = client.StreamDefect({ count: 4, defectAfter: 1 })
154
151
  const error = yield* Stream.runCollect(stream).pipe(Effect.exit)
@@ -163,23 +160,21 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
163
160
  }
164
161
  }"
165
162
  `)
166
- }, Effect.provide(ProtocolLive)),
163
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
167
164
  )
168
165
 
169
- Vitest.scopedLive(
170
- 'should handle stream interruption via HTTP',
171
- Effect.fn(function* () {
166
+ Vitest.scopedLive('should handle stream interruption via HTTP', (test) =>
167
+ Effect.gen(function* () {
172
168
  const client = yield* RpcClient.make(TestRpcs)
173
169
  const stream = client.StreamInterruptible({ delay: 50, interruptAfterCount: 3 }).pipe(Stream.take(3))
174
170
  const chunks = yield* Stream.runCollect(stream)
175
171
  expect(Chunk.toReadonlyArray(chunks)).toEqual([1, 2, 3])
176
- }, Effect.provide(ProtocolLive)),
172
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
177
173
  )
178
174
 
179
175
  // TODO @IMax153
180
- Vitest.scopedLive.skip(
181
- 'should handle streaming RPC bug scenario',
182
- Effect.fn(function* () {
176
+ Vitest.scopedLive.skip('should handle streaming RPC bug scenario', (test) =>
177
+ Effect.gen(function* () {
183
178
  const client = yield* RpcClient.make(TestRpcs)
184
179
  yield* client.StreamBugScenarioDoClient({})
185
180
  /*
@@ -230,6 +225,6 @@ Vitest.describe('Durable Object RPC', { timeout: 5000 }, () => {
230
225
  ```
231
226
 
232
227
  */
233
- }, Effect.provide(ProtocolLive)),
228
+ }).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)),
234
229
  )
235
230
  })