wreq-js 0.1.0 → 1.0.0
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.
- package/README.md +110 -182
- package/dist/test/helpers/local-test-server.d.ts +7 -0
- package/dist/test/helpers/local-test-server.d.ts.map +1 -0
- package/dist/test/helpers/local-test-server.js +302 -0
- package/dist/test/helpers/local-test-server.js.map +1 -0
- package/dist/test/http.spec.js +135 -37
- package/dist/test/http.spec.js.map +1 -1
- package/dist/test/run-with-local-server.d.ts +2 -0
- package/dist/test/run-with-local-server.d.ts.map +1 -0
- package/dist/test/run-with-local-server.js +61 -0
- package/dist/test/run-with-local-server.js.map +1 -0
- package/dist/test/websocket.spec.js +47 -50
- package/dist/test/websocket.spec.js.map +1 -1
- package/dist/types.d.ts +273 -30
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +16 -1
- package/dist/types.js.map +1 -1
- package/dist/wreq-js.d.ts +82 -55
- package/dist/wreq-js.d.ts.map +1 -1
- package/dist/wreq-js.js +595 -82
- package/dist/wreq-js.js.map +1 -1
- package/package.json +20 -22
- package/rust/wreq-js.darwin-arm64.node +0 -0
- package/rust/wreq-js.darwin-x64.node +0 -0
- package/rust/wreq-js.linux-arm64-gnu.node +0 -0
- package/rust/wreq-js.linux-x64-gnu.node +0 -0
- package/rust/wreq-js.win32-x64-msvc.node +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-test-server.js","sourceRoot":"","sources":["../../../src/test/helpers/local-test-server.ts"],"names":[],"mappings":"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"}
|
package/dist/test/http.spec.js
CHANGED
|
@@ -3,61 +3,159 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const node_test_1 = require("node:test");
|
|
7
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
|
+
const node_test_1 = require("node:test");
|
|
8
8
|
const wreq_js_1 = require("../wreq-js");
|
|
9
|
-
|
|
9
|
+
const HTTP_TEST_BASE_URL = process.env.HTTP_TEST_BASE_URL ?? "https://httpbingo.org";
|
|
10
|
+
const httpUrl = (path) => new URL(path, HTTP_TEST_BASE_URL).toString();
|
|
11
|
+
(0, node_test_1.describe)("HTTP", () => {
|
|
10
12
|
(0, node_test_1.before)(() => {
|
|
11
|
-
console.log(
|
|
13
|
+
console.log("🔌 HTTP Test Suite\n");
|
|
12
14
|
});
|
|
13
|
-
(0, node_test_1.test)(
|
|
15
|
+
(0, node_test_1.test)("should return available browser profiles", () => {
|
|
14
16
|
const profiles = (0, wreq_js_1.getProfiles)();
|
|
15
|
-
node_assert_1.default.ok(Array.isArray(profiles),
|
|
16
|
-
node_assert_1.default.ok(profiles.length > 0,
|
|
17
|
-
node_assert_1.default.ok(profiles.some((p) => p.includes(
|
|
18
|
-
profiles.some((p) => p.includes(
|
|
19
|
-
profiles.some((p) => p.includes(
|
|
20
|
-
console.log(
|
|
21
|
-
});
|
|
22
|
-
(0, node_test_1.test)(
|
|
23
|
-
const response = await (0, wreq_js_1.
|
|
24
|
-
|
|
25
|
-
browser: 'chrome_131',
|
|
17
|
+
node_assert_1.default.ok(Array.isArray(profiles), "Profiles should be an array");
|
|
18
|
+
node_assert_1.default.ok(profiles.length > 0, "Should have at least one profile");
|
|
19
|
+
node_assert_1.default.ok(profiles.some((p) => p.includes("chrome")) ||
|
|
20
|
+
profiles.some((p) => p.includes("firefox")) ||
|
|
21
|
+
profiles.some((p) => p.includes("safari")), "Should include standard browser profiles");
|
|
22
|
+
console.log("Available profiles:", profiles.join(", "));
|
|
23
|
+
});
|
|
24
|
+
(0, node_test_1.test)("should make a simple GET request", async () => {
|
|
25
|
+
const response = await (0, wreq_js_1.fetch)(httpUrl("/get"), {
|
|
26
|
+
browser: "chrome_131",
|
|
26
27
|
timeout: 10000,
|
|
27
28
|
});
|
|
28
|
-
node_assert_1.default.ok(response.status >= 200 && response.status < 300,
|
|
29
|
-
node_assert_1.default.ok(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
node_assert_1.default.ok(
|
|
33
|
-
console.log(
|
|
34
|
-
console.log(
|
|
35
|
-
});
|
|
36
|
-
(0, node_test_1.test)(
|
|
37
|
-
const testUrl =
|
|
38
|
-
const browsers = [
|
|
29
|
+
node_assert_1.default.ok(response.status >= 200 && response.status < 300, "Should return successful status");
|
|
30
|
+
node_assert_1.default.ok(response.headers.has("content-type"), "Should have response headers");
|
|
31
|
+
const body = await response.json();
|
|
32
|
+
node_assert_1.default.ok(body.headers["User-Agent"], "Should have User-Agent header");
|
|
33
|
+
node_assert_1.default.ok(response.bodyUsed, "json() should mark the body as used");
|
|
34
|
+
console.log("Status:", response.status);
|
|
35
|
+
console.log("User-Agent:", body.headers["User-Agent"]);
|
|
36
|
+
});
|
|
37
|
+
(0, node_test_1.test)("should work with different browser profiles", async () => {
|
|
38
|
+
const testUrl = httpUrl("/user-agent");
|
|
39
|
+
const browsers = ["chrome_142", "firefox_139", "safari_18"];
|
|
39
40
|
for (const browser of browsers) {
|
|
40
|
-
const response = await (0, wreq_js_1.
|
|
41
|
-
|
|
42
|
-
browser: browser,
|
|
41
|
+
const response = await (0, wreq_js_1.fetch)(testUrl, {
|
|
42
|
+
browser,
|
|
43
43
|
timeout: 10000,
|
|
44
44
|
});
|
|
45
45
|
node_assert_1.default.ok(response.status === 200, `${browser} should return status 200`);
|
|
46
46
|
const data = JSON.parse(response.body);
|
|
47
|
-
node_assert_1.default.ok(data[
|
|
48
|
-
console.log(`${browser}:`, data[
|
|
47
|
+
node_assert_1.default.ok(data["user-agent"], `${browser} should have user-agent`);
|
|
48
|
+
console.log(`${browser}:`, `${data["user-agent"].substring(0, 70)}...`);
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
|
-
(0, node_test_1.test)(
|
|
51
|
+
(0, node_test_1.test)("should handle timeout errors", async () => {
|
|
52
52
|
await node_assert_1.default.rejects(async () => {
|
|
53
|
-
await (0, wreq_js_1.
|
|
54
|
-
|
|
55
|
-
browser: 'chrome_137',
|
|
53
|
+
await (0, wreq_js_1.fetch)(httpUrl("/delay/10"), {
|
|
54
|
+
browser: "chrome_142",
|
|
56
55
|
timeout: 1000, // 1 second timeout for 10 second delay
|
|
57
56
|
});
|
|
58
57
|
}, {
|
|
59
|
-
name:
|
|
60
|
-
},
|
|
58
|
+
name: "RequestError",
|
|
59
|
+
}, "Should throw an error on timeout");
|
|
60
|
+
});
|
|
61
|
+
(0, node_test_1.test)("should provide functional clone and text helpers", async () => {
|
|
62
|
+
const response = await (0, wreq_js_1.fetch)(httpUrl("/json"), {
|
|
63
|
+
browser: "chrome_142",
|
|
64
|
+
timeout: 10000,
|
|
65
|
+
});
|
|
66
|
+
const clone = response.clone();
|
|
67
|
+
const original = await response.json();
|
|
68
|
+
const cloneText = await clone.text();
|
|
69
|
+
node_assert_1.default.ok(original, "json() should parse successfully");
|
|
70
|
+
node_assert_1.default.ok(cloneText.length > 0, "clone text should return payload");
|
|
71
|
+
node_assert_1.default.ok(response.bodyUsed, "original body should be consumed");
|
|
72
|
+
node_assert_1.default.ok(clone.bodyUsed, "clone body should be consumed");
|
|
73
|
+
});
|
|
74
|
+
(0, node_test_1.test)("should reject aborted requests with AbortError", async () => {
|
|
75
|
+
const controller = new AbortController();
|
|
76
|
+
controller.abort();
|
|
77
|
+
await node_assert_1.default.rejects(async () => {
|
|
78
|
+
await (0, wreq_js_1.fetch)(httpUrl("/get"), {
|
|
79
|
+
browser: "chrome_142",
|
|
80
|
+
signal: controller.signal,
|
|
81
|
+
timeout: 1000,
|
|
82
|
+
});
|
|
83
|
+
}, (error) => error instanceof Error && error.name === "AbortError", "Should reject with AbortError");
|
|
84
|
+
});
|
|
85
|
+
(0, node_test_1.test)("should work with custom Headers helper", () => {
|
|
86
|
+
const headers = new wreq_js_1.Headers({
|
|
87
|
+
"X-Test": "alpha",
|
|
88
|
+
});
|
|
89
|
+
headers.append("x-test", "beta");
|
|
90
|
+
headers.set("X-Another", "value");
|
|
91
|
+
const collected = Array.from(headers.entries());
|
|
92
|
+
node_assert_1.default.strictEqual(headers.get("X-Test"), "alpha, beta", "append should concatenate values");
|
|
93
|
+
node_assert_1.default.strictEqual(headers.get("x-another"), "value", "set should overwrite values");
|
|
94
|
+
node_assert_1.default.ok(collected.length >= 2, "entries should iterate all headers");
|
|
95
|
+
});
|
|
96
|
+
(0, node_test_1.test)("should validate browser profiles in fetch", async () => {
|
|
97
|
+
await node_assert_1.default.rejects(async () => {
|
|
98
|
+
await (0, wreq_js_1.fetch)(httpUrl("/get"), {
|
|
99
|
+
browser: "nonexistent_browser",
|
|
100
|
+
timeout: 1000,
|
|
101
|
+
});
|
|
102
|
+
}, (error) => error instanceof wreq_js_1.RequestError, "Should reject invalid browser profiles");
|
|
103
|
+
});
|
|
104
|
+
(0, node_test_1.test)("should isolate cookies for default fetch calls", async () => {
|
|
105
|
+
await (0, wreq_js_1.fetch)(httpUrl("/cookies/set?ephemeral=on"), {
|
|
106
|
+
browser: "chrome_142",
|
|
107
|
+
timeout: 5000,
|
|
108
|
+
});
|
|
109
|
+
const response = await (0, wreq_js_1.fetch)(httpUrl("/cookies"), {
|
|
110
|
+
browser: "chrome_142",
|
|
111
|
+
timeout: 5000,
|
|
112
|
+
});
|
|
113
|
+
const body = await response.json();
|
|
114
|
+
node_assert_1.default.ok(!body.cookies.ephemeral, "Ephemeral cookies should not persist across requests");
|
|
115
|
+
});
|
|
116
|
+
(0, node_test_1.test)("should isolate cookies between sessions", async () => {
|
|
117
|
+
const sessionA = await (0, wreq_js_1.createSession)({ browser: "chrome_142" });
|
|
118
|
+
const sessionB = await (0, wreq_js_1.createSession)({ browser: "chrome_142" });
|
|
119
|
+
try {
|
|
120
|
+
await sessionA.fetch(httpUrl("/cookies/set?flavor=alpha"), { timeout: 10000 });
|
|
121
|
+
await sessionB.fetch(httpUrl("/cookies/set?flavor=beta"), { timeout: 10000 });
|
|
122
|
+
const cookiesA = await sessionA.fetch(httpUrl("/cookies"), { timeout: 10000 });
|
|
123
|
+
const cookiesB = await sessionB.fetch(httpUrl("/cookies"), { timeout: 10000 });
|
|
124
|
+
const bodyA = await cookiesA.json();
|
|
125
|
+
const bodyB = await cookiesB.json();
|
|
126
|
+
node_assert_1.default.strictEqual(bodyA.cookies.flavor, "alpha", "Session A should keep its own cookies");
|
|
127
|
+
node_assert_1.default.strictEqual(bodyB.cookies.flavor, "beta", "Session B should keep its own cookies");
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
await sessionA.close();
|
|
131
|
+
await sessionB.close();
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
(0, node_test_1.test)("should clear session cookies on demand", async () => {
|
|
135
|
+
const session = await (0, wreq_js_1.createSession)({ browser: "chrome_142" });
|
|
136
|
+
try {
|
|
137
|
+
await session.fetch(httpUrl("/cookies/set?token=123"), { timeout: 10000 });
|
|
138
|
+
await session.clearCookies();
|
|
139
|
+
const response = await session.fetch(httpUrl("/cookies"), { timeout: 10000 });
|
|
140
|
+
const body = await response.json();
|
|
141
|
+
node_assert_1.default.deepStrictEqual(body.cookies, {}, "Clearing the session should drop stored cookies");
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
await session.close();
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
(0, node_test_1.test)("withSession helper should dispose sessions automatically", async () => {
|
|
148
|
+
let capturedSession;
|
|
149
|
+
await (0, wreq_js_1.withSession)(async (session) => {
|
|
150
|
+
capturedSession = session;
|
|
151
|
+
const response = await session.fetch(httpUrl("/get"), { timeout: 5000 });
|
|
152
|
+
node_assert_1.default.strictEqual(response.status, 200);
|
|
153
|
+
});
|
|
154
|
+
const session = capturedSession;
|
|
155
|
+
node_assert_1.default.ok(session, "withSession should provide a session instance");
|
|
156
|
+
await node_assert_1.default.rejects(async () => {
|
|
157
|
+
await session.fetch(httpUrl("/get"), { timeout: 5000 });
|
|
158
|
+
}, (error) => error instanceof wreq_js_1.RequestError, "Using a closed session should fail");
|
|
61
159
|
});
|
|
62
160
|
});
|
|
63
161
|
//# sourceMappingURL=http.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.spec.js","sourceRoot":"","sources":["../../src/test/http.spec.ts"],"names":[],"mappings":";;;;;AAAA,yCAAmD;
|
|
1
|
+
{"version":3,"file":"http.spec.js","sourceRoot":"","sources":["../../src/test/http.spec.ts"],"names":[],"mappings":";;;;;AAAA,8DAAiC;AACjC,yCAAmD;AAEnD,wCAAgH;AAEhH,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB,CAAC;AACrF,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC;AAE/E,IAAA,oBAAQ,EAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAA,kBAAM,EAAC,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,MAAM,QAAQ,GAAG,IAAA,qBAAW,GAAE,CAAC;QAE/B,qBAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAClE,qBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;QACnE,qBAAM,CAAC,EAAE,CACP,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAC5C,0CAA0C,CAC3C,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAS,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAChD,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,qBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,iCAAiC,CAAC,CAAC;QAC9F,qBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAEhF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuC,CAAC;QAExE,qBAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,+BAA+B,CAAC,CAAC;QACvE,qBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;QAEpE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAU,CAAC;QAErE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAS,EAAC,OAAO,EAAE;gBACxC,OAAO;gBACP,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,qBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,2BAA2B,CAAC,CAAC;YAE1E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEvC,qBAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,yBAAyB,CAAC,CAAC;YAEnE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,qBAAM,CAAC,OAAO,CAClB,KAAK,IAAI,EAAE;YACT,MAAM,IAAA,eAAS,EAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACpC,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,IAAI,EAAE,uCAAuC;aACvD,CAAC,CAAC;QACL,CAAC,EACD;YACE,IAAI,EAAE,cAAc;SACrB,EACD,kCAAkC,CACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACjD,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAErC,qBAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;QACxD,qBAAM,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;QACpE,qBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;QACjE,qBAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,MAAM,qBAAM,CAAC,OAAO,CAClB,KAAK,IAAI,EAAE;YACT,MAAM,IAAA,eAAS,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EACzE,+BAA+B,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC;YAC1B,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAElC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhD,qBAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,kCAAkC,CAAC,CAAC;QAC7F,qBAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,6BAA6B,CAAC,CAAC;QACrF,qBAAM,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,qBAAM,CAAC,OAAO,CAClB,KAAK,IAAI,EAAE;YACT,MAAM,IAAA,eAAS,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO,EAAE,qBAAuC;gBAChD,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,YAAY,sBAAY,EACjD,wCAAwC,CACzC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,IAAA,eAAS,EAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE;YACpD,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAS,EAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuC,CAAC;QAExE,qBAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,sDAAsD,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAa,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAa,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAE9E,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAE/E,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuC,CAAC;YACzE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuC,CAAC;YAEzE,qBAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;YAC3F,qBAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,uCAAuC,CAAC,CAAC;QAC5F,CAAC;gBAAS,CAAC;YACT,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAa,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YAE7B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuC,CAAC;YAExE,qBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,iDAAiD,CAAC,CAAC;QAC9F,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QAC1E,IAAI,eAAoC,CAAC;QAEzC,MAAM,IAAA,qBAAW,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,eAAe,GAAG,OAAO,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,qBAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,eAAe,CAAC;QAChC,qBAAM,CAAC,EAAE,CAAC,OAAO,EAAE,+CAA+C,CAAC,CAAC;QAEpE,MAAM,qBAAM,CAAC,OAAO,CAClB,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC,EACD,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,YAAY,sBAAY,EACjD,oCAAoC,CACrC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-with-local-server.d.ts","sourceRoot":"","sources":["../../src/test/run-with-local-server.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_child_process_1 = require("node:child_process");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
9
|
+
const local_test_server_1 = require("./helpers/local-test-server");
|
|
10
|
+
const testDir = __dirname;
|
|
11
|
+
async function main() {
|
|
12
|
+
const extraArgs = node_process_1.default.argv.slice(2);
|
|
13
|
+
const defaultTestFiles = [(0, node_path_1.resolve)(testDir, "http.spec.js"), (0, node_path_1.resolve)(testDir, "websocket.spec.js")];
|
|
14
|
+
const env = { ...node_process_1.default.env };
|
|
15
|
+
let localServer;
|
|
16
|
+
if (!env.HTTP_TEST_BASE_URL || !env.WS_TEST_URL) {
|
|
17
|
+
localServer = await (0, local_test_server_1.startLocalTestServer)();
|
|
18
|
+
if (!env.HTTP_TEST_BASE_URL) {
|
|
19
|
+
env.HTTP_TEST_BASE_URL = localServer.httpBaseUrl;
|
|
20
|
+
}
|
|
21
|
+
if (!env.WS_TEST_URL) {
|
|
22
|
+
env.WS_TEST_URL = localServer.wsUrl;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const nodeArgs = ["--test", ...defaultTestFiles, ...extraArgs];
|
|
26
|
+
const testProcess = (0, node_child_process_1.spawn)(node_process_1.default.execPath, nodeArgs, {
|
|
27
|
+
stdio: "inherit",
|
|
28
|
+
env,
|
|
29
|
+
});
|
|
30
|
+
const cleanup = async () => {
|
|
31
|
+
if (!localServer) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const server = localServer;
|
|
35
|
+
localServer = undefined;
|
|
36
|
+
try {
|
|
37
|
+
await server.close();
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error("Failed to stop local test server:", error);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
testProcess.once("exit", async (code, signal) => {
|
|
44
|
+
await cleanup();
|
|
45
|
+
if (signal) {
|
|
46
|
+
node_process_1.default.kill(node_process_1.default.pid, signal);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
node_process_1.default.exit(code ?? 1);
|
|
50
|
+
});
|
|
51
|
+
testProcess.once("error", async (error) => {
|
|
52
|
+
console.error("Failed to run tests:", error);
|
|
53
|
+
await cleanup();
|
|
54
|
+
node_process_1.default.exit(1);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
main().catch((error) => {
|
|
58
|
+
console.error(error);
|
|
59
|
+
node_process_1.default.exit(1);
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=run-with-local-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-with-local-server.js","sourceRoot":"","sources":["../../src/test/run-with-local-server.ts"],"names":[],"mappings":";;;;;AAAA,2DAA2C;AAC3C,yCAAoC;AACpC,gEAAmC;AAEnC,mEAAmE;AAEnE,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,sBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,CAAC,IAAA,mBAAO,EAAC,OAAO,EAAE,cAAc,CAAC,EAAE,IAAA,mBAAO,EAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEnG,MAAM,GAAG,GAAG,EAAE,GAAG,sBAAO,CAAC,GAAG,EAAE,CAAC;IAE/B,IAAI,WAAwC,CAAC;IAC7C,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAChD,WAAW,GAAG,MAAM,IAAA,wCAAoB,GAAE,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC5B,GAAG,CAAC,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAA,0BAAK,EAAC,sBAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;QACpD,KAAK,EAAE,SAAS;QAChB,GAAG;KACJ,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC;QAC3B,WAAW,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IAEF,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,OAAO,EAAE,CAAC;QAChB,IAAI,MAAM,EAAE,CAAC;YACX,sBAAO,CAAC,IAAI,CAAC,sBAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,sBAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACxC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,EAAE,CAAC;QAChB,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -3,20 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const node_test_1 = require("node:test");
|
|
7
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
|
+
const node_test_1 = require("node:test");
|
|
8
8
|
const promises_1 = require("node:timers/promises");
|
|
9
9
|
const wreq_js_1 = require("../wreq-js");
|
|
10
|
-
|
|
10
|
+
const WS_TEST_URL = process.env.WS_TEST_URL ?? "wss://echo.websocket.org";
|
|
11
|
+
(0, node_test_1.describe)("WebSocket", () => {
|
|
11
12
|
(0, node_test_1.before)(() => {
|
|
12
|
-
console.log(
|
|
13
|
+
console.log("🔌 WebSocket Test Suite\n");
|
|
13
14
|
});
|
|
14
|
-
(0, node_test_1.test)(
|
|
15
|
+
(0, node_test_1.test)("should connect to WebSocket and send/receive messages", async () => {
|
|
15
16
|
const messages = [];
|
|
16
17
|
let isClosed = false;
|
|
17
18
|
const ws = await (0, wreq_js_1.websocket)({
|
|
18
|
-
url:
|
|
19
|
-
browser:
|
|
19
|
+
url: WS_TEST_URL,
|
|
20
|
+
browser: "chrome_142",
|
|
20
21
|
onMessage: (data) => {
|
|
21
22
|
messages.push(data);
|
|
22
23
|
},
|
|
@@ -24,97 +25,93 @@ const wreq_js_1 = require("../wreq-js");
|
|
|
24
25
|
isClosed = true;
|
|
25
26
|
},
|
|
26
27
|
onError: (error) => {
|
|
27
|
-
console.error(
|
|
28
|
+
console.error("WebSocket error:", error);
|
|
28
29
|
},
|
|
29
30
|
});
|
|
30
|
-
console.log(
|
|
31
|
-
await ws.send(
|
|
31
|
+
console.log("WebSocket connected");
|
|
32
|
+
await ws.send("Hello!");
|
|
32
33
|
// Wait for echo response
|
|
33
|
-
await (0, promises_1.setTimeout)(
|
|
34
|
-
node_assert_1.default.ok(messages.length > 0,
|
|
34
|
+
await (0, promises_1.setTimeout)(100);
|
|
35
|
+
node_assert_1.default.ok(messages.length > 0, "Should receive at least one message");
|
|
35
36
|
// Wait a bit for close callback
|
|
36
37
|
await ws.close();
|
|
37
|
-
await (0, promises_1.setTimeout)(
|
|
38
|
-
node_assert_1.default.ok(isClosed,
|
|
39
|
-
// Rate limit protection: wait before next test
|
|
40
|
-
await (0, promises_1.setTimeout)(2000);
|
|
38
|
+
await (0, promises_1.setTimeout)(100);
|
|
39
|
+
node_assert_1.default.ok(isClosed, "Should receive close event");
|
|
41
40
|
});
|
|
42
|
-
(0, node_test_1.test)(
|
|
41
|
+
(0, node_test_1.test)("should handle parallel sends on same WebSocket", async () => {
|
|
43
42
|
const messages = [];
|
|
44
|
-
const expectedMessages = [
|
|
43
|
+
const expectedMessages = ["Message 1", "Message 2", "Message 3", "Message 4", "Message 5"];
|
|
45
44
|
const ws = await (0, wreq_js_1.websocket)({
|
|
46
|
-
url:
|
|
47
|
-
browser:
|
|
45
|
+
url: WS_TEST_URL,
|
|
46
|
+
browser: "chrome_142",
|
|
48
47
|
onMessage: (data) => {
|
|
49
48
|
messages.push(data);
|
|
50
49
|
},
|
|
51
50
|
onClose: () => { },
|
|
52
51
|
onError: (error) => {
|
|
53
|
-
console.error(
|
|
52
|
+
console.error("WebSocket error:", error);
|
|
54
53
|
},
|
|
55
54
|
});
|
|
56
|
-
console.log(
|
|
55
|
+
console.log("Testing parallel sends...");
|
|
57
56
|
// Send multiple messages in parallel
|
|
58
57
|
await Promise.all([
|
|
59
|
-
ws.send(
|
|
60
|
-
ws.send(
|
|
61
|
-
ws.send(
|
|
62
|
-
ws.send(
|
|
63
|
-
ws.send(
|
|
58
|
+
ws.send("Message 1"),
|
|
59
|
+
ws.send("Message 2"),
|
|
60
|
+
ws.send("Message 3"),
|
|
61
|
+
ws.send("Message 4"),
|
|
62
|
+
ws.send("Message 5"),
|
|
64
63
|
]);
|
|
65
|
-
console.log(
|
|
64
|
+
console.log("All messages sent in parallel");
|
|
66
65
|
// Wait for echo responses
|
|
67
|
-
await (0, promises_1.setTimeout)(
|
|
68
|
-
node_assert_1.default.ok(messages.length >= 5,
|
|
66
|
+
await (0, promises_1.setTimeout)(200);
|
|
67
|
+
node_assert_1.default.ok(messages.length >= 5, "Should receive at least 5 messages");
|
|
69
68
|
// Verify that all expected messages were received (order may vary)
|
|
70
69
|
const receivedStrings = messages.map((m) => (Buffer.isBuffer(m) ? m.toString() : m));
|
|
71
70
|
for (const expected of expectedMessages) {
|
|
72
|
-
node_assert_1.default.ok(receivedStrings.includes(expected), `Should receive message: "${expected}". Got: ${receivedStrings.join(
|
|
71
|
+
node_assert_1.default.ok(receivedStrings.includes(expected), `Should receive message: "${expected}". Got: ${receivedStrings.join(", ")}`);
|
|
73
72
|
}
|
|
74
|
-
console.log(
|
|
73
|
+
console.log("All messages received correctly:", receivedStrings.join(", "));
|
|
75
74
|
await ws.close();
|
|
76
|
-
// Rate limit protection: wait before next test
|
|
77
|
-
await (0, promises_1.setTimeout)(2000);
|
|
78
75
|
});
|
|
79
|
-
(0, node_test_1.test)(
|
|
76
|
+
(0, node_test_1.test)("should handle multiple WebSocket connections simultaneously", async () => {
|
|
80
77
|
const ws1Messages = [];
|
|
81
78
|
const ws2Messages = [];
|
|
82
79
|
// Create two WebSocket connections in parallel
|
|
83
80
|
const [ws1, ws2] = await Promise.all([
|
|
84
81
|
(0, wreq_js_1.websocket)({
|
|
85
|
-
url:
|
|
86
|
-
browser:
|
|
82
|
+
url: WS_TEST_URL,
|
|
83
|
+
browser: "chrome_142",
|
|
87
84
|
onMessage: (data) => ws1Messages.push(data),
|
|
88
85
|
onClose: () => { },
|
|
89
86
|
onError: () => { },
|
|
90
87
|
}),
|
|
91
88
|
(0, wreq_js_1.websocket)({
|
|
92
|
-
url:
|
|
93
|
-
browser:
|
|
89
|
+
url: WS_TEST_URL,
|
|
90
|
+
browser: "firefox_139",
|
|
94
91
|
onMessage: (data) => ws2Messages.push(data),
|
|
95
92
|
onClose: () => { },
|
|
96
93
|
onError: () => { },
|
|
97
94
|
}),
|
|
98
95
|
]);
|
|
99
|
-
console.log(
|
|
96
|
+
console.log("WebSocket connections created");
|
|
100
97
|
// Send unique messages on both connections in parallel
|
|
101
|
-
await Promise.all([ws1.send(
|
|
98
|
+
await Promise.all([ws1.send("From WS1"), ws2.send("From WS2")]);
|
|
102
99
|
// Wait for responses
|
|
103
|
-
await (0, promises_1.setTimeout)(
|
|
104
|
-
node_assert_1.default.ok(ws1Messages.length > 0,
|
|
105
|
-
node_assert_1.default.ok(ws2Messages.length > 0,
|
|
100
|
+
await (0, promises_1.setTimeout)(200);
|
|
101
|
+
node_assert_1.default.ok(ws1Messages.length > 0, "WS1 should receive messages");
|
|
102
|
+
node_assert_1.default.ok(ws2Messages.length > 0, "WS2 should receive messages");
|
|
106
103
|
// Verify that each connection received the correct message (not mixed up)
|
|
107
104
|
// Note: echo.websocket.org sends a "Request served by..." message first, then echoes
|
|
108
105
|
const ws1Strings = ws1Messages.map((m) => (Buffer.isBuffer(m) ? m.toString() : m));
|
|
109
106
|
const ws2Strings = ws2Messages.map((m) => (Buffer.isBuffer(m) ? m.toString() : m));
|
|
110
|
-
node_assert_1.default.ok(ws1Strings.includes(
|
|
111
|
-
node_assert_1.default.ok(ws2Strings.includes(
|
|
107
|
+
node_assert_1.default.ok(ws1Strings.includes("From WS1"), "WS1 should receive its own message");
|
|
108
|
+
node_assert_1.default.ok(ws2Strings.includes("From WS2"), "WS2 should receive its own message");
|
|
112
109
|
// Verify messages are not mixed up between connections
|
|
113
|
-
node_assert_1.default.ok(!ws1Strings.includes(
|
|
114
|
-
node_assert_1.default.ok(!ws2Strings.includes(
|
|
115
|
-
console.log(
|
|
116
|
-
console.log(
|
|
117
|
-
console.log(
|
|
110
|
+
node_assert_1.default.ok(!ws1Strings.includes("From WS2"), "WS1 should NOT receive WS2 message");
|
|
111
|
+
node_assert_1.default.ok(!ws2Strings.includes("From WS1"), "WS2 should NOT receive WS1 message");
|
|
112
|
+
console.log("Messages correctly isolated between connections:");
|
|
113
|
+
console.log(" WS1:", ws1Strings);
|
|
114
|
+
console.log(" WS2:", ws2Strings);
|
|
118
115
|
// Close both connections
|
|
119
116
|
await Promise.all([ws1.close(), ws2.close()]);
|
|
120
117
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.spec.js","sourceRoot":"","sources":["../../src/test/websocket.spec.ts"],"names":[],"mappings":";;;;;AAAA,yCAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"websocket.spec.js","sourceRoot":"","sources":["../../src/test/websocket.spec.ts"],"names":[],"mappings":";;;;;AAAA,8DAAiC;AACjC,yCAAmD;AACnD,mDAA2D;AAC3D,wCAAuC;AAEvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,0BAA0B,CAAC;AAE1E,IAAA,oBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAA,kBAAM,EAAC,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,MAAM,EAAE,GAAG,MAAM,IAAA,mBAAS,EAAC;YACzB,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAEnC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExB,yBAAyB;QACzB,MAAM,IAAA,qBAAK,EAAC,GAAG,CAAC,CAAC;QACjB,qBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,qCAAqC,CAAC,CAAC;QAEtE,gCAAgC;QAChC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAA,qBAAK,EAAC,GAAG,CAAC,CAAC;QACjB,qBAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAE3F,MAAM,EAAE,GAAG,MAAM,IAAA,mBAAS,EAAC;YACzB,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;YACjB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAEzC,qCAAqC;QACrC,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;YACpB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;YACpB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;YACpB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;YACpB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;SACrB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,0BAA0B;QAC1B,MAAM,IAAA,qBAAK,EAAC,GAAG,CAAC,CAAC;QAEjB,qBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAEtE,mEAAmE;QACnE,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErF,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,qBAAM,CAAC,EAAE,CACP,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAClC,4BAA4B,QAAQ,WAAW,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5E,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,WAAW,GAAwB,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAwB,EAAE,CAAC;QAE5C,+CAA+C;QAC/C,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnC,IAAA,mBAAS,EAAC;gBACR,GAAG,EAAE,WAAW;gBAChB,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3C,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;gBACjB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB,CAAC;YACF,IAAA,mBAAS,EAAC;gBACR,GAAG,EAAE,WAAW;gBAChB,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3C,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;gBACjB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB,CAAC;SACH,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,uDAAuD;QACvD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEhE,qBAAqB;QACrB,MAAM,IAAA,qBAAK,EAAC,GAAG,CAAC,CAAC;QAEjB,qBAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QACjE,qBAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAEjE,0EAA0E;QAC1E,qFAAqF;QACrF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,qBAAM,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,oCAAoC,CAAC,CAAC;QACjF,qBAAM,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAEjF,uDAAuD;QACvD,qBAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAClF,qBAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAElF,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAElC,yBAAyB;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|