@@ -10,8 +10,13 @@ import { describe, expect, it } from "vitest";
|
10 | 10 | |
11 | 11 | const mockOpenAiPath = "scripts/e2e/mock-openai-server.mjs"; |
12 | 12 | const webSearchMockPath = "scripts/e2e/lib/openai-web-search-minimal/mock-server.mjs"; |
| 13 | +const browserCdpFixturePath = "scripts/e2e/lib/browser-cdp-snapshot/fixture-server.mjs"; |
13 | 14 | const configReloadAssertPath = "scripts/e2e/lib/config-reload/assert-log.mjs"; |
| 15 | +const clickClackFixturePath = "scripts/e2e/lib/release-user-journey/clickclack-fixture.mjs"; |
14 | 16 | const scrubbedEnvKeys = [ |
| 17 | +"CLICKCLACK_FIXTURE_PORT", |
| 18 | +"CLICKCLACK_FIXTURE_REQUEST_MAX_BYTES", |
| 19 | +"FIXTURE_PORT", |
15 | 20 | "MOCK_PORT", |
16 | 21 | "MOCK_REQUEST_LOG", |
17 | 22 | "OPENCLAW_CONFIG_RELOAD_LOG_MAX_READ_BYTES", |
@@ -161,13 +166,41 @@ describe("e2e mock and config helper numeric limits", () => {
|
161 | 166 | expect(fallbackPort.stderr).toContain("invalid OPENCLAW_MOCK_OPENAI_PORT: 44080http"); |
162 | 167 | }); |
163 | 168 | |
| 169 | +it("rejects out-of-range mock OpenAI port env values", () => { |
| 170 | +const mockPort = runScript(mockOpenAiPath, { MOCK_PORT: "65536" }); |
| 171 | +expect(mockPort.status).not.toBe(0); |
| 172 | +expect(mockPort.stderr).toContain("invalid MOCK_PORT: 65536"); |
| 173 | + |
| 174 | +const fallbackPort = runScript(mockOpenAiPath, { |
| 175 | +OPENCLAW_MOCK_OPENAI_PORT: "65536", |
| 176 | +}); |
| 177 | +expect(fallbackPort.status).not.toBe(0); |
| 178 | +expect(fallbackPort.stderr).toContain("invalid OPENCLAW_MOCK_OPENAI_PORT: 65536"); |
| 179 | +}); |
| 180 | + |
164 | 181 | it("rejects loose OpenAI web-search mock port env values", () => { |
165 | 182 | const result = runScript(webSearchMockPath, { MOCK_PORT: "80http" }); |
166 | 183 | |
167 | 184 | expect(result.status).not.toBe(0); |
168 | 185 | expect(result.stderr).toContain("invalid MOCK_PORT: 80http"); |
169 | 186 | }); |
170 | 187 | |
| 188 | +it("rejects out-of-range fixture listener ports", () => { |
| 189 | +const webSearch = runScript(webSearchMockPath, { MOCK_PORT: "65536" }); |
| 190 | +expect(webSearch.status).not.toBe(0); |
| 191 | +expect(webSearch.stderr).toContain("invalid MOCK_PORT: 65536"); |
| 192 | + |
| 193 | +const browserFixture = runScript(browserCdpFixturePath, { FIXTURE_PORT: "65536" }); |
| 194 | +expect(browserFixture.status).not.toBe(0); |
| 195 | +expect(browserFixture.stderr).toContain("invalid FIXTURE_PORT: 65536"); |
| 196 | + |
| 197 | +const clickClack = runScript(clickClackFixturePath, { |
| 198 | +CLICKCLACK_FIXTURE_PORT: "65536", |
| 199 | +}); |
| 200 | +expect(clickClack.status).not.toBe(0); |
| 201 | +expect(clickClack.stderr).toContain("invalid CLICKCLACK_FIXTURE_PORT: 65536"); |
| 202 | +}); |
| 203 | + |
171 | 204 | it("rejects loose config-reload log timeout env values", () => { |
172 | 205 | const result = runScript(configReloadAssertPath, { |
173 | 206 | OPENCLAW_CONFIG_RELOAD_LOG_TIMEOUT_MS: "30000ms", |
|