@cedarjs/testing 7.0.0 → 8.0.0-canary.3263

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 (218) hide show
  1. package/dist/api/mockContext.d.ts +1 -1
  2. package/dist/api/mockContext.d.ts.map +1 -1
  3. package/dist/api/vitest/teardown.d.ts +18 -0
  4. package/dist/api/vitest/teardown.d.ts.map +1 -0
  5. package/dist/api/vitest/teardown.js +43 -0
  6. package/dist/api/vitest/vite-plugin-cedar-vitest-api-config.d.ts.map +1 -1
  7. package/dist/api/vitest/vite-plugin-cedar-vitest-api-config.js +6 -1
  8. package/dist/api/vitest/vitest-api.setup.d.ts.map +1 -1
  9. package/dist/api/vitest/vitest-api.setup.js +9 -22
  10. package/dist/web/MockParamsProvider.d.ts.map +1 -1
  11. package/dist/web/MockParamsProvider.js +10 -1
  12. package/dist/web/MockRouter.d.ts.map +1 -1
  13. package/dist/web/mockRequests.d.ts +14 -0
  14. package/dist/web/mockRequests.d.ts.map +1 -1
  15. package/dist/web/mockRequests.js +8 -0
  16. package/package.json +22 -95
  17. package/config/jest/api/RedwoodApiJestEnv.d.ts +0 -11
  18. package/config/jest/api/RedwoodApiJestEnv.d.ts.map +0 -1
  19. package/config/jest/api/RedwoodApiJestEnv.js +0 -48
  20. package/config/jest/api/apiBabelConfig.d.ts +0 -5
  21. package/config/jest/api/apiBabelConfig.d.ts.map +0 -1
  22. package/config/jest/api/apiBabelConfig.js +0 -34
  23. package/config/jest/api/globalSetup.d.ts +0 -3
  24. package/config/jest/api/globalSetup.d.ts.map +0 -1
  25. package/config/jest/api/globalSetup.js +0 -63
  26. package/config/jest/api/index.d.ts +0 -3
  27. package/config/jest/api/index.d.ts.map +0 -1
  28. package/config/jest/api/index.js +0 -25
  29. package/config/jest/api/jest-preset.d.ts +0 -4
  30. package/config/jest/api/jest-preset.d.ts.map +0 -1
  31. package/config/jest/api/jest-preset.js +0 -140
  32. package/config/jest/api/jest.setup.d.ts +0 -2
  33. package/config/jest/api/jest.setup.d.ts.map +0 -1
  34. package/config/jest/api/jest.setup.js +0 -267
  35. package/config/jest/api/package.json +0 -8
  36. package/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts +0 -11
  37. package/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts.map +0 -1
  38. package/config/jest/babelPlugins/babel-plugin-redwood-cell.js +0 -122
  39. package/config/jest/jest-serial-runner.d.ts +0 -8
  40. package/config/jest/jest-serial-runner.d.ts.map +0 -1
  41. package/config/jest/jest-serial-runner.js +0 -37
  42. package/config/jest/web/RedwoodWebJestEnv.d.ts +0 -6
  43. package/config/jest/web/RedwoodWebJestEnv.d.ts.map +0 -1
  44. package/config/jest/web/RedwoodWebJestEnv.js +0 -43
  45. package/config/jest/web/index.d.ts +0 -3
  46. package/config/jest/web/index.d.ts.map +0 -1
  47. package/config/jest/web/index.js +0 -25
  48. package/config/jest/web/jest-fixed-jsdom.d.js +0 -1
  49. package/config/jest/web/jest-preset.d.ts +0 -4
  50. package/config/jest/web/jest-preset.d.ts.map +0 -1
  51. package/config/jest/web/jest-preset.js +0 -224
  52. package/config/jest/web/jest.setup.d.ts +0 -7
  53. package/config/jest/web/jest.setup.d.ts.map +0 -1
  54. package/config/jest/web/jest.setup.js +0 -21
  55. package/config/jest/web/package.json +0 -8
  56. package/config/jest/web/resolver.d.ts +0 -4
  57. package/config/jest/web/resolver.d.ts.map +0 -1
  58. package/config/jest/web/resolver.js +0 -30
  59. package/config/jest/web/webBabelConfig.d.ts +0 -10
  60. package/config/jest/web/webBabelConfig.d.ts.map +0 -1
  61. package/config/jest/web/webBabelConfig.js +0 -48
  62. package/config/package.json +0 -1
  63. package/dist/cjs/api/apiFunction.d.ts +0 -37
  64. package/dist/cjs/api/apiFunction.d.ts.map +0 -1
  65. package/dist/cjs/api/apiFunction.js +0 -89
  66. package/dist/cjs/api/checkTestDatabase.d.ts +0 -50
  67. package/dist/cjs/api/checkTestDatabase.d.ts.map +0 -1
  68. package/dist/cjs/api/checkTestDatabase.js +0 -182
  69. package/dist/cjs/api/directive.d.ts +0 -51
  70. package/dist/cjs/api/directive.d.ts.map +0 -1
  71. package/dist/cjs/api/directive.js +0 -77
  72. package/dist/cjs/api/index.d.ts +0 -4
  73. package/dist/cjs/api/index.d.ts.map +0 -1
  74. package/dist/cjs/api/index.js +0 -26
  75. package/dist/cjs/api/mockContext.d.ts +0 -5
  76. package/dist/cjs/api/mockContext.d.ts.map +0 -1
  77. package/dist/cjs/api/mockContext.js +0 -58
  78. package/dist/cjs/api/scenario.d.ts +0 -108
  79. package/dist/cjs/api/scenario.d.ts.map +0 -1
  80. package/dist/cjs/api/scenario.js +0 -30
  81. package/dist/cjs/api/vitest/CedarApiVitestEnv.js +0 -86
  82. package/dist/cjs/api/vitest/index.js +0 -34
  83. package/dist/cjs/api/vitest/vite-plugin-auto-import.js +0 -71
  84. package/dist/cjs/api/vitest/vite-plugin-cedar-vitest-api-config.js +0 -69
  85. package/dist/cjs/api/vitest/vite-plugin-track-db-imports.js +0 -47
  86. package/dist/cjs/api/vitest/vitest-api.setup.js +0 -270
  87. package/dist/cjs/cache/index.d.ts +0 -50
  88. package/dist/cjs/cache/index.d.ts.map +0 -1
  89. package/dist/cjs/cache/index.js +0 -104
  90. package/dist/cjs/config/jest/api/RedwoodApiJestEnv.d.ts +0 -11
  91. package/dist/cjs/config/jest/api/RedwoodApiJestEnv.d.ts.map +0 -1
  92. package/dist/cjs/config/jest/api/RedwoodApiJestEnv.js +0 -48
  93. package/dist/cjs/config/jest/api/apiBabelConfig.d.ts +0 -5
  94. package/dist/cjs/config/jest/api/apiBabelConfig.d.ts.map +0 -1
  95. package/dist/cjs/config/jest/api/apiBabelConfig.js +0 -34
  96. package/dist/cjs/config/jest/api/globalSetup.d.ts +0 -3
  97. package/dist/cjs/config/jest/api/globalSetup.d.ts.map +0 -1
  98. package/dist/cjs/config/jest/api/globalSetup.js +0 -63
  99. package/dist/cjs/config/jest/api/index.d.ts +0 -3
  100. package/dist/cjs/config/jest/api/index.d.ts.map +0 -1
  101. package/dist/cjs/config/jest/api/index.js +0 -25
  102. package/dist/cjs/config/jest/api/jest-preset.d.ts +0 -4
  103. package/dist/cjs/config/jest/api/jest-preset.d.ts.map +0 -1
  104. package/dist/cjs/config/jest/api/jest-preset.js +0 -140
  105. package/dist/cjs/config/jest/api/jest.setup.d.ts +0 -2
  106. package/dist/cjs/config/jest/api/jest.setup.d.ts.map +0 -1
  107. package/dist/cjs/config/jest/api/jest.setup.js +0 -267
  108. package/dist/cjs/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts +0 -11
  109. package/dist/cjs/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts.map +0 -1
  110. package/dist/cjs/config/jest/babelPlugins/babel-plugin-redwood-cell.js +0 -122
  111. package/dist/cjs/config/jest/jest-serial-runner.d.ts +0 -8
  112. package/dist/cjs/config/jest/jest-serial-runner.d.ts.map +0 -1
  113. package/dist/cjs/config/jest/jest-serial-runner.js +0 -37
  114. package/dist/cjs/config/jest/web/RedwoodWebJestEnv.d.ts +0 -6
  115. package/dist/cjs/config/jest/web/RedwoodWebJestEnv.d.ts.map +0 -1
  116. package/dist/cjs/config/jest/web/RedwoodWebJestEnv.js +0 -43
  117. package/dist/cjs/config/jest/web/index.d.ts +0 -3
  118. package/dist/cjs/config/jest/web/index.d.ts.map +0 -1
  119. package/dist/cjs/config/jest/web/index.js +0 -25
  120. package/dist/cjs/config/jest/web/jest-fixed-jsdom.d.js +0 -1
  121. package/dist/cjs/config/jest/web/jest-preset.d.ts +0 -4
  122. package/dist/cjs/config/jest/web/jest-preset.d.ts.map +0 -1
  123. package/dist/cjs/config/jest/web/jest-preset.js +0 -224
  124. package/dist/cjs/config/jest/web/jest.setup.d.ts +0 -7
  125. package/dist/cjs/config/jest/web/jest.setup.d.ts.map +0 -1
  126. package/dist/cjs/config/jest/web/jest.setup.js +0 -21
  127. package/dist/cjs/config/jest/web/resolver.d.ts +0 -4
  128. package/dist/cjs/config/jest/web/resolver.d.ts.map +0 -1
  129. package/dist/cjs/config/jest/web/resolver.js +0 -30
  130. package/dist/cjs/config/jest/web/webBabelConfig.d.ts +0 -10
  131. package/dist/cjs/config/jest/web/webBabelConfig.d.ts.map +0 -1
  132. package/dist/cjs/config/jest/web/webBabelConfig.js +0 -48
  133. package/dist/cjs/package.json +0 -1
  134. package/dist/cjs/web/MockParamsProvider.d.ts +0 -7
  135. package/dist/cjs/web/MockParamsProvider.d.ts.map +0 -1
  136. package/dist/cjs/web/MockParamsProvider.js +0 -44
  137. package/dist/cjs/web/MockProviders.d.ts +0 -5
  138. package/dist/cjs/web/MockProviders.d.ts.map +0 -1
  139. package/dist/cjs/web/MockProviders.js +0 -66
  140. package/dist/cjs/web/MockRouter.d.ts +0 -11
  141. package/dist/cjs/web/MockRouter.d.ts.map +0 -1
  142. package/dist/cjs/web/MockRouter.js +0 -48
  143. package/dist/cjs/web/customRender.d.ts +0 -6
  144. package/dist/cjs/web/customRender.d.ts.map +0 -1
  145. package/dist/cjs/web/customRender.js +0 -54
  146. package/dist/cjs/web/fileMock.d.ts +0 -10
  147. package/dist/cjs/web/fileMock.d.ts.map +0 -1
  148. package/dist/cjs/web/fileMock.js +0 -24
  149. package/dist/cjs/web/findCellMocks.d.ts +0 -2
  150. package/dist/cjs/web/findCellMocks.d.ts.map +0 -1
  151. package/dist/cjs/web/findCellMocks.js +0 -45
  152. package/dist/cjs/web/globRoutesImporter.d.ts +0 -13
  153. package/dist/cjs/web/globRoutesImporter.d.ts.map +0 -1
  154. package/dist/cjs/web/globRoutesImporter.js +0 -46
  155. package/dist/cjs/web/global.d.ts +0 -6
  156. package/dist/cjs/web/global.d.ts.map +0 -1
  157. package/dist/cjs/web/global.js +0 -1
  158. package/dist/cjs/web/index.d.ts +0 -6
  159. package/dist/cjs/web/index.d.ts.map +0 -1
  160. package/dist/cjs/web/index.js +0 -41
  161. package/dist/cjs/web/mockAuth.d.ts +0 -29
  162. package/dist/cjs/web/mockAuth.d.ts.map +0 -1
  163. package/dist/cjs/web/mockAuth.js +0 -89
  164. package/dist/cjs/web/mockRequests.d.ts +0 -72
  165. package/dist/cjs/web/mockRequests.d.ts.map +0 -1
  166. package/dist/cjs/web/mockRequests.js +0 -210
  167. package/dist/cjs/web/vitest/index.js +0 -37
  168. package/dist/cjs/web/vitest/vite-plugin-auto-import.js +0 -60
  169. package/dist/cjs/web/vitest/vite-plugin-cedar-vitest-web-config.js +0 -51
  170. package/dist/cjs/web/vitest/vite-plugin-cedarjs-router-import-transform.js +0 -42
  171. package/dist/cjs/web/vitest/vite-plugin-create-auth-import-transform.js +0 -43
  172. package/dist/cjs/web/vitest/vitest-web.setup.js +0 -19
  173. package/dist/config/jest/api/RedwoodApiJestEnv.d.ts +0 -11
  174. package/dist/config/jest/api/RedwoodApiJestEnv.d.ts.map +0 -1
  175. package/dist/config/jest/api/RedwoodApiJestEnv.js +0 -28
  176. package/dist/config/jest/api/apiBabelConfig.d.ts +0 -5
  177. package/dist/config/jest/api/apiBabelConfig.d.ts.map +0 -1
  178. package/dist/config/jest/api/apiBabelConfig.js +0 -18
  179. package/dist/config/jest/api/globalSetup.d.ts +0 -3
  180. package/dist/config/jest/api/globalSetup.d.ts.map +0 -1
  181. package/dist/config/jest/api/globalSetup.js +0 -36
  182. package/dist/config/jest/api/index.d.ts +0 -3
  183. package/dist/config/jest/api/index.d.ts.map +0 -1
  184. package/dist/config/jest/api/index.js +0 -15
  185. package/dist/config/jest/api/jest-preset.d.ts +0 -4
  186. package/dist/config/jest/api/jest-preset.d.ts.map +0 -1
  187. package/dist/config/jest/api/jest-preset.js +0 -110
  188. package/dist/config/jest/api/jest.setup.d.ts +0 -2
  189. package/dist/config/jest/api/jest.setup.d.ts.map +0 -1
  190. package/dist/config/jest/api/jest.setup.js +0 -244
  191. package/dist/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts +0 -11
  192. package/dist/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts.map +0 -1
  193. package/dist/config/jest/babelPlugins/babel-plugin-redwood-cell.js +0 -102
  194. package/dist/config/jest/jest-serial-runner.d.ts +0 -8
  195. package/dist/config/jest/jest-serial-runner.d.ts.map +0 -1
  196. package/dist/config/jest/jest-serial-runner.js +0 -27
  197. package/dist/config/jest/web/RedwoodWebJestEnv.d.ts +0 -6
  198. package/dist/config/jest/web/RedwoodWebJestEnv.d.ts.map +0 -1
  199. package/dist/config/jest/web/RedwoodWebJestEnv.js +0 -13
  200. package/dist/config/jest/web/index.d.ts +0 -3
  201. package/dist/config/jest/web/index.d.ts.map +0 -1
  202. package/dist/config/jest/web/index.js +0 -15
  203. package/dist/config/jest/web/jest-fixed-jsdom.d.js +0 -0
  204. package/dist/config/jest/web/jest-preset.d.ts +0 -4
  205. package/dist/config/jest/web/jest-preset.d.ts.map +0 -1
  206. package/dist/config/jest/web/jest-preset.js +0 -194
  207. package/dist/config/jest/web/jest.setup.d.ts +0 -7
  208. package/dist/config/jest/web/jest.setup.d.ts.map +0 -1
  209. package/dist/config/jest/web/jest.setup.js +0 -27
  210. package/dist/config/jest/web/resolver.d.ts +0 -4
  211. package/dist/config/jest/web/resolver.d.ts.map +0 -1
  212. package/dist/config/jest/web/resolver.js +0 -42
  213. package/dist/config/jest/web/webBabelConfig.d.ts +0 -10
  214. package/dist/config/jest/web/webBabelConfig.d.ts.map +0 -1
  215. package/dist/config/jest/web/webBabelConfig.js +0 -18
  216. package/dist/web/fileMock.d.ts +0 -10
  217. package/dist/web/fileMock.d.ts.map +0 -1
  218. package/dist/web/fileMock.js +0 -4
