Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support mocking WebSocket APIs #2011

Open
wants to merge 77 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
a94fe81
test(matchRequestUrl): add ws scheme tests
kettanaito Feb 3, 2024
f1a7f12
chore(ws): draft public api
kettanaito Feb 3, 2024
ae70c43
Merge branch 'main' into feat/ws
kettanaito Feb 6, 2024
d5a9b4c
chore: design "ws.link" api
kettanaito Feb 7, 2024
47ca629
chore: add agnostic "Handler" class
kettanaito Feb 8, 2024
4fe7989
chore: drop non-extendable "Handler"
kettanaito Feb 8, 2024
2f90708
fix: support "WebSocketHandler" in setup apis
kettanaito Feb 8, 2024
ad82a54
feat: export "ws" from core
kettanaito Feb 8, 2024
38f5d27
fix(setupServer): invalid return type
kettanaito Feb 9, 2024
e82d9a7
test(ws): add interception tests
kettanaito Feb 9, 2024
d795e15
chore: update @mswjs/interceptors
kettanaito Feb 14, 2024
a1fb047
fix(ws): opt-out form native event cancellation
kettanaito Feb 14, 2024
2f91ac8
test(ws): add server tests
kettanaito Feb 14, 2024
76ae7a3
Merge branch 'main' into feat/ws
kettanaito Feb 14, 2024
292104c
fix(ws): stale ".currentHandlers()" ref
kettanaito Feb 14, 2024
decffc0
test(ws): add runtime handler tests
kettanaito Feb 15, 2024
245f55f
test(ws): add server event patching tests
kettanaito Feb 15, 2024
2e7863f
chore: update @mswjs/interceptors
kettanaito Feb 15, 2024
5c72475
test(ws): add server error forwarding test
kettanaito Feb 15, 2024
317a3db
fix(setupWorker): add websocket event handling
kettanaito Feb 16, 2024
0a389e7
feat(ws): add "broadcast" and "broadcastExcept" apis
kettanaito Feb 16, 2024
073fe99
chore: update @mswjs/interceptors
kettanaito Feb 18, 2024
654c91d
feat: implement "clients" and "WebSocketClientManager"
kettanaito Feb 18, 2024
ec0154f
chore(WebSocketClientManager): annotate channel messages
kettanaito Feb 25, 2024
e22174f
chore: rename file to "webSocketClientManager"
kettanaito Feb 25, 2024
54c5baf
test(WebSocketClientManager): add unit tests
kettanaito Feb 27, 2024
8f1071b
test(ws): add unit tests
kettanaito Feb 27, 2024
b070b34
chore: upgrade @mswjs/interceptors to 0.26.6
kettanaito Feb 27, 2024
8f07015
chore: fix "singleThread" vitest option
kettanaito Feb 28, 2024
7fed973
chore: tidying up
kettanaito Feb 28, 2024
9c6eeba
fix: apply interceptor in listen/start
kettanaito Feb 29, 2024
082610a
fix: updates interceptors to ditch revocable proxy
kettanaito Feb 29, 2024
c5f6e52
chore: remove "tsconfigPaths" from vitest.config.ts
kettanaito Feb 29, 2024
5306564
Merge branch 'main' into feat/ws
kettanaito Feb 29, 2024
9750c3b
chore: forcefully exit in node-esm tests
kettanaito Feb 29, 2024
0329b52
Merge branch 'main' into feat/ws
kettanaito Mar 12, 2024
1bb42ae
fix(WebSocketClientManager): post URL string, cannot clone URL instances
kettanaito Mar 12, 2024
69f1390
test: add client interception browser tests
kettanaito Mar 12, 2024
f1f9f73
chore: update @mswjs/interceptors to 0.26.8
kettanaito Mar 12, 2024
3b5fa3d
chore(WebSocketServer): use ipv4 addresses for "path-to-regexp" matching
kettanaito Mar 12, 2024
01ccef7
test: call socket instance "socket" in tests
kettanaito Mar 12, 2024
7daef9e
test: add server websocket tests
kettanaito Mar 12, 2024
7ca1306
test(WebSocketClientManager): adjust tests for "url" type change
kettanaito Mar 12, 2024
082d628
test: assert on ArrayBuffer instead of Blob
kettanaito Mar 13, 2024
a0e0db1
test: add server.connect() browser tests
kettanaito Mar 13, 2024
38ea842
test: add no error on non-existing connect browser test
kettanaito Mar 13, 2024
8ec2183
test: add ws.use() browser tests
kettanaito Mar 13, 2024
47aa473
test: fix leftout test
kettanaito Mar 13, 2024
09b4087
chore(release): v2.3.0-ws.rc-1
kettanaito Mar 13, 2024
372f183
fix: export "WebSocketHandler" and "WebSocketHandlerEventMap"
kettanaito Mar 14, 2024
c7b5c60
Merge branch 'main' into feat/ws
kettanaito Mar 17, 2024
b04859c
fix: marks "WebSocketHandlerEventMap" as type export
kettanaito Mar 17, 2024
3e8a345
chore: update @mswjs/interceptors to 0.26.11 (server.close)
kettanaito Mar 24, 2024
7a93c95
test(setupServer): ws apply test
kettanaito Mar 24, 2024
04ae9e9
test(setupWorker): ws apply test
kettanaito Mar 24, 2024
59a648b
test: fix typo in "ws.intercept.client.browser.test.ts"
kettanaito Mar 24, 2024
32dacec
test: rename test for consistency
kettanaito Mar 24, 2024
180205d
fix(getTimestamp): support milliseconds
kettanaito Mar 26, 2024
84ad998
Merge branch 'main' into feat/ws
kettanaito Mar 27, 2024
64b6a82
test(ws): assert WebSocket patch without event handlers
kettanaito Mar 29, 2024
fc8b67d
feat(ws): add logging to WebSocket connections (#2112)
kettanaito Mar 30, 2024
0776e73
chore(release): v2.3.0-ws.rc-2
kettanaito Apr 1, 2024
c6450d9
chore: move "handleWebSocketEvent" to "ws"
kettanaito Apr 2, 2024
b29ceea
fix: export "WebSocketLink" type
kettanaito Apr 2, 2024
2ace289
chore: move "ws" to core root
kettanaito Apr 2, 2024
bfd9130
Merge branch 'main' into feat/ws
kettanaito Apr 2, 2024
718cf0e
chore(release): v2.3.0-ws.rc-3
kettanaito Apr 2, 2024
1ffaed9
fix: use pretty colors for logs
kettanaito Apr 2, 2024
46ffbc4
test(ws): fix wrong assertion message
kettanaito Apr 6, 2024
dddd4fb
feat(ws): enable client-to-server forwarding by default
kettanaito Apr 7, 2024
7d2a971
chore(release): v2.3.0-ws.rc-4
kettanaito Apr 9, 2024
f6a8723
fix: update @mswjs/interceptors to 0.27.1
kettanaito Apr 9, 2024
74215a3
chore(release): v2.3.0-ws.rc-5
kettanaito Apr 9, 2024
ef0ebe3
fix(WebSocketClientManager): use localStorage for clients persistence…
kettanaito Apr 12, 2024
25da0da
chore(release): v2.3.0-ws.rc-6
kettanaito Apr 12, 2024
026f24f
fix: purge persisted clients on page reload (#2133)
kettanaito Apr 15, 2024
a79d50a
Merge branch 'main' into feat/ws
kettanaito May 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Expand Up @@ -16,5 +16,5 @@ msw-*.tgz
# Smoke test temporary files.
/package.json.copy
/examples

tsconfig.vitest-temp.json
/test/modules/node/node-esm-tests
tsconfig.vitest-temp.json
7 changes: 5 additions & 2 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "msw",
"version": "2.3.0",
"version": "2.3.0-ws.rc-6",
"description": "Seamless REST/GraphQL API mocking library for browser and Node.js.",
"main": "./lib/core/index.js",
"module": "./lib/core/index.mjs",
Expand Down Expand Up @@ -79,7 +79,7 @@
"test:node": "vitest run --config=./test/node/vitest.config.ts",
"test:native": "vitest --config=./test/native/vitest.config.ts",
"test:browser": "playwright test -c ./test/browser/playwright.config.ts",
"test:modules:node": "vitest --config=./test/modules/node/vitest.config.ts",
"test:modules:node": "vitest run --config=./test/modules/node/vitest.config.ts",
"test:modules:browser": "playwright test -c ./test/modules/browser/playwright.config.ts",
"test:ts": "vitest --typecheck --config=./test/typings/vitest.config.ts",
"prepare": "pnpm simple-git-hooks init",
Expand Down Expand Up @@ -154,6 +154,7 @@
"devDependencies": {
"@commitlint/cli": "^18.4.4",
"@commitlint/config-conventional": "^18.4.4",
"@fastify/websocket": "^8.3.1",
"@open-draft/test-server": "^0.4.2",
"@ossjs/release": "^0.8.1",
"@playwright/test": "^1.40.1",
Expand All @@ -163,6 +164,7 @@
"@types/glob": "^8.1.0",
"@types/json-bigint": "^1.0.4",
"@types/node": "18.x",
"@types/ws": "^8.5.10",
"@typescript-eslint/eslint-plugin": "^7.2.0",
"@typescript-eslint/parser": "^7.2.0",
"@web/dev-server": "^0.1.38",
Expand All @@ -178,6 +180,7 @@
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"express": "^4.18.2",
"fastify": "^4.26.0",
"fs-extra": "^11.2.0",
"fs-teardown": "^0.3.0",
"glob": "^10.3.10",
Expand Down