Skip to content

Commit 61e60c1

Browse files
Bump to test suite 2.1 (#439)
1 parent e4fe954 commit 61e60c1

File tree

5 files changed

+67
-2
lines changed

5 files changed

+67
-2
lines changed

.github/workflows/integration.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
name: "Features integration test (sdk-test-suite version ${{ matrix.sdk-test-suite }})"
4141
strategy:
4242
matrix:
43-
sdk-test-suite: ["1.5"]
43+
sdk-test-suite: ["2.1"]
4444
permissions:
4545
contents: read
4646
issues: read
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
1-
exclusions: {}
1+
exclusions:
2+
"alwaysSuspending":
3+
- "dev.restate.sdktesting.tests.RunRetry"
4+
"default":
5+
- "dev.restate.sdktesting.tests.RunRetry"
6+
"singleThreadSinglePartition":
7+
- "dev.restate.sdktesting.tests.RunRetry"

packages/restate-e2e-services/src/list.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,5 @@ const o = restate.object({
3535
});
3636

3737
REGISTRY.addObject(o);
38+
39+
export type ListObject = typeof o;

packages/restate-e2e-services/src/proxy.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ type ProxyRequest = {
1717
virtualObjectKey?: string;
1818
handlerName: string;
1919
message: Array<number>;
20+
delayMillis?: number;
2021
};
2122

2223
type ManyCallRequest = {
@@ -46,6 +47,7 @@ function rawSend(ctx: restate.Context, request: ProxyRequest) {
4647
key: request.virtualObjectKey,
4748
inputSerde: restate.serde.binary,
4849
parameter: new Uint8Array(request.message),
50+
delay: request.delayMillis,
4951
});
5052
}
5153

packages/restate-e2e-services/src/test_utils.ts

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,20 @@ import * as restate from "@restatedev/restate-sdk";
1111
import { REGISTRY } from "./services.js";
1212

1313
import type { AwakeableHolder } from "./awakeable_holder.js";
14+
import * as process from "node:process";
15+
import { ListObject } from "./list.js";
1416

1517
const AwakeableHolder: AwakeableHolder = { name: "AwakeableHolder" };
18+
const ListObject: ListObject = { name: "ListObject" };
19+
20+
type Command =
21+
| { type: "createAwakeableAndAwaitIt"; awakeableKey: string }
22+
| { type: "getEnvVariable"; envName: string };
23+
24+
interface InterpretRequest {
25+
listName: string;
26+
commands: Command[];
27+
}
1628

1729
const o = restate.service({
1830
name: "TestUtilsService",
@@ -32,6 +44,13 @@ const o = restate.service({
3244
);
3345
},
3446

47+
rawEcho: restate.handlers.handler(
48+
{ input: restate.serde.binary, output: restate.serde.binary },
49+
(ctx: restate.Context, input: Uint8Array) => {
50+
return Promise.resolve(input);
51+
}
52+
),
53+
3554
async createAwakeableAndAwaitIt(
3655
ctx: restate.Context,
3756
req: { awakeableKey: string; awaitTimeout?: number }
@@ -82,6 +101,42 @@ const o = restate.service({
82101

83102
return invokedSideEffects;
84103
},
104+
105+
async getEnvVariable(ctx: restate.Context, env: string): Promise<string> {
106+
return ctx.run(() => process.env[env] ?? "");
107+
},
108+
109+
async interpretCommands(
110+
ctx: restate.Context,
111+
req: InterpretRequest
112+
): Promise<void> {
113+
const listClient = ctx.objectSendClient(ListObject, req.listName);
114+
115+
async function createAwakeableAndAwaitIt(
116+
awakeableKey: string
117+
): Promise<string> {
118+
const { id, promise } = ctx.awakeable<string>();
119+
await ctx.objectClient(AwakeableHolder, awakeableKey).hold(id);
120+
return promise;
121+
}
122+
123+
async function getEnvVariable(envName: string): Promise<string> {
124+
return ctx.run(() => process.env[envName] ?? "");
125+
}
126+
127+
for (const command of req.commands) {
128+
switch (command.type) {
129+
case "createAwakeableAndAwaitIt":
130+
listClient.append(
131+
await createAwakeableAndAwaitIt(command.awakeableKey)
132+
);
133+
break;
134+
case "getEnvVariable":
135+
listClient.append(await getEnvVariable(command.envName));
136+
break;
137+
}
138+
}
139+
},
85140
},
86141
});
87142

0 commit comments

Comments
 (0)