@@ -1,5 +1,5 @@
1
1
  export interface GlobalContext extends Record<string, unknown> {
2
2
  }
3
- export declare const context: {};
3
+ export declare const context: GlobalContext;
4
4
  export declare const setContext: (newContext: GlobalContext) => GlobalContext;
5
5
  //# sourceMappingURL=mockContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockContext.d.ts","sourceRoot":"","sources":["../../src/api/mockContext.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AAEjE,eAAO,MAAM,OAAO,IAAc,CAAA;AAElC,eAAO,MAAM,UAAU,GAAI,YAAY,aAAa,KAAG,aAKtD,CAAA"}
1
+ {"version":3,"file":"mockContext.d.ts","sourceRoot":"","sources":["../../src/api/mockContext.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AAEjE,eAAO,MAAM,OAAO,eAAc,CAAA;AAElC,eAAO,MAAM,UAAU,GAAI,YAAY,aAAa,KAAG,aAYtD,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Whether `e` is a constraint violation that scenario teardown recovers from
3
+ * by emptying the table later, rather than an error worth raising.
4
+ */
5
+ export declare function isHandledTeardownError(e: unknown): boolean;
6
+ /**
7
+ * Empties every table in `order`, deferring a table to the end of the order
8
+ * when a foreign key says another table has to be emptied first, and
9
+ * returning the order that worked so the next run can start with it.
10
+ *
11
+ * A table that cannot be emptied in any order (a trigger that aborts the
12
+ * delete, or a foreign key no ordering satisfies) would otherwise be deferred
13
+ * forever, since deferring appends to the order being walked. Deferring every
14
+ * table still waiting without emptying one means no order works, so the
15
+ * driver's error is raised instead.
16
+ */
17
+ export declare function emptyTablesInWorkingOrder(order: string[], emptyTable: (modelName: string) => Promise<unknown>): Promise<string[]>;
18
+ //# sourceMappingURL=teardown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teardown.d.ts","sourceRoot":"","sources":["../../../src/api/vitest/teardown.ts"],"names":[],"mappings":"AA0BA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAQ1D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAClD,OAAO,CAAC,MAAM,EAAE,CAAC,CA+BnB"}
@@ -0,0 +1,43 @@
1
+ const RETRYABLE_ERROR_KINDS = [
2
+ "ForeignKeyConstraintViolation",
3
+ "RestrictViolation"
4
+ ];
5
+ function property(value, key) {
6
+ return typeof value === "object" && value !== null ? value[key] : void 0;
7
+ }
8
+ function isHandledTeardownError(e) {
9
+ const cause = property(
10
+ property(property(e, "meta"), "driverAdapterError"),
11
+ "cause"
12
+ );
13
+ const kind = property(cause, "kind");
14
+ return typeof kind === "string" && RETRYABLE_ERROR_KINDS.includes(kind);
15
+ }
16
+ async function emptyTablesInWorkingOrder(order, emptyTable) {
17
+ const remaining = [...order];
18
+ let pendingCount = remaining.length;
19
+ let deferralsSinceLastEmptied = 0;
20
+ for (const modelName of remaining) {
21
+ if (modelName === null) {
22
+ continue;
23
+ }
24
+ try {
25
+ await emptyTable(modelName);
26
+ pendingCount--;
27
+ deferralsSinceLastEmptied = 0;
28
+ } catch (e) {
29
+ console.error("teardown error\n", e);
30
+ if (!isHandledTeardownError(e) || deferralsSinceLastEmptied >= pendingCount) {
31
+ throw e;
32
+ }
33
+ deferralsSinceLastEmptied++;
34
+ remaining[remaining.indexOf(modelName)] = null;
35
+ remaining.push(modelName);
36
+ }
37
+ }
38
+ return remaining.filter((name) => name !== null);
39
+ }
40
+ export {
41
+ emptyTablesInWorkingOrder,
42
+ isHandledTeardownError
43
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin-cedar-vitest-api-config.d.ts","sourceRoot":"","sources":["../../../src/api/vitest/vite-plugin-cedar-vitest-api-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC,wBAAgB,0BAA0B,IAAI,MAAM,CA4BnD"}
1
+ {"version":3,"file":"vite-plugin-cedar-vitest-api-config.d.ts","sourceRoot":"","sources":["../../../src/api/vitest/vite-plugin-cedar-vitest-api-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC,wBAAgB,0BAA0B,IAAI,MAAM,CAiCnD"}
@@ -7,7 +7,12 @@ function cedarVitestApiConfigPlugin() {
7
7
  return {
8
8
  define: getEnvVarDefinitions(),
9
9
  ssr: {
10
- noExternal: ["@cedarjs/testing"]
10
+ // `@cedarjs/tenancy` reads and writes the request context, which
11
+ // the api test setup replaces with a mock. The mock only reaches
12
+ // code Vite processes, so the tenancy runtime has to be bundled
13
+ // rather than loaded as an external dependency, or a service under
14
+ // test and its Prisma extension would see different contexts.
15
+ noExternal: ["@cedarjs/testing", "@cedarjs/tenancy"]
11
16
  },
12
17
  resolve: {
13
18
  alias: {
@@ -1 +1 @@
1
- {"version":3,"file":"vitest-api.setup.d.ts","sourceRoot":"","sources":["../../../src/api/vitest/vitest-api.setup.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA0C1D,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;CAC3E;AAUD,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,cAAc,EAAE,cAAc,CAAA;IAElC,IAAI,uBAAuB,EAAE,OAAO,CAAA;CACrC"}
1
+ {"version":3,"file":"vitest-api.setup.d.ts","sourceRoot":"","sources":["../../../src/api/vitest/vitest-api.setup.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA4C1D,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;CAC3E;AAUD,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,cAAc,EAAE,cAAc,CAAA;IAElC,IAAI,uBAAuB,EAAE,OAAO,CAAA;CACrC"}
@@ -3,6 +3,7 @@ import path from "node:path";
3
3
  import { afterAll, beforeEach, it, describe, vi, beforeAll } from "vitest";
4
4
  import { getPaths, getPrismaSchemas } from "@cedarjs/project-config";
5
5
  import { defineScenario } from "@cedarjs/testing/api";
6
+ import { emptyTablesInWorkingOrder } from "./teardown.js";
6
7
  const mockContextStore = vi.hoisted(() => /* @__PURE__ */ new Map());
7
8
  const mockContext = vi.hoisted(
8
9
  () => new Proxy(
@@ -38,7 +39,6 @@ globalThis.mockCurrentUser = (currentUser) => {
38
39
  };
39
40
  globalThis.defineScenario = defineScenario;
40
41
  const cedarPaths = getPaths();
41
- const HANDLED_ERRORS = [1451, 1811, 23001, 23503];
42
42
  const TEARDOWN_CACHE_PATH = path.join(
43
43
  cedarPaths.generated.base,
44
44
  "scenarioTeardown.json"
@@ -132,23 +132,12 @@ async function teardown() {
132
132
  }
133
133
  const quoteStyle2 = await getQuoteStyle();
134
134
  const projectDb = await getProjectDb();
135
- for (const modelName of teardownOrder) {
136
- try {
137
- const query = `DELETE FROM ${quoteStyle2}${modelName}${quoteStyle2}`;
138
- await projectDb.$executeRawUnsafe(query);
139
- } catch (e) {
140
- console.error("teardown error\n", e);
141
- const match = isErrorWithMessage(e) && e.message.match(/Code: `(\d+)`/);
142
- if (match && HANDLED_ERRORS.includes(parseInt(match[1]))) {
143
- const index = teardownOrder.indexOf(modelName);
144
- teardownOrder[index] = null;
145
- teardownOrder.push(modelName);
146
- } else {
147
- throw e;
148
- }
149
- }
150
- }
151
- teardownOrder = teardownOrder.filter((val) => val);
135
+ teardownOrder = await emptyTablesInWorkingOrder(
136
+ teardownOrder,
137
+ (modelName) => projectDb.$executeRawUnsafe(
138
+ `DELETE FROM ${quoteStyle2}${modelName}${quoteStyle2}`
139
+ )
140
+ );
152
141
  if (!isIdenticalArray(teardownOrder, originalTeardownOrder)) {
153
142
  originalTeardownOrder = deepCopy(teardownOrder);
154
143
  fs.writeFileSync(TEARDOWN_CACHE_PATH, JSON.stringify(teardownOrder));
@@ -227,7 +216,8 @@ async function getQuoteStyle() {
227
216
  }
228
217
  async function getProjectDb() {
229
218
  const libDb = await import(`${cedarPaths.api.lib}/db`);
230
- return libDb.db;
219
+ const db = libDb.db;
220
+ return typeof db?.$withoutTenant === "function" ? db.$withoutTenant() : db;
231
221
  }
232
222
  function isIdenticalArray(a, b) {
233
223
  return JSON.stringify(a) === JSON.stringify(b);
@@ -235,9 +225,6 @@ function isIdenticalArray(a, b) {
235
225
  function deepCopy(obj) {
236
226
  return JSON.parse(JSON.stringify(obj));
237
227
  }
238
- function isErrorWithMessage(e) {
239
- return !!e && typeof e === "object" && "message" in e && typeof e.message === "string";
240
- }
241
228
  function isErrorWithCode(e) {
242
229
  return !!e && typeof e === "object" && "code" in e && typeof e.code === "string";
243
230
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MockParamsProvider.d.ts","sourceRoot":"","sources":["../../src/web/MockParamsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAS9C,CAAA"}
1
+ {"version":3,"file":"MockParamsProvider.d.ts","sourceRoot":"","sources":["../../src/web/MockParamsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgB9C,CAAA"}
@@ -1,9 +1,18 @@
1
1
  import React from "react";
2
2
  import { useLocation, ParamsContext, parseSearch } from "@cedarjs/router";
3
+ import { mockedRouteParamsMeta } from "./mockRequests.js";
3
4
  const MockParamsProvider = ({ children }) => {
4
5
  const location = useLocation();
5
6
  const searchParams = parseSearch(location.search);
6
- return /* @__PURE__ */ React.createElement(ParamsContext.Provider, { value: { params: { ...searchParams } } }, children);
7
+ return /* @__PURE__ */ React.createElement(
8
+ ParamsContext.Provider,
9
+ {
10
+ value: {
11
+ params: { ...searchParams, ...mockedRouteParamsMeta.params }
12
+ }
13
+ },
14
+ children
15
+ );
7
16
  };
8
17
  export {
9
18
  MockParamsProvider
@@ -1 +1 @@
1
- {"version":3,"file":"MockRouter.d.ts","sourceRoot":"","sources":["../../src/web/MockRouter.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAG9D,cAAc,4BAA4B,CAAA;AAE1C,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,MAAM,CAAA;CAAO,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAcxC,CAAA"}
1
+ {"version":3,"file":"MockRouter.d.ts","sourceRoot":"","sources":["../../src/web/MockRouter.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAG9D,cAAc,4BAA4B,CAAA;AAE1C,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,MAAM,CAAA;CAAO,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAcxC,CAAA"}
@@ -68,5 +68,19 @@ export declare const mockedUserMeta: {
68
68
  currentUser: Record<string, unknown> | null;
69
69
  };
70
70
  export declare const mockCurrentUser: (user: Record<string, unknown> | null) => void;
71
+ export declare const mockedRouteParamsMeta: {
72
+ params: Record<string, string>;
73
+ };
74
+ /**
75
+ * Sets the route params `useParams()` (and generated `routes.*()` calls, via
76
+ * `MockRouter`) see in a rendered-in-isolation test -- a cell test, for
77
+ * example, has no matched route to read `{orgSlug}` or similar path params
78
+ * from. Mirrors `mockCurrentUser`'s effect on `useAuth().currentUser`.
79
+ *
80
+ * ```ts
81
+ * mockRouteParams({ orgSlug: 'acme' })
82
+ * ```
83
+ */
84
+ export declare const mockRouteParams: (params: Record<string, string>) => void;
71
85
  export {};
72
86
  //# sourceMappingURL=mockRequests.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockRequests.d.ts","sourceRoot":"","sources":["../../src/web/mockRequests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockRequests.d.ts","sourceRoot":"","sources":["../../src/web/mockRequests.ts"],"names":[],"mappings":"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"}
@@ -157,11 +157,19 @@ const mockCurrentUser = (user) => {
157
157
  };
158
158
  });
159
159
  };
160
+ const mockedRouteParamsMeta = {
161
+ params: {}
162
+ };
163
+ const mockRouteParams = (params) => {
164
+ mockedRouteParamsMeta.params = params;
165
+ };
160
166
  export {
161
167
  closeServer,
162
168
  mockCurrentUser,
163
169
  mockGraphQLMutation,
164
170
  mockGraphQLQuery,
171
+ mockRouteParams,
172
+ mockedRouteParamsMeta,
165
173
  mockedUserMeta,
166
174
  registerHandler,
167
175
  setupRequestHandlers,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/testing",
3
- "version": "7.0.0",
3
+ "version": "8.0.0-canary.3263",
4
4
  "description": "Tools, wrappers and configuration for testing a Cedar project.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,92 +10,29 @@
10
10
  "license": "MIT",
11
11
  "type": "module",
12
12
  "exports": {
13
- "./config/jest/web": {
14
- "default": "./config/jest/web/index.js"
15
- },
16
- "./config/jest/api": {
17
- "default": "./config/jest/api/index.js"
18
- },
19
- "./config/jest/api/jest-preset": {
20
- "default": "./config/jest/api/jest-preset.js"
21
- },
22
- "./config/jest/web/jest-preset": {
23
- "default": "./config/jest/web/jest-preset.js"
24
- },
25
- "./dist/cjs/api/scenario.js": {
26
- "default": "./dist/cjs/api/scenario.js"
27
- },
28
- "./dist/cjs/api/checkTestDatabase.js": {
29
- "default": "./dist/cjs/api/checkTestDatabase.js"
30
- },
31
- "./dist/cjs/web/findCellMocks": {
32
- "default": "./dist/cjs/web/findCellMocks.js"
33
- },
34
- "./dist/cjs/web/findCellMocks.js": {
35
- "default": "./dist/cjs/web/findCellMocks.js"
36
- },
37
- "./dist/cjs/web/mockRequests": {
38
- "default": "./dist/cjs/web/mockRequests.js"
39
- },
40
- "./dist/cjs/web/mockRequests.js": {
41
- "default": "./dist/cjs/web/mockRequests.js"
42
- },
43
- "./dist/cjs/web/fileMock.js": {
44
- "default": "./dist/cjs/web/fileMock.js"
45
- },
46
13
  "./auth": {
47
- "import": {
48
- "types": "./dist/web/mockAuth.d.ts",
49
- "default": "./dist/web/mockAuth.js"
50
- },
51
- "require": {
52
- "types": "./dist/cjs/web/index.d.ts",
53
- "default": "./dist/cjs/web/mockAuth.js"
54
- }
14
+ "types": "./dist/web/mockAuth.d.ts",
15
+ "default": "./dist/web/mockAuth.js"
55
16
  },
56
17
  "./api": {
57
- "import": {
58
- "types": "./dist/api/index.d.ts",
59
- "default": "./dist/api/index.js"
60
- },
61
- "require": {
62
- "types": "./dist/cjs/api/index.d.ts",
63
- "default": "./dist/cjs/api/index.js"
64
- }
18
+ "types": "./dist/api/index.d.ts",
19
+ "default": "./dist/api/index.js"
65
20
  },
66
21
  "./api/vitest": {
67
22
  "types": "./dist/api/vitest/index.d.ts",
68
23
  "default": "./dist/api/vitest/index.js"
69
24
  },
70
25
  "./cache": {
71
- "import": {
72
- "types": "./dist/cache/index.d.ts",
73
- "default": "./dist/cache/index.js"
74
- },
75
- "require": {
76
- "types": "./dist/cjs/cache/index.d.ts",
77
- "default": "./dist/cjs/cache/index.js"
78
- }
26
+ "types": "./dist/cache/index.d.ts",
27
+ "default": "./dist/cache/index.js"
79
28
  },
80
29
  "./web": {
81
- "import": {
82
- "types": "./dist/web/index.d.ts",
83
- "default": "./dist/web/index.js"
84
- },
85
- "require": {
86
- "types": "./dist/cjs/web/index.d.ts",
87
- "default": "./dist/cjs/web/index.js"
88
- }
30
+ "types": "./dist/web/index.d.ts",
31
+ "default": "./dist/web/index.js"
89
32
  },
90
33
  "./web/MockRouter.js": {
91
- "import": {
92
- "types": "./dist/web/MockRouter.d.ts",
93
- "default": "./dist/web/MockRouter.js"
94
- },
95
- "require": {
96
- "types": "./dist/cjs/web/MockRouter.d.ts",
97
- "default": "./dist/cjs/web/MockRouter.js"
98
- }
34
+ "types": "./dist/web/MockRouter.d.ts",
35
+ "default": "./dist/web/MockRouter.js"
99
36
  },
100
37
  "./web/vitest": {
101
38
  "types": "./dist/web/vitest/index.d.ts",
@@ -103,14 +40,12 @@
103
40
  }
104
41
  },
105
42
  "files": [
106
- "config",
107
43
  "dist"
108
44
  ],
109
45
  "scripts": {
110
46
  "build": "node ./build.mts && yarn build:types",
111
47
  "build:pack": "yarn pack -o cedarjs-testing.tgz",
112
48
  "build:types": "tsc --build --verbose ./tsconfig.build.json",
113
- "build:types-cjs": "tsc --build --verbose ./tsconfig.cjs.json",
114
49
  "build:watch": "nodemon --watch src --ext 'js,jsx,ts,tsx' --ignore dist --exec 'yarn build'",
115
50
  "check:attw": "yarn cedar-fwtools-attw",
116
51
  "check:package": "concurrently npm:check:attw yarn:publint",
@@ -119,46 +54,38 @@
119
54
  "test:watch": "vitest watch"
120
55
  },
121
56
  "dependencies": {
122
- "@babel/preset-env": "7.29.7",
123
- "@cedarjs/babel-config": "7.0.0",
124
- "@cedarjs/context": "7.0.0",
125
- "@cedarjs/graphql-server": "7.0.0",
126
- "@cedarjs/project-config": "7.0.0",
57
+ "@cedarjs/context": "8.0.0-canary.3263",
58
+ "@cedarjs/graphql-server": "8.0.0-canary.3263",
59
+ "@cedarjs/project-config": "8.0.0-canary.3263",
127
60
  "@testing-library/dom": "10.4.2",
128
61
  "@testing-library/jest-dom": "6.9.1",
129
62
  "@testing-library/react": "16.3.3",
130
63
  "@testing-library/user-event": "14.6.7",
131
64
  "@types/aws-lambda": "8.10.163",
132
- "@types/babel-core": "6.25.10",
133
65
  "@types/jest": "29.5.14",
134
66
  "@types/node": "24.10.4",
135
67
  "ansis": "4.4.0",
136
- "babel-jest": "^29.7.0",
137
68
  "fast-glob": "3.3.3",
138
- "jest": "29.7.0",
139
- "jest-environment-jsdom": "29.7.0",
140
- "jest-fixed-jsdom": "0.0.11",
141
- "jest-watch-typeahead": "2.2.2",
69
+ "jsdom": "27.4.0",
142
70
  "msw": "2.15.0",
143
71
  "ts-toolbelt": "9.6.0",
144
72
  "unplugin-auto-import": "19.3.0"
145
73
  },
146
74
  "devDependencies": {
147
75
  "@arethetypeswrong/cli": "0.18.5",
148
- "@cedarjs/auth": "7.0.0",
149
- "@cedarjs/framework-tools": "7.0.0",
150
- "@cedarjs/router": "7.0.0",
151
- "@cedarjs/web": "7.0.0",
76
+ "@cedarjs/auth": "8.0.0-canary.3263",
77
+ "@cedarjs/framework-tools": "8.0.0-canary.3263",
78
+ "@cedarjs/router": "8.0.0-canary.3263",
79
+ "@cedarjs/web": "8.0.0-canary.3263",
152
80
  "concurrently": "9.2.4",
153
- "jsdom": "27.4.0",
154
81
  "publint": "0.3.24",
155
82
  "typescript": "5.9.3",
156
83
  "vitest": "4.1.11"
157
84
  },
158
85
  "peerDependencies": {
159
- "@cedarjs/auth": "7.0.0",
160
- "@cedarjs/router": "7.0.0",
161
- "@cedarjs/web": "7.0.0",
86
+ "@cedarjs/auth": "8.0.0-canary.3263",
87
+ "@cedarjs/router": "8.0.0-canary.3263",
88
+ "@cedarjs/web": "8.0.0-canary.3263",
162
89
  "vitest": "4.1.11"
163
90
  },
164
91
  "peerDependenciesMeta": {
@@ -1,11 +0,0 @@
1
- import type { EnvironmentContext, JestEnvironmentConfig } from '@jest/environment';
2
- import { TestEnvironment } from 'jest-environment-node';
3
- declare class RedwoodApiJestEnvironment extends TestEnvironment {
4
- private testPath;
5
- constructor(config: JestEnvironmentConfig, context: EnvironmentContext);
6
- setup(): Promise<void>;
7
- teardown(): Promise<void>;
8
- getVmContext(): import("vm").Context | null;
9
- }
10
- export default RedwoodApiJestEnvironment;
11
- //# sourceMappingURL=RedwoodApiJestEnv.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedwoodApiJestEnv.d.ts","sourceRoot":"","sources":["../../../../../src/config/jest/api/RedwoodApiJestEnv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,cAAM,yBAA0B,SAAQ,eAAe;IACrD,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,kBAAkB;IAKhE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,YAAY;CAUb;AAED,eAAe,yBAAyB,CAAA"}
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var RedwoodApiJestEnv_exports = {};
20
- __export(RedwoodApiJestEnv_exports, {
21
- default: () => RedwoodApiJestEnv_default
22
- });
23
- module.exports = __toCommonJS(RedwoodApiJestEnv_exports);
24
- var import_jest_environment_node = require("jest-environment-node");
25
- class RedwoodApiJestEnvironment extends import_jest_environment_node.TestEnvironment {
26
- testPath;
27
- constructor(config, context) {
28
- super(config, context);
29
- this.testPath = context.testPath;
30
- }
31
- async setup() {
32
- await super.setup();
33
- this.global.testPath = this.testPath;
34
- }
35
- async teardown() {
36
- await super.teardown();
37
- }
38
- getVmContext() {
39
- return super.getVmContext();
40
- }
41
- // async handleTestEvent(event, state) {
42
- // if (event.name === 'test_start') {
43
- // // Link to event docs:
44
- // // https://github.com/facebook/jest/blob/master/packages/jest-types/src/Circus.ts
45
- // }
46
- // }
47
- }
48
- var RedwoodApiJestEnv_default = RedwoodApiJestEnvironment;
@@ -1,5 +0,0 @@
1
- import { getApiSideDefaultBabelConfig } from '@cedarjs/babel-config';
2
- type ConfigType = Omit<ReturnType<typeof getApiSideDefaultBabelConfig>, 'babelrc'>;
3
- declare const config: ConfigType;
4
- export default config;
5
- //# sourceMappingURL=apiBabelConfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiBabelConfig.d.ts","sourceRoot":"","sources":["../../../../../src/config/jest/api/apiBabelConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAG7B,MAAM,uBAAuB,CAAA;AAO9B,KAAK,UAAU,GAAG,IAAI,CACpB,UAAU,CAAC,OAAO,4BAA4B,CAAC,EAC/C,SAAS,CACV,CAAA;AAED,QAAA,MAAM,MAAM,EAAE,UAMb,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var apiBabelConfig_exports = {};
20
- __export(apiBabelConfig_exports, {
21
- default: () => apiBabelConfig_default
22
- });
23
- module.exports = __toCommonJS(apiBabelConfig_exports);
24
- var import_babel_config = require("@cedarjs/babel-config");
25
- const { babelrc: _b, ...defaultBabelConfig } = (0, import_babel_config.getApiSideDefaultBabelConfig)();
26
- const config = {
27
- ...defaultBabelConfig,
28
- plugins: (0, import_babel_config.getApiSideBabelPlugins)(),
29
- presets: (0, import_babel_config.getApiSideBabelPresets)({
30
- presetEnv: true
31
- // jest needs code transpiled
32
- })
33
- };
34
- var apiBabelConfig_default = config;
@@ -1,3 +0,0 @@
1
- import 'dotenv-defaults/config';
2
- export default function (): Promise<void>;
3
- //# sourceMappingURL=globalSetup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"globalSetup.d.ts","sourceRoot":"","sources":["../../../../../src/config/jest/api/globalSetup.ts"],"names":[],"mappings":"AAEA,OAAO,wBAAwB,CAAA;AAW/B,0CAqCC"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var globalSetup_exports = {};
30
- __export(globalSetup_exports, {
31
- default: () => globalSetup_default
32
- });
33
- module.exports = __toCommonJS(globalSetup_exports);
34
- var import_node_path = __toESM(require("node:path"), 1);
35
- var import_config = require("dotenv-defaults/config");
36
- var import_execa = __toESM(require("execa"), 1);
37
- var import_project_config = require("@cedarjs/project-config");
38
- var import_packageManager = require("@cedarjs/project-config/packageManager");
39
- var import_checkTestDatabase = require("@cedarjs/testing/dist/cjs/api/checkTestDatabase.js");
40
- async function globalSetup_default() {
41
- if (process.env.SKIP_DB_PUSH === "1") {
42
- return;
43
- }
44
- const cedarPaths = (0, import_project_config.getPaths)();
45
- const defaultDb = `file:${import_node_path.default.join(cedarPaths.generated.base, "test.db")}`;
46
- const usedFallback = !process.env.TEST_DATABASE_URL;
47
- process.env.DATABASE_URL = process.env.TEST_DATABASE_URL || defaultDb;
48
- await (0, import_checkTestDatabase.checkTestDatabaseUrlMatchesProvider)(
49
- process.env.DATABASE_URL,
50
- usedFallback
51
- );
52
- console.log(
53
- `Setting up test database: ${(0, import_checkTestDatabase.redactDatabaseUrl)(process.env.DATABASE_URL)}`
54
- );
55
- const command = process.env.TEST_DATABASE_STRATEGY === "reset" ? ["prisma", "migrate", "reset", "--force"] : ["prisma", "db", "push", "--force-reset", "--accept-data-loss"];
56
- const pm = (0, import_packageManager.getPackageManager)();
57
- const pmExec = pm === "pnpm" ? pm : "npx";
58
- import_execa.default.sync(pmExec, ["cedar", ...command], {
59
- cwd: cedarPaths.api.base,
60
- stdio: "inherit",
61
- env: process.env
62
- });
63
- }
@@ -1,3 +0,0 @@
1
- import * as jestPreset from './jest-preset.js';
2
- export = jestPreset;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/config/jest/api/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAK9C,SAAS,UAAU,CAAA"}