@stratal/testing 0.0.12 → 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.
Files changed (131) hide show
  1. package/dist/index.d.mts +1070 -0
  2. package/dist/index.d.mts.map +1 -0
  3. package/dist/index.mjs +1689 -0
  4. package/dist/index.mjs.map +1 -0
  5. package/dist/mocks/index.d.mts +2 -0
  6. package/dist/mocks/index.mjs +2 -0
  7. package/dist/mocks/nodemailer.d.mts +12 -0
  8. package/dist/mocks/nodemailer.d.mts.map +1 -0
  9. package/dist/mocks/nodemailer.mjs +7 -0
  10. package/dist/mocks/nodemailer.mjs.map +1 -0
  11. package/dist/mocks/zenstack-language.d.mts +48 -0
  12. package/dist/mocks/zenstack-language.d.mts.map +1 -0
  13. package/dist/mocks/zenstack-language.mjs +48 -0
  14. package/dist/mocks/zenstack-language.mjs.map +1 -0
  15. package/dist/vitest-plugin/index.d.mts +50 -0
  16. package/dist/vitest-plugin/index.d.mts.map +1 -0
  17. package/dist/vitest-plugin/index.mjs +86 -0
  18. package/dist/vitest-plugin/index.mjs.map +1 -0
  19. package/package.json +21 -19
  20. package/dist/auth/acting-as.d.ts +0 -21
  21. package/dist/auth/acting-as.d.ts.map +0 -1
  22. package/dist/auth/acting-as.js +0 -68
  23. package/dist/auth/acting-as.js.map +0 -1
  24. package/dist/auth/index.d.ts +0 -2
  25. package/dist/auth/index.d.ts.map +0 -1
  26. package/dist/auth/index.js +0 -2
  27. package/dist/auth/index.js.map +0 -1
  28. package/dist/core/env/index.d.ts +0 -2
  29. package/dist/core/env/index.d.ts.map +0 -1
  30. package/dist/core/env/index.js +0 -2
  31. package/dist/core/env/index.js.map +0 -1
  32. package/dist/core/env/test-env.d.ts +0 -9
  33. package/dist/core/env/test-env.d.ts.map +0 -1
  34. package/dist/core/env/test-env.js +0 -14
  35. package/dist/core/env/test-env.js.map +0 -1
  36. package/dist/core/http/fetch-mock.types.d.ts +0 -48
  37. package/dist/core/http/fetch-mock.types.d.ts.map +0 -1
  38. package/dist/core/http/fetch-mock.types.js +0 -2
  39. package/dist/core/http/fetch-mock.types.js.map +0 -1
  40. package/dist/core/http/index.d.ts +0 -6
  41. package/dist/core/http/index.d.ts.map +0 -1
  42. package/dist/core/http/index.js +0 -5
  43. package/dist/core/http/index.js.map +0 -1
  44. package/dist/core/http/mock-fetch.d.ts +0 -88
  45. package/dist/core/http/mock-fetch.d.ts.map +0 -1
  46. package/dist/core/http/mock-fetch.js +0 -111
  47. package/dist/core/http/mock-fetch.js.map +0 -1
  48. package/dist/core/http/test-http-client.d.ts +0 -54
  49. package/dist/core/http/test-http-client.d.ts.map +0 -1
  50. package/dist/core/http/test-http-client.js +0 -75
  51. package/dist/core/http/test-http-client.js.map +0 -1
  52. package/dist/core/http/test-http-request.d.ts +0 -60
  53. package/dist/core/http/test-http-request.d.ts.map +0 -1
  54. package/dist/core/http/test-http-request.js +0 -106
  55. package/dist/core/http/test-http-request.js.map +0 -1
  56. package/dist/core/http/test-response.d.ts +0 -161
  57. package/dist/core/http/test-response.d.ts.map +0 -1
  58. package/dist/core/http/test-response.js +0 -309
  59. package/dist/core/http/test-response.js.map +0 -1
  60. package/dist/core/index.d.ts +0 -7
  61. package/dist/core/index.d.ts.map +0 -1
  62. package/dist/core/index.js +0 -7
  63. package/dist/core/index.js.map +0 -1
  64. package/dist/core/override/index.d.ts +0 -2
  65. package/dist/core/override/index.d.ts.map +0 -1
  66. package/dist/core/override/index.js +0 -2
  67. package/dist/core/override/index.js.map +0 -1
  68. package/dist/core/override/provider-override-builder.d.ts +0 -78
  69. package/dist/core/override/provider-override-builder.d.ts.map +0 -1
  70. package/dist/core/override/provider-override-builder.js +0 -94
  71. package/dist/core/override/provider-override-builder.js.map +0 -1
  72. package/dist/core/test.d.ts +0 -48
  73. package/dist/core/test.d.ts.map +0 -1
  74. package/dist/core/test.js +0 -53
  75. package/dist/core/test.js.map +0 -1
  76. package/dist/core/testing-module-builder.d.ts +0 -57
  77. package/dist/core/testing-module-builder.d.ts.map +0 -1
  78. package/dist/core/testing-module-builder.js +0 -109
  79. package/dist/core/testing-module-builder.js.map +0 -1
  80. package/dist/core/testing-module.d.ts +0 -103
  81. package/dist/core/testing-module.d.ts.map +0 -1
  82. package/dist/core/testing-module.js +0 -165
  83. package/dist/core/testing-module.js.map +0 -1
  84. package/dist/errors/index.d.ts +0 -3
  85. package/dist/errors/index.d.ts.map +0 -1
  86. package/dist/errors/index.js +0 -3
  87. package/dist/errors/index.js.map +0 -1
  88. package/dist/errors/setup-error.d.ts +0 -9
  89. package/dist/errors/setup-error.d.ts.map +0 -1
  90. package/dist/errors/setup-error.js +0 -11
  91. package/dist/errors/setup-error.js.map +0 -1
  92. package/dist/errors/test-error.d.ts +0 -9
  93. package/dist/errors/test-error.d.ts.map +0 -1
  94. package/dist/errors/test-error.js +0 -15
  95. package/dist/errors/test-error.js.map +0 -1
  96. package/dist/index.d.ts +0 -16
  97. package/dist/index.d.ts.map +0 -1
  98. package/dist/index.js +0 -23
  99. package/dist/index.js.map +0 -1
  100. package/dist/mocks/index.d.ts +0 -3
  101. package/dist/mocks/index.d.ts.map +0 -1
  102. package/dist/mocks/index.js +0 -3
  103. package/dist/mocks/index.js.map +0 -1
  104. package/dist/mocks/nodemailer.d.ts +0 -10
  105. package/dist/mocks/nodemailer.d.ts.map +0 -1
  106. package/dist/mocks/nodemailer.js +0 -9
  107. package/dist/mocks/nodemailer.js.map +0 -1
  108. package/dist/mocks/zenstack-language.d.ts +0 -46
  109. package/dist/mocks/zenstack-language.d.ts.map +0 -1
  110. package/dist/mocks/zenstack-language.js +0 -47
  111. package/dist/mocks/zenstack-language.js.map +0 -1
  112. package/dist/storage/fake-storage.service.d.ts +0 -114
  113. package/dist/storage/fake-storage.service.d.ts.map +0 -1
  114. package/dist/storage/fake-storage.service.js +0 -233
  115. package/dist/storage/fake-storage.service.js.map +0 -1
  116. package/dist/storage/index.d.ts +0 -2
  117. package/dist/storage/index.d.ts.map +0 -1
  118. package/dist/storage/index.js +0 -2
  119. package/dist/storage/index.js.map +0 -1
  120. package/dist/types.d.ts +0 -5
  121. package/dist/types.d.ts.map +0 -1
  122. package/dist/types.js +0 -3
  123. package/dist/types.js.map +0 -1
  124. package/dist/vitest-plugin/index.d.ts +0 -2
  125. package/dist/vitest-plugin/index.d.ts.map +0 -1
  126. package/dist/vitest-plugin/index.js +0 -2
  127. package/dist/vitest-plugin/index.js.map +0 -1
  128. package/dist/vitest-plugin/stratal-test.d.ts +0 -28
  129. package/dist/vitest-plugin/stratal-test.d.ts.map +0 -1
  130. package/dist/vitest-plugin/stratal-test.js +0 -47
  131. package/dist/vitest-plugin/stratal-test.js.map +0 -1
