vitest-websocket-mock 0.2.1 → 0.2.2

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/dist/index.d.ts CHANGED
@@ -1,5 +1,27 @@
1
- import { RawMatcherFn } from '@vitest/expect';
2
1
  import { Server, Client, CloseOptions, ServerOptions } from 'mock-socket';
2
+ import { RawMatcherFn } from '@vitest/expect';
3
+
4
+ /**
5
+ * @copyright Romain Bertrand 2018
6
+ * @copyright Akiomi Kamakura 2023
7
+ */
8
+
9
+ declare function deriveToHaveReceivedMessage(name: string, fn: RawMatcherFn): RawMatcherFn;
10
+
11
+ /**
12
+ * @copyright Romain Bertrand 2018
13
+ * @copyright Akiomi Kamakura 2023
14
+ */
15
+
16
+ declare function deriveToReceiveMessage(name: string, fn: RawMatcherFn): RawMatcherFn;
17
+
18
+ /**
19
+ * @copyright Romain Bertrand 2018
20
+ * @copyright Akiomi Kamakura 2023
21
+ */
22
+ interface ReceiveMessageOptions {
23
+ timeout?: number;
24
+ }
3
25
 
4
26
  /**
5
27
  * @copyright Romain Bertrand 2018
@@ -46,20 +68,21 @@ declare class WS {
46
68
  * @copyright Akiomi Kamakura 2023
47
69
  */
48
70
 
49
- type ReceiveMessageOptions = {
50
- timeout?: number;
51
- };
52
71
  interface CustomMatchers<R = unknown> {
53
72
  toReceiveMessage<TMessage = object>(message: DeserializedMessage<TMessage>, options?: ReceiveMessageOptions): Promise<R>;
54
73
  toHaveReceivedMessages<TMessage = object>(messages: Array<DeserializedMessage<TMessage>>): R;
55
74
  }
75
+
76
+ /**
77
+ * @copyright Romain Bertrand 2018
78
+ * @copyright Akiomi Kamakura 2023
79
+ */
80
+
56
81
  declare module 'vitest' {
57
82
  interface Assertion<T = any> extends CustomMatchers<T> {
58
83
  }
59
84
  interface AsymmetricMatchersContaining extends CustomMatchers {
60
85
  }
61
86
  }
62
- declare const deriveToReceiveMessage: (name: string, fn: RawMatcherFn) => RawMatcherFn;
63
- declare const deriveToHaveReceivedMessage: (name: string, fn: RawMatcherFn) => RawMatcherFn;
64
87
 
65
- export { WS, WS as default, deriveToHaveReceivedMessage, deriveToReceiveMessage };
88
+ export { ReceiveMessageOptions, WS, WS as default, deriveToHaveReceivedMessage, deriveToReceiveMessage };
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ var __defProp = Object.defineProperty;
1
2
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
3
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
4
  }) : x)(function(x) {
@@ -5,11 +6,21 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
5
6
  return require.apply(this, arguments);
6
7
  throw new Error('Dynamic require of "' + x + '" is not supported');
7
8
  });
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
8
13
 
9
- // src/matchers.ts
10
- import { diff } from "jest-diff";
14
+ // src/extend-expect.ts
11
15
  import { expect } from "vitest";
12
16
 
17
+ // src/matchers/index.ts
18
+ var matchers_exports = {};
19
+ __export(matchers_exports, {
20
+ toHaveReceivedMessages: () => toHaveReceivedMessages_default,
21
+ toReceiveMessage: () => toReceiveMessage_default
22
+ });
23
+
13
24
  // src/websocket.ts
14
25
  import { Server } from "mock-socket";
15
26
 
@@ -135,17 +146,34 @@ var WS = class _WS {
135
146
  }
136
147
  };
137
148
 
