@stratal/testing 0.0.13 → 0.0.14
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.mts +1070 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +1689 -0
- package/dist/index.mjs.map +1 -0
- package/dist/mocks/index.d.mts +2 -0
- package/dist/mocks/index.mjs +2 -0
- package/dist/mocks/nodemailer.d.mts +12 -0
- package/dist/mocks/nodemailer.d.mts.map +1 -0
- package/dist/mocks/nodemailer.mjs +7 -0
- package/dist/mocks/nodemailer.mjs.map +1 -0
- package/dist/mocks/zenstack-language.d.mts +48 -0
- package/dist/mocks/zenstack-language.d.mts.map +1 -0
- package/dist/mocks/zenstack-language.mjs +48 -0
- package/dist/mocks/zenstack-language.mjs.map +1 -0
- package/dist/vitest-plugin/index.d.mts +50 -0
- package/dist/vitest-plugin/index.d.mts.map +1 -0
- package/dist/vitest-plugin/index.mjs +86 -0
- package/dist/vitest-plugin/index.mjs.map +1 -0
- package/package.json +21 -19
- package/dist/auth/acting-as.d.ts +0 -21
- package/dist/auth/acting-as.d.ts.map +0 -1
- package/dist/auth/acting-as.js +0 -68
- package/dist/auth/acting-as.js.map +0 -1
- package/dist/auth/index.d.ts +0 -2
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -2
- package/dist/auth/index.js.map +0 -1
- package/dist/core/env/index.d.ts +0 -2
- package/dist/core/env/index.d.ts.map +0 -1
- package/dist/core/env/index.js +0 -2
- package/dist/core/env/index.js.map +0 -1
- package/dist/core/env/test-env.d.ts +0 -9
- package/dist/core/env/test-env.d.ts.map +0 -1
- package/dist/core/env/test-env.js +0 -14
- package/dist/core/env/test-env.js.map +0 -1
- package/dist/core/http/fetch-mock.types.d.ts +0 -48
- package/dist/core/http/fetch-mock.types.d.ts.map +0 -1
- package/dist/core/http/fetch-mock.types.js +0 -2
- package/dist/core/http/fetch-mock.types.js.map +0 -1
- package/dist/core/http/index.d.ts +0 -6
- package/dist/core/http/index.d.ts.map +0 -1
- package/dist/core/http/index.js +0 -5
- package/dist/core/http/index.js.map +0 -1
- package/dist/core/http/mock-fetch.d.ts +0 -88
- package/dist/core/http/mock-fetch.d.ts.map +0 -1
- package/dist/core/http/mock-fetch.js +0 -111
- package/dist/core/http/mock-fetch.js.map +0 -1
- package/dist/core/http/test-http-client.d.ts +0 -54
- package/dist/core/http/test-http-client.d.ts.map +0 -1
- package/dist/core/http/test-http-client.js +0 -75
- package/dist/core/http/test-http-client.js.map +0 -1
- package/dist/core/http/test-http-request.d.ts +0 -60
- package/dist/core/http/test-http-request.d.ts.map +0 -1
- package/dist/core/http/test-http-request.js +0 -106
- package/dist/core/http/test-http-request.js.map +0 -1
- package/dist/core/http/test-response.d.ts +0 -161
- package/dist/core/http/test-response.d.ts.map +0 -1
- package/dist/core/http/test-response.js +0 -309
- package/dist/core/http/test-response.js.map +0 -1
- package/dist/core/index.d.ts +0 -7
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -1
- package/dist/core/override/index.d.ts +0 -2
- package/dist/core/override/index.d.ts.map +0 -1
- package/dist/core/override/index.js +0 -2
- package/dist/core/override/index.js.map +0 -1
- package/dist/core/override/provider-override-builder.d.ts +0 -78
- package/dist/core/override/provider-override-builder.d.ts.map +0 -1
- package/dist/core/override/provider-override-builder.js +0 -94
- package/dist/core/override/provider-override-builder.js.map +0 -1
- package/dist/core/sse/index.d.ts +0 -3
- package/dist/core/sse/index.d.ts.map +0 -1
- package/dist/core/sse/index.js +0 -3
- package/dist/core/sse/index.js.map +0 -1
- package/dist/core/sse/test-sse-connection.d.ts +0 -61
- package/dist/core/sse/test-sse-connection.d.ts.map +0 -1
- package/dist/core/sse/test-sse-connection.js +0 -233
- package/dist/core/sse/test-sse-connection.js.map +0 -1
- package/dist/core/sse/test-sse-request.d.ts +0 -42
- package/dist/core/sse/test-sse-request.d.ts.map +0 -1
- package/dist/core/sse/test-sse-request.js +0 -76
- package/dist/core/sse/test-sse-request.js.map +0 -1
- package/dist/core/test.d.ts +0 -48
- package/dist/core/test.d.ts.map +0 -1
- package/dist/core/test.js +0 -53
- package/dist/core/test.js.map +0 -1
- package/dist/core/testing-module-builder.d.ts +0 -57
- package/dist/core/testing-module-builder.d.ts.map +0 -1
- package/dist/core/testing-module-builder.js +0 -109
- package/dist/core/testing-module-builder.js.map +0 -1
- package/dist/core/testing-module.d.ts +0 -113
- package/dist/core/testing-module.d.ts.map +0 -1
- package/dist/core/testing-module.js +0 -177
- package/dist/core/testing-module.js.map +0 -1
- package/dist/core/ws/index.d.ts +0 -3
- package/dist/core/ws/index.d.ts.map +0 -1
- package/dist/core/ws/index.js +0 -3
- package/dist/core/ws/index.js.map +0 -1
- package/dist/core/ws/test-ws-connection.d.ts +0 -54
- package/dist/core/ws/test-ws-connection.d.ts.map +0 -1
- package/dist/core/ws/test-ws-connection.js +0 -119
- package/dist/core/ws/test-ws-connection.js.map +0 -1
- package/dist/core/ws/test-ws-request.d.ts +0 -43
- package/dist/core/ws/test-ws-request.d.ts.map +0 -1
- package/dist/core/ws/test-ws-request.js +0 -83
- package/dist/core/ws/test-ws-request.js.map +0 -1
- package/dist/errors/index.d.ts +0 -3
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -3
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/setup-error.d.ts +0 -9
- package/dist/errors/setup-error.d.ts.map +0 -1
- package/dist/errors/setup-error.js +0 -11
- package/dist/errors/setup-error.js.map +0 -1
- package/dist/errors/test-error.d.ts +0 -9
- package/dist/errors/test-error.d.ts.map +0 -1
- package/dist/errors/test-error.js +0 -15
- package/dist/errors/test-error.js.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -29
- package/dist/index.js.map +0 -1
- package/dist/mocks/index.d.ts +0 -3
- package/dist/mocks/index.d.ts.map +0 -1
- package/dist/mocks/index.js +0 -3
- package/dist/mocks/index.js.map +0 -1
- package/dist/mocks/nodemailer.d.ts +0 -10
- package/dist/mocks/nodemailer.d.ts.map +0 -1
- package/dist/mocks/nodemailer.js +0 -9
- package/dist/mocks/nodemailer.js.map +0 -1
- package/dist/mocks/zenstack-language.d.ts +0 -46
- package/dist/mocks/zenstack-language.d.ts.map +0 -1
- package/dist/mocks/zenstack-language.js +0 -47
- package/dist/mocks/zenstack-language.js.map +0 -1
- package/dist/storage/fake-storage.service.d.ts +0 -114
- package/dist/storage/fake-storage.service.d.ts.map +0 -1
- package/dist/storage/fake-storage.service.js +0 -233
- package/dist/storage/fake-storage.service.js.map +0 -1
- package/dist/storage/index.d.ts +0 -2
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -2
- package/dist/storage/index.js.map +0 -1
- package/dist/types.d.ts +0 -5
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/vitest-plugin/index.d.ts +0 -2
- package/dist/vitest-plugin/index.d.ts.map +0 -1
- package/dist/vitest-plugin/index.js +0 -2
- package/dist/vitest-plugin/index.js.map +0 -1
- package/dist/vitest-plugin/stratal-test.d.ts +0 -28
- package/dist/vitest-plugin/stratal-test.d.ts.map +0 -1
- package/dist/vitest-plugin/stratal-test.js +0 -47
- package/dist/vitest-plugin/stratal-test.js.map +0 -1
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { expect } from "vitest";
|
|
2
|
-
/**
|
|
3
|
-
* TestWsConnection
|
|
4
|
-
*
|
|
5
|
-
* Live WebSocket connection wrapper with assertion helpers for testing.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const ws = await module.ws('/ws/chat').connect()
|
|
10
|
-
* ws.send('hello')
|
|
11
|
-
* await ws.assertMessage('echo:hello')
|
|
12
|
-
* ws.close()
|
|
13
|
-
* await ws.waitForClose()
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export class TestWsConnection {
|
|
17
|
-
ws;
|
|
18
|
-
messageQueue = [];
|
|
19
|
-
messageWaiters = [];
|
|
20
|
-
closeEvent = null;
|
|
21
|
-
closeWaiters = [];
|
|
22
|
-
constructor(ws) {
|
|
23
|
-
this.ws = ws;
|
|
24
|
-
this.ws.addEventListener('message', (event) => {
|
|
25
|
-
const data = event.data;
|
|
26
|
-
if (this.messageWaiters.length > 0) {
|
|
27
|
-
this.messageWaiters.shift()(data);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
this.messageQueue.push(data);
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
this.ws.addEventListener('close', (event) => {
|
|
34
|
-
this.closeEvent = { code: event.code, reason: event.reason };
|
|
35
|
-
for (const waiter of this.closeWaiters) {
|
|
36
|
-
waiter(this.closeEvent);
|
|
37
|
-
}
|
|
38
|
-
this.closeWaiters = [];
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Send a message through the WebSocket
|
|
43
|
-
*/
|
|
44
|
-
send(data) {
|
|
45
|
-
this.ws.send(data);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Close the WebSocket connection
|
|
49
|
-
*/
|
|
50
|
-
close(code, reason) {
|
|
51
|
-
this.ws.close(code, reason);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Wait for the next message, returning its data
|
|
55
|
-
*/
|
|
56
|
-
async waitForMessage(timeout = 5000) {
|
|
57
|
-
if (this.messageQueue.length > 0) {
|
|
58
|
-
return this.messageQueue.shift();
|
|
59
|
-
}
|
|
60
|
-
return new Promise((resolve, reject) => {
|
|
61
|
-
const waiter = (data) => {
|
|
62
|
-
clearTimeout(timer);
|
|
63
|
-
resolve(data);
|
|
64
|
-
};
|
|
65
|
-
const timer = setTimeout(() => {
|
|
66
|
-
const index = this.messageWaiters.indexOf(waiter);
|
|
67
|
-
if (index !== -1)
|
|
68
|
-
this.messageWaiters.splice(index, 1);
|
|
69
|
-
reject(new Error(`WebSocket: no message received within ${timeout}ms`));
|
|
70
|
-
}, timeout);
|
|
71
|
-
this.messageWaiters.push(waiter);
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Wait for the connection to close
|
|
76
|
-
*/
|
|
77
|
-
async waitForClose(timeout = 5000) {
|
|
78
|
-
if (this.closeEvent) {
|
|
79
|
-
return this.closeEvent;
|
|
80
|
-
}
|
|
81
|
-
return new Promise((resolve, reject) => {
|
|
82
|
-
const waiter = (event) => {
|
|
83
|
-
clearTimeout(timer);
|
|
84
|
-
resolve(event);
|
|
85
|
-
};
|
|
86
|
-
const timer = setTimeout(() => {
|
|
87
|
-
const index = this.closeWaiters.indexOf(waiter);
|
|
88
|
-
if (index !== -1)
|
|
89
|
-
this.closeWaiters.splice(index, 1);
|
|
90
|
-
reject(new Error(`WebSocket: connection did not close within ${timeout}ms`));
|
|
91
|
-
}, timeout);
|
|
92
|
-
this.closeWaiters.push(waiter);
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Assert that the next message equals the expected value
|
|
97
|
-
*/
|
|
98
|
-
async assertMessage(expected, timeout = 5000) {
|
|
99
|
-
const data = await this.waitForMessage(timeout);
|
|
100
|
-
const message = typeof data === 'string' ? data : '[ArrayBuffer]';
|
|
101
|
-
expect(message, `Expected WebSocket message "${expected}", got "${message}"`).toBe(expected);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Assert that the connection closes, optionally with an expected code
|
|
105
|
-
*/
|
|
106
|
-
async assertClosed(expectedCode, timeout = 5000) {
|
|
107
|
-
const event = await this.waitForClose(timeout);
|
|
108
|
-
if (expectedCode !== undefined) {
|
|
109
|
-
expect(event.code, `Expected close code ${expectedCode}, got ${event.code}`).toBe(expectedCode);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Access the raw Cloudflare WebSocket
|
|
114
|
-
*/
|
|
115
|
-
get raw() {
|
|
116
|
-
return this.ws;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=test-ws-connection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-ws-connection.js","sourceRoot":"","sources":["../../../src/core/ws/test-ws-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IAMC;IALZ,YAAY,GAA6B,EAAE,CAAA;IACpD,cAAc,GAA6C,EAAE,CAAA;IAC7D,UAAU,GAA8C,IAAI,CAAA;IAC5D,YAAY,GAA4D,EAAE,CAAA;IAElF,YAA6B,EAAa;QAAb,OAAE,GAAF,EAAE,CAAW;QACzC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAmB,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,IAA4B,CAAA;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAG,CAAC,IAAI,CAAC,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;YACvD,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;YAC5D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACxB,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAuC;QAC3C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAa,EAAE,MAAe;QACnC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAG,CAAA;QAClC,CAAC;QAED,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5D,MAAM,MAAM,GAAG,CAAC,IAA0B,EAAE,EAAE;gBAC7C,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,OAAO,CAAC,IAAI,CAAC,CAAA;YACd,CAAC,CAAA;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACjD,IAAI,KAAK,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBACtD,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,OAAO,IAAI,CAAC,CAAC,CAAA;YACxE,CAAC,EAAE,OAAO,CAAC,CAAA;YAEX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI;QAChC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,UAAU,CAAA;QACvB,CAAC;QAED,OAAO,IAAI,OAAO,CAAqC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1E,MAAM,MAAM,GAAG,CAAC,KAAyC,EAAE,EAAE;gBAC5D,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,OAAO,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAA;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC/C,IAAI,KAAK,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBACpD,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,OAAO,IAAI,CAAC,CAAC,CAAA;YAC7E,CAAC,EAAE,OAAO,CAAC,CAAA;YAEX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAO,GAAG,IAAI;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAA;QACjE,MAAM,CAAC,OAAO,EAAE,+BAA+B,QAAQ,WAAW,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,YAAqB,EAAE,OAAO,GAAG,IAAI;QACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,uBAAuB,YAAY,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAChG,CAAC;IACF,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,EAAE,CAAA;IACf,CAAC;CACD"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type { TestingModule } from '../testing-module';
|
|
2
|
-
import { TestWsConnection } from './test-ws-connection';
|
|
3
|
-
/**
|
|
4
|
-
* TestWsRequest
|
|
5
|
-
*
|
|
6
|
-
* Builder for WebSocket upgrade requests. Follows the TestHttpRequest pattern.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const ws = await module.ws('/ws/chat').connect()
|
|
11
|
-
* ws.send('hello')
|
|
12
|
-
* await ws.assertMessage('echo:hello')
|
|
13
|
-
* ws.close()
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* @example Authenticated WebSocket
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const ws = await module.ws('/ws/chat').actingAs({ id: user.id }).connect()
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export declare class TestWsRequest {
|
|
22
|
-
private readonly path;
|
|
23
|
-
private readonly module;
|
|
24
|
-
private requestHeaders;
|
|
25
|
-
private actingAsUser;
|
|
26
|
-
constructor(path: string, module: TestingModule);
|
|
27
|
-
/**
|
|
28
|
-
* Add custom headers to the upgrade request
|
|
29
|
-
*/
|
|
30
|
-
withHeaders(headers: Record<string, string>): this;
|
|
31
|
-
/**
|
|
32
|
-
* Authenticate the WebSocket connection as a specific user
|
|
33
|
-
*/
|
|
34
|
-
actingAs(user: {
|
|
35
|
-
id: string;
|
|
36
|
-
}): this;
|
|
37
|
-
/**
|
|
38
|
-
* Send the upgrade request and return a live WebSocket connection
|
|
39
|
-
*/
|
|
40
|
-
connect(): Promise<TestWsConnection>;
|
|
41
|
-
private applyAuthentication;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=test-ws-request.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-ws-request.d.ts","sourceRoot":"","sources":["../../../src/core/ws/test-ws-request.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAa;IAKxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALxB,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,YAAY,CAA8B;gBAGhC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa;IAGvC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAOlD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAKpC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;YA8B5B,mBAAmB;CAajC"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { AUTH_SERVICE } from '@stratal/framework/auth';
|
|
2
|
-
import { expect } from 'vitest';
|
|
3
|
-
import { ActingAs } from '../../auth';
|
|
4
|
-
import { TestWsConnection } from './test-ws-connection';
|
|
5
|
-
/**
|
|
6
|
-
* TestWsRequest
|
|
7
|
-
*
|
|
8
|
-
* Builder for WebSocket upgrade requests. Follows the TestHttpRequest pattern.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const ws = await module.ws('/ws/chat').connect()
|
|
13
|
-
* ws.send('hello')
|
|
14
|
-
* await ws.assertMessage('echo:hello')
|
|
15
|
-
* ws.close()
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* @example Authenticated WebSocket
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const ws = await module.ws('/ws/chat').actingAs({ id: user.id }).connect()
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export class TestWsRequest {
|
|
24
|
-
path;
|
|
25
|
-
module;
|
|
26
|
-
requestHeaders = new Headers();
|
|
27
|
-
actingAsUser = null;
|
|
28
|
-
constructor(path, module) {
|
|
29
|
-
this.path = path;
|
|
30
|
-
this.module = module;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Add custom headers to the upgrade request
|
|
34
|
-
*/
|
|
35
|
-
withHeaders(headers) {
|
|
36
|
-
for (const [key, value] of Object.entries(headers)) {
|
|
37
|
-
this.requestHeaders.set(key, value);
|
|
38
|
-
}
|
|
39
|
-
return this;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Authenticate the WebSocket connection as a specific user
|
|
43
|
-
*/
|
|
44
|
-
actingAs(user) {
|
|
45
|
-
this.actingAsUser = user;
|
|
46
|
-
return this;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Send the upgrade request and return a live WebSocket connection
|
|
50
|
-
*/
|
|
51
|
-
async connect() {
|
|
52
|
-
await this.applyAuthentication();
|
|
53
|
-
this.requestHeaders.set('Upgrade', 'websocket');
|
|
54
|
-
this.requestHeaders.set('Connection', 'Upgrade');
|
|
55
|
-
this.requestHeaders.set('Sec-WebSocket-Key', 'dGhlIHNhbXBsZSBub25jZQ==');
|
|
56
|
-
this.requestHeaders.set('Sec-WebSocket-Version', '13');
|
|
57
|
-
const url = new URL(this.path, 'http://localhost');
|
|
58
|
-
const request = new Request(url.toString(), {
|
|
59
|
-
headers: this.requestHeaders,
|
|
60
|
-
});
|
|
61
|
-
const response = await this.module.fetch(request);
|
|
62
|
-
expect(response.status, `Expected status 101 (Switching Protocols), got ${response.status}`).toBe(101);
|
|
63
|
-
const ws = response.webSocket;
|
|
64
|
-
if (!ws) {
|
|
65
|
-
throw new Error('Response did not include a WebSocket connection');
|
|
66
|
-
}
|
|
67
|
-
ws.accept();
|
|
68
|
-
return new TestWsConnection(ws);
|
|
69
|
-
}
|
|
70
|
-
async applyAuthentication() {
|
|
71
|
-
if (!this.actingAsUser)
|
|
72
|
-
return;
|
|
73
|
-
await this.module.runInRequestScope(async () => {
|
|
74
|
-
const authService = this.module.get(AUTH_SERVICE);
|
|
75
|
-
const actingAs = new ActingAs(authService);
|
|
76
|
-
const authHeaders = this.actingAsUser ? await actingAs.createSessionForUser(this.actingAsUser) : new Headers();
|
|
77
|
-
for (const [key, value] of authHeaders.entries()) {
|
|
78
|
-
this.requestHeaders.set(key, value);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=test-ws-request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-ws-request.js","sourceRoot":"","sources":["../../../src/core/ws/test-ws-request.ts"],"names":[],"mappings":"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"}
|
package/dist/errors/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/errors/index.js
DELETED
package/dist/errors/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { TestError } from './test-error';
|
|
2
|
-
/**
|
|
3
|
-
* Error thrown when test setup fails.
|
|
4
|
-
* Examples: schema creation failure, migration failure, application bootstrap failure.
|
|
5
|
-
*/
|
|
6
|
-
export declare class TestSetupError extends TestError {
|
|
7
|
-
constructor(message: string, cause?: Error);
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=setup-error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-error.d.ts","sourceRoot":"","sources":["../../src/errors/setup-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC;;;GAGG;AACH,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG3C"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { TestError } from './test-error';
|
|
2
|
-
/**
|
|
3
|
-
* Error thrown when test setup fails.
|
|
4
|
-
* Examples: schema creation failure, migration failure, application bootstrap failure.
|
|
5
|
-
*/
|
|
6
|
-
export class TestSetupError extends TestError {
|
|
7
|
-
constructor(message, cause) {
|
|
8
|
-
super(`Test setup failed: ${message}`, cause);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=setup-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-error.js","sourceRoot":"","sources":["../../src/errors/setup-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,sBAAsB,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;IAC/C,CAAC;CACF"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base error class for all test framework errors.
|
|
3
|
-
* Extends from Error and allows easy identification via `instanceof`.
|
|
4
|
-
*/
|
|
5
|
-
export declare class TestError extends Error {
|
|
6
|
-
readonly cause?: Error | undefined;
|
|
7
|
-
constructor(message: string, cause?: Error | undefined);
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=test-error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-error.d.ts","sourceRoot":"","sources":["../../src/errors/test-error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,SAAU,SAAQ,KAAK;aAGhB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAQhC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base error class for all test framework errors.
|
|
3
|
-
* Extends from Error and allows easy identification via `instanceof`.
|
|
4
|
-
*/
|
|
5
|
-
export class TestError extends Error {
|
|
6
|
-
cause;
|
|
7
|
-
constructor(message, cause) {
|
|
8
|
-
super(message);
|
|
9
|
-
this.cause = cause;
|
|
10
|
-
this.name = 'TestError';
|
|
11
|
-
// Maintain proper stack trace
|
|
12
|
-
Error.captureStackTrace(this, this.constructor);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=test-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-error.js","sourceRoot":"","sources":["../../src/errors/test-error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGhB;IAFlB,YACE,OAAe,EACC,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAA;QAFE,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;QAEvB,8BAA8B;QAC9B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;CACF"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export { ProviderOverrideBuilder, type ProviderOverrideConfig } from './core/override';
|
|
2
|
-
export { Test } from './core/test';
|
|
3
|
-
export { TestingModule } from './core/testing-module';
|
|
4
|
-
export { TestingModuleBuilder, type TestingModuleConfig } from './core/testing-module-builder';
|
|
5
|
-
export { createMockFetch, MockFetch } from './core/http/mock-fetch';
|
|
6
|
-
export type { MockErrorOptions, MockJsonOptions } from './core/http/fetch-mock.types';
|
|
7
|
-
export { TestHttpClient } from './core/http/test-http-client';
|
|
8
|
-
export { TestHttpRequest } from './core/http/test-http-request';
|
|
9
|
-
export { TestResponse } from './core/http/test-response';
|
|
10
|
-
export { TestWsRequest } from './core/ws/test-ws-request';
|
|
11
|
-
export { TestWsConnection } from './core/ws/test-ws-connection';
|
|
12
|
-
export { TestSseRequest } from './core/sse/test-sse-request';
|
|
13
|
-
export { TestSseConnection } from './core/sse/test-sse-connection';
|
|
14
|
-
export type { TestSseEvent } from './core/sse/test-sse-connection';
|
|
15
|
-
export { http, HttpResponse } from 'msw';
|
|
16
|
-
export { ActingAs } from './auth';
|
|
17
|
-
export { FakeStorageService, type StoredFile } from './storage';
|
|
18
|
-
export { Seeder } from './types';
|
|
19
|
-
export { getTestEnv } from './core/env';
|
|
20
|
-
export { TestError, TestSetupError } from './errors';
|
|
21
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACtF,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAG9F,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACnE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAGlE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAGxC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAGjC,OAAO,EAAE,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// Core Testing
|
|
2
|
-
export { ProviderOverrideBuilder } from './core/override';
|
|
3
|
-
export { Test } from './core/test';
|
|
4
|
-
export { TestingModule } from './core/testing-module';
|
|
5
|
-
export { TestingModuleBuilder } from './core/testing-module-builder';
|
|
6
|
-
// HTTP Testing
|
|
7
|
-
export { createMockFetch, MockFetch } from './core/http/mock-fetch';
|
|
8
|
-
export { TestHttpClient } from './core/http/test-http-client';
|
|
9
|
-
export { TestHttpRequest } from './core/http/test-http-request';
|
|
10
|
-
export { TestResponse } from './core/http/test-response';
|
|
11
|
-
// WebSocket Testing
|
|
12
|
-
export { TestWsRequest } from './core/ws/test-ws-request';
|
|
13
|
-
export { TestWsConnection } from './core/ws/test-ws-connection';
|
|
14
|
-
// SSE Testing
|
|
15
|
-
export { TestSseRequest } from './core/sse/test-sse-request';
|
|
16
|
-
export { TestSseConnection } from './core/sse/test-sse-connection';
|
|
17
|
-
// Re-export MSW utilities for convenience
|
|
18
|
-
export { http, HttpResponse } from 'msw';
|
|
19
|
-
// Auth
|
|
20
|
-
export { ActingAs } from './auth';
|
|
21
|
-
// Storage
|
|
22
|
-
export { FakeStorageService } from './storage';
|
|
23
|
-
// Types
|
|
24
|
-
export { Seeder } from './types';
|
|
25
|
-
// Environment utilities
|
|
26
|
-
export { getTestEnv } from './core/env';
|
|
27
|
-
// Errors
|
|
28
|
-
export { TestError, TestSetupError } from './errors';
|
|
29
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,uBAAuB,EAA+B,MAAM,iBAAiB,CAAA;AACtF,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAA4B,MAAM,+BAA+B,CAAA;AAE9F,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAGlE,0CAA0C;AAC1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAExC,OAAO;AACP,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,UAAU;AACV,OAAO,EAAE,kBAAkB,EAAmB,MAAM,WAAW,CAAA;AAE/D,QAAQ;AACR,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEhC,wBAAwB;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/mocks/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/mocks/index.js
DELETED
package/dist/mocks/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodemailer.d.ts","sourceRoot":"","sources":["../../src/mocks/nodemailer.ts"],"names":[],"mappings":";;;;;AAAA,wBAIC;AAED,eAAO,MAAM,eAAe;;CAE1B,CAAA"}
|
package/dist/mocks/nodemailer.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodemailer.js","sourceRoot":"","sources":["../../src/mocks/nodemailer.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;KACpC,CAAC;CACH,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC;IACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CACpC,CAAC,CAAA"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mock for @zenstackhq/language package
|
|
3
|
-
*
|
|
4
|
-
* The @zenstackhq/language package depends on vscode-languageserver which is
|
|
5
|
-
* incompatible with Cloudflare Workers runtime. These exports are only used
|
|
6
|
-
* for schema generation (CLI functionality), not runtime authentication.
|
|
7
|
-
*
|
|
8
|
-
* This mock provides stub implementations to allow tests to run in vitest-pool-workers.
|
|
9
|
-
*/
|
|
10
|
-
export declare const formatDocument: (content: string) => string;
|
|
11
|
-
export declare const loadDocument: (_path: string) => {
|
|
12
|
-
success: boolean;
|
|
13
|
-
errors: string[];
|
|
14
|
-
};
|
|
15
|
-
export declare class ZModelCodeGenerator {
|
|
16
|
-
generate(_model: unknown): string;
|
|
17
|
-
}
|
|
18
|
-
export declare const isDataModel: (_item: unknown) => boolean;
|
|
19
|
-
export declare const isAttribute: (_item: unknown) => boolean;
|
|
20
|
-
export declare const isAbstractDeclaration: (_item: unknown) => boolean;
|
|
21
|
-
export declare const isExpression: (_item: unknown) => boolean;
|
|
22
|
-
export declare const isLiteralExpr: (_item: unknown) => boolean;
|
|
23
|
-
export declare const isArrayExpr: (_item: unknown) => boolean;
|
|
24
|
-
export declare const isAttributeArg: (_item: unknown) => boolean;
|
|
25
|
-
export declare const isBinaryExpr: (_item: unknown) => boolean;
|
|
26
|
-
export declare const isBooleanLiteral: (_item: unknown) => boolean;
|
|
27
|
-
export declare const isConfigArrayExpr: (_item: unknown) => boolean;
|
|
28
|
-
export declare const isConfigField: (_item: unknown) => boolean;
|
|
29
|
-
export declare const isDataField: (_item: unknown) => boolean;
|
|
30
|
-
export declare const isDataFieldAttribute: (_item: unknown) => boolean;
|
|
31
|
-
export declare const isDataFieldType: (_item: unknown) => boolean;
|
|
32
|
-
export declare const isDataModelAttribute: (_item: unknown) => boolean;
|
|
33
|
-
export declare const hasAttribute: (_node: unknown, _name?: string) => boolean;
|
|
34
|
-
declare const _default: {
|
|
35
|
-
formatDocument: (content: string) => string;
|
|
36
|
-
loadDocument: (_path: string) => {
|
|
37
|
-
success: boolean;
|
|
38
|
-
errors: string[];
|
|
39
|
-
};
|
|
40
|
-
ZModelCodeGenerator: typeof ZModelCodeGenerator;
|
|
41
|
-
isDataModel: (_item: unknown) => boolean;
|
|
42
|
-
isAttribute: (_item: unknown) => boolean;
|
|
43
|
-
hasAttribute: (_node: unknown, _name?: string) => boolean;
|
|
44
|
-
};
|
|
45
|
-
export default _default;
|
|
46
|
-
//# sourceMappingURL=zenstack-language.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zenstack-language.d.ts","sourceRoot":"","sources":["../../src/mocks/zenstack-language.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,WAAY,CAAA;AAE1D,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM;;;CAGxC,CAAA;AAEF,qBAAa,mBAAmB;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;CAGjC;AAGD,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAC7D,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAC7D,eAAO,MAAM,qBAAqB,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AACvE,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAC9D,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAC/D,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAC7D,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAChE,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAC9D,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAClE,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AACnE,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAC/D,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAC7D,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AACtE,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AACjE,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,OAAgB,CAAA;AAGtE,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,EAAE,QAAQ,MAAM,KAAG,OAAgB,CAAA;;8BA/BtC,MAAM;0BAEV,MAAM;;;;;yBAYP,OAAO,KAAG,OAAO;yBACjB,OAAO,KAAG,OAAO;0BAgBhB,OAAO,UAAU,MAAM,KAAG,OAAO;;AAErE,wBAOC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mock for @zenstackhq/language package
|
|
3
|
-
*
|
|
4
|
-
* The @zenstackhq/language package depends on vscode-languageserver which is
|
|
5
|
-
* incompatible with Cloudflare Workers runtime. These exports are only used
|
|
6
|
-
* for schema generation (CLI functionality), not runtime authentication.
|
|
7
|
-
*
|
|
8
|
-
* This mock provides stub implementations to allow tests to run in vitest-pool-workers.
|
|
9
|
-
*/
|
|
10
|
-
// Main exports from @zenstackhq/language
|
|
11
|
-
export const formatDocument = (content) => content;
|
|
12
|
-
export const loadDocument = (_path) => ({
|
|
13
|
-
success: false,
|
|
14
|
-
errors: ['Mock: loadDocument not available in test environment'],
|
|
15
|
-
});
|
|
16
|
-
export class ZModelCodeGenerator {
|
|
17
|
-
generate(_model) {
|
|
18
|
-
return '';
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
// AST exports from @zenstackhq/language/ast
|
|
22
|
-
export const isDataModel = (_item) => false;
|
|
23
|
-
export const isAttribute = (_item) => false;
|
|
24
|
-
export const isAbstractDeclaration = (_item) => false;
|
|
25
|
-
export const isExpression = (_item) => false;
|
|
26
|
-
export const isLiteralExpr = (_item) => false;
|
|
27
|
-
export const isArrayExpr = (_item) => false;
|
|
28
|
-
export const isAttributeArg = (_item) => false;
|
|
29
|
-
export const isBinaryExpr = (_item) => false;
|
|
30
|
-
export const isBooleanLiteral = (_item) => false;
|
|
31
|
-
export const isConfigArrayExpr = (_item) => false;
|
|
32
|
-
export const isConfigField = (_item) => false;
|
|
33
|
-
export const isDataField = (_item) => false;
|
|
34
|
-
export const isDataFieldAttribute = (_item) => false;
|
|
35
|
-
export const isDataFieldType = (_item) => false;
|
|
36
|
-
export const isDataModelAttribute = (_item) => false;
|
|
37
|
-
// Utils exports from @zenstackhq/language/utils
|
|
38
|
-
export const hasAttribute = (_node, _name) => false;
|
|
39
|
-
export default {
|
|
40
|
-
formatDocument,
|
|
41
|
-
loadDocument,
|
|
42
|
-
ZModelCodeGenerator,
|
|
43
|
-
isDataModel,
|
|
44
|
-
isAttribute,
|
|
45
|
-
hasAttribute,
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=zenstack-language.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zenstack-language.js","sourceRoot":"","sources":["../../src/mocks/zenstack-language.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC,sDAAsD,CAAC;CAChE,CAAC,CAAA;AAEF,MAAM,OAAO,mBAAmB;IAC/B,QAAQ,CAAC,MAAe;QACvB,OAAO,EAAE,CAAA;IACV,CAAC;CACD;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AACvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAEtE,gDAAgD;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,KAAc,EAAW,EAAE,CAAC,KAAK,CAAA;AAE9E,eAAe;IACd,cAAc;IACd,YAAY;IACZ,mBAAmB;IACnB,WAAW;IACX,WAAW;IACX,YAAY;CACZ,CAAA"}
|