@@ -1,165 +0,0 @@
1
- import { connectionSymbol } from '@stratal/framework/database';
2
- import { DI_TOKENS } from 'stratal/di';
3
- import { STORAGE_TOKENS } from 'stratal/storage';
4
- import { TestHttpClient } from './http/test-http-client';
5
- /**
6
- * TestingModule
7
- *
8
- * Provides access to the test application, container, HTTP client, and utilities.
9
- *
10
- * @example
11
- * ```typescript
12
- * const module = await Test.createTestingModule({
13
- * modules: [RegistrationModule],
14
- * }).compile()
15
- *
16
- * // Make HTTP requests
17
- * const response = await module.http
18
- * .post('/api/v1/register')
19
- * .withBody({ ... })
20
- * .send()
21
- *
22
- * // Access services
23
- * const service = module.get(REGISTRATION_TOKENS.RegistrationService)
24
- *
25
- * // Database utilities
26
- * await module.truncateDb()
27
- * await module.seed(new UserSeeder())
28
- * await module.assertDatabaseHas('user', { email: 'test@example.com' })
29
- *
30
- * // Cleanup
31
- * await module.close()
32
- * ```
33
- */
34
- export class TestingModule {
35
- app;
36
- env;
37
- ctx;
38
- _http = null;
39
- _requestContainer;
40
- constructor(app, env, ctx) {
41
- this.app = app;
42
- this.env = env;
43
- this.ctx = ctx;
44
- const mockContext = this.app.createMockRouterContext();
45
- this._requestContainer = this.app.container.createRequestScope(mockContext);
46
- }
47
- /**
48
- * Resolve a service from the container
49
- */
50
- get(token) {
51
- return this._requestContainer.resolve(token);
52
- }
53
- /**
54
- * Get HTTP test client for making requests
55
- */
56
- get http() {
57
- this._http ??= new TestHttpClient(this);
58
- return this._http;
59
- }
60
- /**
61
- * Get fake storage service for assertions
62
- */
63
- get storage() {
64
- return this.get(STORAGE_TOKENS.StorageService);
65
- }
66
- /**
67
- * Get Application instance
68
- */
69
- get application() {
70
- return this.app;
71
- }
72
- /**
73
- * Get DI Container (request-scoped)
74
- */
75
- get container() {
76
- return this._requestContainer;
77
- }
78
- /**
79
- * Execute an HTTP request through HonoApp
80
- */
81
- async fetch(request) {
82
- return this.app.hono.fetch(request, this.env, this.ctx);
83
- }
84
- /**
85
- * Run callback in request scope (for DB operations, service access)
86
- */
87
- async runInRequestScope(callback) {
88
- const mockContext = this.app.createMockRouterContext();
89
- return this.app.container.runInRequestScope(mockContext, callback);
90
- }
91
- getDb(name) {
92
- const token = name ? connectionSymbol(name) : DI_TOKENS.Database;
93
- return this._requestContainer.resolve(token);
94
- }
95
- /**
96
- * Truncate all non-prisma tables in the database
97
- */
98
- async truncateDb(name) {
99
- const db = this.getDb(name);
100
- const tables = await db.$queryRaw `
101
- SELECT tablename::text as tablename FROM pg_tables
102
- WHERE schemaname = current_schema()
103
- AND tablename NOT LIKE '_prisma%'
104
- `;
105
- if (tables.length === 0)
106
- return;
107
- const tableList = tables.map((t) => `"${t.tablename}"`).join(', ');
108
- await db.$executeRawUnsafe(`TRUNCATE ${tableList} RESTART IDENTITY CASCADE`);
109
- }
110
- async seed(...args) {
111
- let name;
112
- let seeders;
113
- if (typeof args[0] === 'string') {
114
- name = args[0];
115
- seeders = args.slice(1);
116
- }
117
- else {
118
- seeders = args;
119
- }
120
- const db = this.getDb(name);
121
- await db.$transaction(async (tx) => {
122
- for (const seeder of seeders) {
123
- await seeder.run(tx);
124
- }
125
- });
126
- }
127
- /**
128
- * Assert that a record exists in the database
129
- */
130
- async assertDatabaseHas(table, data, name) {
131
- const { expect } = await import('vitest');
132
- const db = this.getDb(name);
133
- const model = db[table];
134
- const result = await model.findFirst({ where: data });
135
- expect(result, `Expected ${table} with ${JSON.stringify(data)}`).not.toBeNull();
136
- }
137
- /**
138
- * Assert that a record does not exist in the database
139
- */
140
- async assertDatabaseMissing(table, data, name) {
141
- const { expect } = await import('vitest');
142
- const db = this.getDb(name);
143
- const model = db[table];
144
- const result = await model.findFirst({ where: data });
145
- expect(result, `Expected ${table} NOT to have ${JSON.stringify(data)}`).toBeNull();
146
- }
147
- /**
148
- * Assert the number of records in a table
149
- */
150
- async assertDatabaseCount(table, expected, name) {
151
- const { expect } = await import('vitest');
152
- const db = this.getDb(name);
153
- const model = db[table];
154
- const actual = await model.count();
155
- expect(actual, `Expected ${table} count ${expected}, got ${actual}`).toBe(expected);
156
- }
157
- /**
158
- * Cleanup - call in afterAll
159
- */
160
- async close() {
161
- await this._requestContainer.dispose();
162
- await this.app.shutdown();
163
- }
164
- }
165
- //# sourceMappingURL=testing-module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing-module.js","sourceRoot":"","sources":["../../src/core/testing-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAkB,MAAM,YAAY,CAAA;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,aAAa;IAKL;IACA;IACA;IANX,KAAK,GAA0B,IAAI,CAAA;IAC1B,iBAAiB,CAAW;IAE7C,YACmB,GAAgB,EAChB,GAAe,EACf,GAAqB;QAFrB,QAAG,GAAH,GAAG,CAAa;QAChB,QAAG,GAAH,GAAG,CAAY;QACf,QAAG,GAAH,GAAG,CAAkB;QAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAA;QACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAC7E,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,KAAwB;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,IAAI,CAAC,KAAK,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAqB,cAAc,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAI,QAAkD;QAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAA;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACpE,CAAC;IAOD,KAAK,CAAC,IAAa;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAA;QAChE,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAAqB;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAAyB;;;;KAIzD,CAAA;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClE,MAAM,EAAE,CAAC,iBAAiB,CAAC,YAAY,SAAS,2BAA2B,CAAC,CAAA;IAC9E,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAe;QAC3B,IAAI,IAAwB,CAAA;QAC5B,IAAI,OAAiB,CAAA;QAErB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACd,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAa,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAgB,CAAA;QAC5B,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,CAAA;QAC5B,MAAM,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,EAAqB,CAAC,CAAA;YACzC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAa,EAAE,IAA6B,EAAE,IAAqB;QACzF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAI,EAAyC,CAAC,KAAK,CAAuD,CAAA;QACrH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,EAAE,YAAY,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IACjF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,KAAa,EAAE,IAA6B,EAAE,IAAqB;QAC7F,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAI,EAAyC,CAAC,KAAK,CAAuD,CAAA;QACrH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,EAAE,YAAY,KAAK,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;IACpF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,QAAgB,EAAE,IAAqB;QAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAI,EAAyC,CAAC,KAAK,CAAqC,CAAA;QACnG,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QAClC,MAAM,CAAC,MAAM,EAAE,YAAY,KAAK,UAAU,QAAQ,SAAS,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAA;QACtC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC;CACF"}
@@ -1,3 +0,0 @@
1
- export { TestError } from './test-error';
2
- export { TestSetupError } from './setup-error';
3
- //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,3 +0,0 @@
1
- export { TestError } from './test-error';
2
- export { TestSetupError } from './setup-error';
3
- //# sourceMappingURL=index.js.map
@@ -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,16 +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 { http, HttpResponse } from 'msw';
11
- export { ActingAs } from './auth';
12
- export { FakeStorageService, type StoredFile } from './storage';
13
- export { Seeder } from './types';
14
- export { getTestEnv } from './core/env';
15
- export { TestError, TestSetupError } from './errors';
16
- //# sourceMappingURL=index.d.ts.map
@@ -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,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,23 +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
- // Re-export MSW utilities for convenience
12
- export { http, HttpResponse } from 'msw';
13
- // Auth
14
- export { ActingAs } from './auth';
15
- // Storage
16
- export { FakeStorageService } from './storage';
17
- // Types
18
- export { Seeder } from './types';
19
- // Environment utilities
20
- export { getTestEnv } from './core/env';
21
- // Errors
22
- export { TestError, TestSetupError } from './errors';
23
- //# 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,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"}
@@ -1,3 +0,0 @@
1
- export { createMock } from '@golevelup/ts-vitest';
2
- export type { DeepMocked, PartialFuncReturn } from '@golevelup/ts-vitest';
3
- //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,3 +0,0 @@
1
- // Deep mocking utilities from @golevelup/ts-vitest
2
- export { createMock } from '@golevelup/ts-vitest';
3
- //# sourceMappingURL=index.js.map
@@ -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,10 +0,0 @@
1
- declare const _default: {
2
- createTransport: () => {
3
- sendMail: () => Promise<{}>;
4
- };
5
- };
6
- export default _default;
7
- export declare const createTransport: () => {
8
- sendMail: () => Promise<{}>;
9
- };
10
- //# sourceMappingURL=nodemailer.d.ts.map
@@ -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"}
@@ -1,9 +0,0 @@
1
- export default {
2
- createTransport: () => ({
3
- sendMail: () => Promise.resolve({}),
4
- }),
5
- };
6
- export const createTransport = () => ({
7
- sendMail: () => Promise.resolve({}),
8
- });
9
- //# sourceMappingURL=nodemailer.js.map
@@ -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"}
@@ -1,114 +0,0 @@
1
- import { StorageManagerService, StorageService, StreamingBlobPayloadInputTypes, type DownloadResult, type PresignedUrlResult, type StorageConfig, type UploadOptions, type UploadResult } from 'stratal/storage';
2
- /**
3
- * Stored file representation in memory
4
- */
5
- export interface StoredFile {
6
- content: Uint8Array;
7
- mimeType: string;
8
- size: number;
9
- metadata?: Record<string, string>;
10
- uploadedAt: Date;
11
- }
12
- /**
13
- * FakeStorageService
14
- *
15
- * In-memory storage implementation for testing.
16
- * Registered by default in TestingModuleBuilder.
17
- *
18
- * Similar to Laravel's Storage::fake() - stores files in memory
19
- * and provides assertion helpers for testing.
20
- *
21
- * @example
22
- * ```typescript
23
- * // Access via TestingModule
24
- * module.storage.assertExists('path/to/file.pdf')
25
- * module.storage.assertMissing('deleted/file.pdf')
26
- * module.storage.clear() // Reset between tests
27
- * ```
28
- */
29
- export declare class FakeStorageService extends StorageService {
30
- protected readonly storageManager: StorageManagerService;
31
- protected readonly options: StorageConfig;
32
- private files;
33
- constructor(storageManager: StorageManagerService, options: StorageConfig);
34
- /**
35
- * Upload content to fake storage
36
- */
37
- upload(body: StreamingBlobPayloadInputTypes, relativePath: string, options: UploadOptions, disk?: string): Promise<UploadResult>;
38
- /**
39
- * Download a file from fake storage
40
- */
41
- download(path: string): Promise<DownloadResult>;
42
- /**
43
- * Delete a file from fake storage
44
- */
45
- delete(path: string): Promise<void>;
46
- /**
47
- * Check if a file exists in fake storage
48
- */
49
- exists(path: string): Promise<boolean>;
50
- /**
51
- * Generate a fake presigned download URL
52
- */
53
- getPresignedDownloadUrl(path: string, expiresIn?: number): Promise<PresignedUrlResult>;
54
- /**
55
- * Generate a fake presigned upload URL
56
- */
57
- getPresignedUploadUrl(path: string, expiresIn?: number): Promise<PresignedUrlResult>;
58
- /**
59
- * Generate a fake presigned delete URL
60
- */
61
- getPresignedDeleteUrl(path: string, expiresIn?: number): Promise<PresignedUrlResult>;
62
- /**
63
- * Chunked upload (same as regular upload for fake)
64
- */
65
- chunkedUpload(body: StreamingBlobPayloadInputTypes, path: string, options: Omit<UploadOptions, 'size'> & {
66
- size?: number;
67
- }, disk?: string): Promise<UploadResult>;
68
- /**
69
- * Assert that a file exists at the given path
70
- *
71
- * @param path - Path to check
72
- * @throws AssertionError if file does not exist
73
- */
74
- assertExists(path: string): void;
75
- /**
76
- * Assert that a file does NOT exist at the given path
77
- *
78
- * @param path - Path to check
79
- * @throws AssertionError if file exists
80
- */
81
- assertMissing(path: string): void;
82
- /**
83
- * Assert storage is empty
84
- *
85
- * @throws AssertionError if any files exist
86
- */
87
- assertEmpty(): void;
88
- /**
89
- * Assert storage has exactly N files
90
- *
91
- * @param count - Expected number of files
92
- * @throws AssertionError if count doesn't match
93
- */
94
- assertCount(count: number): void;
95
- /**
96
- * Get all stored files (for inspection)
97
- */
98
- getStoredFiles(): Map<string, StoredFile>;
99
- /**
100
- * Get all stored file paths
101
- */
102
- getStoredPaths(): string[];
103
- /**
104
- * Get a specific file by path
105
- */
106
- getFile(path: string): StoredFile | undefined;
107
- /**
108
- * Clear all stored files (call in beforeEach for test isolation)
109
- */
110
- clear(): void;
111
- private createPresignedUrl;
112
- private bodyToUint8Array;
113
- }
114
- //# sourceMappingURL=fake-storage.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fake-storage.service.d.ts","sourceRoot":"","sources":["../../src/storage/fake-storage.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,qBAAqB,EACrB,cAAc,EACd,8BAA8B,EAC9B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAA;AAGxB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,UAAU,EAAE,IAAI,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,kBAAmB,SAAQ,cAAc;IAKlD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,qBAAqB;IAExD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa;IAN3C,OAAO,CAAC,KAAK,CAAgC;gBAIxB,cAAc,EAAE,qBAAqB,EAErC,OAAO,EAAE,aAAa;IAK3C;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,8BAA8B,EACpC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC;IAsBxB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB/C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC;;OAEG;IACH,uBAAuB,CACrB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,8BAA8B,EACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EACxD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC;IAWxB;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhC;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOjC;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAOnB;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhC;;OAEG;IACH,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;IAIzC;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI7C;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,kBAAkB;YAeZ,gBAAgB;CAiC/B"}