138
- // src/matchers.ts
139
- var WAIT_DELAY = 1e3;
140
- var TIMEOUT = Symbol("timeout");
141
- var makeInvalidWsMessage = function makeInvalidWsMessage2(ws, matcher) {
149
+ // src/derivers/makeInvalidWsMessage.ts
150
+ function makeInvalidWsMessage(ws, matcher) {
142
151
  return this.utils.matcherHint(this.isNot ? `.not.${matcher}` : `.${matcher}`, "WS", "expected") + `
143
152
 
144
153
  Expected the websocket object to be a valid WS mock.
145
154
  Received: ${typeof ws}
146
155
  ${this.utils.printReceived(ws)}`;
147
- };
148
- var deriveToReceiveMessage = (name, fn) => {
156
+ }
157
+
158
+ // src/derivers/deriveToHaveReceivedMessage.ts
159
+ function deriveToHaveReceivedMessage(name, fn) {
160
+ return function(ws, expected, options) {
161
+ const isWS = ws instanceof WS;
162
+ if (!isWS) {
163
+ return {
164
+ pass: this.isNot,
165
+ // always fail
166
+ message: makeInvalidWsMessage.bind(this, ws, name)
167
+ };
168
+ }
169
+ return fn.call(this, ws.messages, expected, options);
170
+ };
171
+ }
172
+
173
+ // src/derivers/deriveToReceiveMessage.ts
174
+ var WAIT_DELAY = 1e3;
175
+ var TIMEOUT = Symbol("timeout");
176
+ function deriveToReceiveMessage(name, fn) {
149
177
  return async function(ws, expected, options) {
150
178
  const isWS = ws instanceof WS;
151
179
  if (!isWS) {
@@ -171,52 +199,12 @@ but it didn't receive anything in ${waitDelay}ms.`
171
199
  };
172
200
  } else {
173
201
  const received = messageOrTimeout;
174
- const result = await Promise.resolve(fn.call(this, received, expected, options));
175
- return { name, ...result };
202
+ return Promise.resolve(fn.call(this, received, expected, options));
176
203
  }
177
204
  };
178
- };
179
- var toReceiveMessage = deriveToReceiveMessage("toReceiveMessage", function(received, expected) {
180
- const pass = this.equals(received, expected);
181
- const message = pass ? () => this.utils.matcherHint(".not.toReceiveMessage", "WS", "expected") + `
182
-
183
- Expected the next received message to not equal:
184
- ${this.utils.printExpected(expected)}
185
- Received:
186
- ${this.utils.printReceived(received)}` : () => {
187
- const diffString = diff(expected, received, { expand: this.expand });
188
- return this.utils.matcherHint(".toReceiveMessage", "WS", "expected") + `
189
-
190
- Expected the next received message to equal:
191
- ${this.utils.printExpected(expected)}
192
- Received:
193
- ${this.utils.printReceived(received)}
194
-
195
- Difference:
205
+ }
196
206
 
197
- ${diffString}`;
198
- };
199
- return {
200
- actual: received,
201
- expected,
202
- message,
203
- pass
204
- };
205
- });
206
- var deriveToHaveReceivedMessage = (name, fn) => {
207
- return function(ws, expected, options) {
208
- const isWS = ws instanceof WS;
209
- if (!isWS) {
210
- return {
211
- pass: this.isNot,
212
- // always fail
213
- message: makeInvalidWsMessage.bind(this, ws, name)
214
- };
215
- }
216
- const result = fn.call(this, ws.messages, expected, options);
217
- return { name, ...result };
218
- };
219
- };
207
+ // src/matchers/toHaveReceivedMessages.ts
220
208
  var toHaveReceivedMessages = deriveToHaveReceivedMessage(
221
209
  "toHaveReceivedMessages",
222
210
  function(received, expected) {
@@ -250,10 +238,41 @@ Received:
250
238
  };
251
239
  }
252
240
  );
253
- expect.extend({
254
- toReceiveMessage,
255
- toHaveReceivedMessages
241
+ var toHaveReceivedMessages_default = toHaveReceivedMessages;
242
+
243
+ // src/matchers/toReceiveMessage.ts
244
+ import { diff } from "jest-diff";
245
+ var toReceiveMessage = deriveToReceiveMessage("toReceiveMessage", function(received, expected) {
246
+ const pass = this.equals(received, expected);
247
+ const message = pass ? () => this.utils.matcherHint(".not.toReceiveMessage", "WS", "expected") + `
248
+
249
+ Expected the next received message to not equal:
250
+ ${this.utils.printExpected(expected)}
251
+ Received:
252
+ ${this.utils.printReceived(received)}` : () => {
253
+ const diffString = diff(expected, received, { expand: this.expand });
254
+ return this.utils.matcherHint(".toReceiveMessage", "WS", "expected") + `
255
+
256
+ Expected the next received message to equal:
257
+ ${this.utils.printExpected(expected)}
258
+ Received:
259
+ ${this.utils.printReceived(received)}
260
+
261
+ Difference:
262
+
263
+ ${diffString}`;
264
+ };
265
+ return {
266
+ actual: received,
267
+ expected,
268
+ message,
269
+ pass
270
+ };
256
271
  });
272
+ var toReceiveMessage_default = toReceiveMessage;
273
+
274
+ // src/extend-expect.ts
275
+ expect.extend(matchers_exports);
257
276
  export {
258
277
  WS,
259
278
  WS as default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vitest-websocket-mock",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Mock websockets and assert complex websocket interactions with Vitest",
5
5
  "type": "module",
6
6
  "repository": {
@@ -51,7 +51,7 @@
51
51
  "vitest": "^0.32.0"
52
52
  },
53
53
  "peerDependencies": {
54
- "vitest": "^0.32.0"
54
+ "vitest": ">=0.31.0 <1"
55
55
  },
56
56
  "dependencies": {
57
57
  "jest-diff": "^29.2.0",