Skip to content

Commit 17cded7

Browse files
committed
fix: stabilize server CLI release tests
1 parent e72f668 commit 17cded7

1 file changed

Lines changed: 61 additions & 59 deletions

File tree

apps/server/src/main.test.ts

Lines changed: 61 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -33,67 +33,69 @@ const serverStart = Effect.acquireRelease(
3333
const findAvailablePort = vi.fn((preferred: number) => Effect.succeed(preferred));
3434

3535
// Shared service layer used by this CLI test suite.
36-
const testLayer = Layer.mergeAll(
37-
Layer.effect(
38-
CliConfig,
39-
Effect.sync(
40-
() =>
41-
({
42-
cwd: testWorkspaceRoot,
43-
fixPath: Effect.void,
44-
resolveStaticDir: Effect.undefined,
45-
}) satisfies CliConfigShape,
36+
const testLayer = Layer.fresh(
37+
Layer.mergeAll(
38+
Layer.effect(
39+
CliConfig,
40+
Effect.sync(
41+
() =>
42+
({
43+
cwd: testWorkspaceRoot,
44+
fixPath: Effect.void,
45+
resolveStaticDir: Effect.undefined,
46+
}) satisfies CliConfigShape,
47+
),
4648
),
49+
Layer.succeed(NetService, {
50+
canListenOnHost: () => Effect.succeed(true),
51+
isPortAvailableOnLoopback: () => Effect.succeed(true),
52+
reserveLoopbackPort: () => Effect.succeed(0),
53+
findAvailablePort,
54+
}),
55+
Layer.succeed(Server, {
56+
start: serverStart,
57+
stopSignal: Effect.void,
58+
} satisfies ServerShape),
59+
Layer.succeed(OpenclawGatewayConfig, {
60+
getSummary: () =>
61+
Effect.succeed({
62+
gatewayUrl: null,
63+
hasSharedSecret: false,
64+
deviceId: null,
65+
devicePublicKey: null,
66+
deviceFingerprint: null,
67+
hasDeviceToken: false,
68+
deviceTokenRole: null,
69+
deviceTokenScopes: [],
70+
updatedAt: null,
71+
}),
72+
getStored: () => Effect.succeed(null),
73+
save: () => Effect.die("unexpected openclaw save"),
74+
resolveForConnect: () => Effect.succeed(null),
75+
saveDeviceToken: () => Effect.void,
76+
clearDeviceToken: () => Effect.void,
77+
resetDeviceState: () =>
78+
Effect.succeed({
79+
gatewayUrl: null,
80+
hasSharedSecret: false,
81+
deviceId: null,
82+
devicePublicKey: null,
83+
deviceFingerprint: null,
84+
hasDeviceToken: false,
85+
deviceTokenRole: null,
86+
deviceTokenScopes: [],
87+
updatedAt: null,
88+
}),
89+
}),
90+
Layer.succeed(Open, {
91+
openBrowser: (_target: string) => Effect.void,
92+
openInEditor: () => Effect.void,
93+
openInFileManager: () => Effect.void,
94+
revealInFileManager: () => Effect.void,
95+
} satisfies OpenShape),
96+
FetchHttpClient.layer,
97+
NodeServices.layer,
4798
),
48-
Layer.succeed(NetService, {
49-
canListenOnHost: () => Effect.succeed(true),
50-
isPortAvailableOnLoopback: () => Effect.succeed(true),
51-
reserveLoopbackPort: () => Effect.succeed(0),
52-
findAvailablePort,
53-
}),
54-
Layer.succeed(Server, {
55-
start: serverStart,
56-
stopSignal: Effect.void,
57-
} satisfies ServerShape),
58-
Layer.succeed(OpenclawGatewayConfig, {
59-
getSummary: () =>
60-
Effect.succeed({
61-
gatewayUrl: null,
62-
hasSharedSecret: false,
63-
deviceId: null,
64-
devicePublicKey: null,
65-
deviceFingerprint: null,
66-
hasDeviceToken: false,
67-
deviceTokenRole: null,
68-
deviceTokenScopes: [],
69-
updatedAt: null,
70-
}),
71-
getStored: () => Effect.succeed(null),
72-
save: () => Effect.die("unexpected openclaw save"),
73-
resolveForConnect: () => Effect.succeed(null),
74-
saveDeviceToken: () => Effect.void,
75-
clearDeviceToken: () => Effect.void,
76-
resetDeviceState: () =>
77-
Effect.succeed({
78-
gatewayUrl: null,
79-
hasSharedSecret: false,
80-
deviceId: null,
81-
devicePublicKey: null,
82-
deviceFingerprint: null,
83-
hasDeviceToken: false,
84-
deviceTokenRole: null,
85-
deviceTokenScopes: [],
86-
updatedAt: null,
87-
}),
88-
}),
89-
Layer.succeed(Open, {
90-
openBrowser: (_target: string) => Effect.void,
91-
openInEditor: () => Effect.void,
92-
openInFileManager: () => Effect.void,
93-
revealInFileManager: () => Effect.void,
94-
} satisfies OpenShape),
95-
FetchHttpClient.layer,
96-
NodeServices.layer,
9799
);
98100

99101
const runCli = (

0 commit comments

Comments
 (0)