@cedarjs/testing 7.0.0-canary.3258 → 7.0.0-rc.123

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/config/jest/api/RedwoodApiJestEnv.d.ts +11 -0
  2. package/config/jest/api/RedwoodApiJestEnv.d.ts.map +1 -0
  3. package/config/jest/api/RedwoodApiJestEnv.js +48 -0
  4. package/config/jest/api/apiBabelConfig.d.ts +5 -0
  5. package/config/jest/api/apiBabelConfig.d.ts.map +1 -0
  6. package/config/jest/api/apiBabelConfig.js +34 -0
  7. package/config/jest/api/globalSetup.d.ts +3 -0
  8. package/config/jest/api/globalSetup.d.ts.map +1 -0
  9. package/config/jest/api/globalSetup.js +63 -0
  10. package/config/jest/api/index.d.ts +3 -0
  11. package/config/jest/api/index.d.ts.map +1 -0
  12. package/config/jest/api/index.js +25 -0
  13. package/config/jest/api/jest-preset.d.ts +4 -0
  14. package/config/jest/api/jest-preset.d.ts.map +1 -0
  15. package/config/jest/api/jest-preset.js +140 -0
  16. package/config/jest/api/jest.setup.d.ts +2 -0
  17. package/config/jest/api/jest.setup.d.ts.map +1 -0
  18. package/config/jest/api/jest.setup.js +267 -0
  19. package/config/jest/api/package.json +8 -0
  20. package/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts +11 -0
  21. package/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts.map +1 -0
  22. package/config/jest/babelPlugins/babel-plugin-redwood-cell.js +122 -0
  23. package/config/jest/jest-serial-runner.d.ts +8 -0
  24. package/config/jest/jest-serial-runner.d.ts.map +1 -0
  25. package/config/jest/jest-serial-runner.js +37 -0
  26. package/config/jest/web/RedwoodWebJestEnv.d.ts +6 -0
  27. package/config/jest/web/RedwoodWebJestEnv.d.ts.map +1 -0
  28. package/config/jest/web/RedwoodWebJestEnv.js +43 -0
  29. package/config/jest/web/index.d.ts +3 -0
  30. package/config/jest/web/index.d.ts.map +1 -0
  31. package/config/jest/web/index.js +25 -0
  32. package/config/jest/web/jest-fixed-jsdom.d.js +1 -0
  33. package/config/jest/web/jest-preset.d.ts +4 -0
  34. package/config/jest/web/jest-preset.d.ts.map +1 -0
  35. package/config/jest/web/jest-preset.js +224 -0
  36. package/config/jest/web/jest.setup.d.ts +7 -0
  37. package/config/jest/web/jest.setup.d.ts.map +1 -0
  38. package/config/jest/web/jest.setup.js +21 -0
  39. package/config/jest/web/package.json +8 -0
  40. package/config/jest/web/resolver.d.ts +4 -0
  41. package/config/jest/web/resolver.d.ts.map +1 -0
  42. package/config/jest/web/resolver.js +30 -0
  43. package/config/jest/web/webBabelConfig.d.ts +10 -0
  44. package/config/jest/web/webBabelConfig.d.ts.map +1 -0
  45. package/config/jest/web/webBabelConfig.js +48 -0
  46. package/config/package.json +1 -0
  47. package/dist/api/mockContext.d.ts +1 -1
  48. package/dist/api/mockContext.d.ts.map +1 -1
  49. package/dist/api/vitest/vite-plugin-cedar-vitest-api-config.d.ts.map +1 -1
  50. package/dist/api/vitest/vite-plugin-cedar-vitest-api-config.js +1 -6
  51. package/dist/api/vitest/vitest-api.setup.d.ts.map +1 -1
  52. package/dist/api/vitest/vitest-api.setup.js +22 -9
  53. package/dist/cjs/api/apiFunction.d.ts +37 -0
  54. package/dist/cjs/api/apiFunction.d.ts.map +1 -0
  55. package/dist/cjs/api/apiFunction.js +89 -0
  56. package/dist/cjs/api/checkTestDatabase.d.ts +50 -0
  57. package/dist/cjs/api/checkTestDatabase.d.ts.map +1 -0
  58. package/dist/cjs/api/checkTestDatabase.js +182 -0
  59. package/dist/cjs/api/directive.d.ts +51 -0
  60. package/dist/cjs/api/directive.d.ts.map +1 -0
  61. package/dist/cjs/api/directive.js +77 -0
  62. package/dist/cjs/api/index.d.ts +4 -0
  63. package/dist/cjs/api/index.d.ts.map +1 -0
  64. package/dist/cjs/api/index.js +26 -0
  65. package/dist/cjs/api/mockContext.d.ts +5 -0
  66. package/dist/cjs/api/mockContext.d.ts.map +1 -0
  67. package/dist/cjs/api/mockContext.js +58 -0
  68. package/dist/cjs/api/scenario.d.ts +108 -0
  69. package/dist/cjs/api/scenario.d.ts.map +1 -0
  70. package/dist/cjs/api/scenario.js +30 -0
  71. package/dist/cjs/api/vitest/CedarApiVitestEnv.js +86 -0
  72. package/dist/cjs/api/vitest/index.js +34 -0
  73. package/dist/cjs/api/vitest/vite-plugin-auto-import.js +71 -0
  74. package/dist/cjs/api/vitest/vite-plugin-cedar-vitest-api-config.js +69 -0
  75. package/dist/cjs/api/vitest/vite-plugin-track-db-imports.js +47 -0
  76. package/dist/cjs/api/vitest/vitest-api.setup.js +270 -0
  77. package/dist/cjs/cache/index.d.ts +50 -0
  78. package/dist/cjs/cache/index.d.ts.map +1 -0
  79. package/dist/cjs/cache/index.js +104 -0
  80. package/dist/cjs/config/jest/api/RedwoodApiJestEnv.d.ts +11 -0
  81. package/dist/cjs/config/jest/api/RedwoodApiJestEnv.d.ts.map +1 -0
  82. package/dist/cjs/config/jest/api/RedwoodApiJestEnv.js +48 -0
  83. package/dist/cjs/config/jest/api/apiBabelConfig.d.ts +5 -0
  84. package/dist/cjs/config/jest/api/apiBabelConfig.d.ts.map +1 -0
  85. package/dist/cjs/config/jest/api/apiBabelConfig.js +34 -0
  86. package/dist/cjs/config/jest/api/globalSetup.d.ts +3 -0
  87. package/dist/cjs/config/jest/api/globalSetup.d.ts.map +1 -0
  88. package/dist/cjs/config/jest/api/globalSetup.js +63 -0
  89. package/dist/cjs/config/jest/api/index.d.ts +3 -0
  90. package/dist/cjs/config/jest/api/index.d.ts.map +1 -0
  91. package/dist/cjs/config/jest/api/index.js +25 -0
  92. package/dist/cjs/config/jest/api/jest-preset.d.ts +4 -0
  93. package/dist/cjs/config/jest/api/jest-preset.d.ts.map +1 -0
  94. package/dist/cjs/config/jest/api/jest-preset.js +140 -0
  95. package/dist/cjs/config/jest/api/jest.setup.d.ts +2 -0
  96. package/dist/cjs/config/jest/api/jest.setup.d.ts.map +1 -0
  97. package/dist/cjs/config/jest/api/jest.setup.js +267 -0
  98. package/dist/cjs/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts +11 -0
  99. package/dist/cjs/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts.map +1 -0
  100. package/dist/cjs/config/jest/babelPlugins/babel-plugin-redwood-cell.js +122 -0
  101. package/dist/cjs/config/jest/jest-serial-runner.d.ts +8 -0
  102. package/dist/cjs/config/jest/jest-serial-runner.d.ts.map +1 -0
  103. package/dist/cjs/config/jest/jest-serial-runner.js +37 -0
  104. package/dist/cjs/config/jest/web/RedwoodWebJestEnv.d.ts +6 -0
  105. package/dist/cjs/config/jest/web/RedwoodWebJestEnv.d.ts.map +1 -0
  106. package/dist/cjs/config/jest/web/RedwoodWebJestEnv.js +43 -0
  107. package/dist/cjs/config/jest/web/index.d.ts +3 -0
  108. package/dist/cjs/config/jest/web/index.d.ts.map +1 -0
  109. package/dist/cjs/config/jest/web/index.js +25 -0
  110. package/dist/cjs/config/jest/web/jest-fixed-jsdom.d.js +1 -0
  111. package/dist/cjs/config/jest/web/jest-preset.d.ts +4 -0
  112. package/dist/cjs/config/jest/web/jest-preset.d.ts.map +1 -0
  113. package/dist/cjs/config/jest/web/jest-preset.js +224 -0
  114. package/dist/cjs/config/jest/web/jest.setup.d.ts +7 -0
  115. package/dist/cjs/config/jest/web/jest.setup.d.ts.map +1 -0
  116. package/dist/cjs/config/jest/web/jest.setup.js +21 -0
  117. package/dist/cjs/config/jest/web/resolver.d.ts +4 -0
  118. package/dist/cjs/config/jest/web/resolver.d.ts.map +1 -0
  119. package/dist/cjs/config/jest/web/resolver.js +30 -0
  120. package/dist/cjs/config/jest/web/webBabelConfig.d.ts +10 -0
  121. package/dist/cjs/config/jest/web/webBabelConfig.d.ts.map +1 -0
  122. package/dist/cjs/config/jest/web/webBabelConfig.js +48 -0
  123. package/dist/cjs/package.json +1 -0
  124. package/dist/cjs/web/MockParamsProvider.d.ts +7 -0
  125. package/dist/cjs/web/MockParamsProvider.d.ts.map +1 -0
  126. package/dist/cjs/web/MockParamsProvider.js +44 -0
  127. package/dist/cjs/web/MockProviders.d.ts +5 -0
  128. package/dist/cjs/web/MockProviders.d.ts.map +1 -0
  129. package/dist/cjs/web/MockProviders.js +66 -0
  130. package/dist/cjs/web/MockRouter.d.ts +11 -0
  131. package/dist/cjs/web/MockRouter.d.ts.map +1 -0
  132. package/dist/cjs/web/MockRouter.js +48 -0
  133. package/dist/cjs/web/customRender.d.ts +6 -0
  134. package/dist/cjs/web/customRender.d.ts.map +1 -0
  135. package/dist/cjs/web/customRender.js +54 -0
  136. package/dist/cjs/web/fileMock.d.ts +10 -0
  137. package/dist/cjs/web/fileMock.d.ts.map +1 -0
  138. package/dist/cjs/web/fileMock.js +24 -0
  139. package/dist/cjs/web/findCellMocks.d.ts +2 -0
  140. package/dist/cjs/web/findCellMocks.d.ts.map +1 -0
  141. package/dist/cjs/web/findCellMocks.js +45 -0
  142. package/dist/cjs/web/globRoutesImporter.d.ts +13 -0
  143. package/dist/cjs/web/globRoutesImporter.d.ts.map +1 -0
  144. package/dist/cjs/web/globRoutesImporter.js +46 -0
  145. package/dist/cjs/web/global.d.ts +6 -0
  146. package/dist/cjs/web/global.d.ts.map +1 -0
  147. package/dist/cjs/web/global.js +1 -0
  148. package/dist/cjs/web/index.d.ts +6 -0
  149. package/dist/cjs/web/index.d.ts.map +1 -0
  150. package/dist/cjs/web/index.js +41 -0
  151. package/dist/cjs/web/mockAuth.d.ts +29 -0
  152. package/dist/cjs/web/mockAuth.d.ts.map +1 -0
  153. package/dist/cjs/web/mockAuth.js +89 -0
  154. package/dist/cjs/web/mockRequests.d.ts +72 -0
  155. package/dist/cjs/web/mockRequests.d.ts.map +1 -0
  156. package/dist/cjs/web/mockRequests.js +210 -0
  157. package/dist/cjs/web/vitest/index.js +37 -0
  158. package/dist/cjs/web/vitest/vite-plugin-auto-import.js +60 -0
  159. package/dist/cjs/web/vitest/vite-plugin-cedar-vitest-web-config.js +51 -0
  160. package/dist/cjs/web/vitest/vite-plugin-cedarjs-router-import-transform.js +42 -0
  161. package/dist/cjs/web/vitest/vite-plugin-create-auth-import-transform.js +43 -0
  162. package/dist/cjs/web/vitest/vitest-web.setup.js +19 -0
  163. package/dist/config/jest/api/RedwoodApiJestEnv.d.ts +11 -0
  164. package/dist/config/jest/api/RedwoodApiJestEnv.d.ts.map +1 -0
  165. package/dist/config/jest/api/RedwoodApiJestEnv.js +28 -0
  166. package/dist/config/jest/api/apiBabelConfig.d.ts +5 -0
  167. package/dist/config/jest/api/apiBabelConfig.d.ts.map +1 -0
  168. package/dist/config/jest/api/apiBabelConfig.js +18 -0
  169. package/dist/config/jest/api/globalSetup.d.ts +3 -0
  170. package/dist/config/jest/api/globalSetup.d.ts.map +1 -0
  171. package/dist/config/jest/api/globalSetup.js +36 -0
  172. package/dist/config/jest/api/index.d.ts +3 -0
  173. package/dist/config/jest/api/index.d.ts.map +1 -0
  174. package/dist/config/jest/api/index.js +15 -0
  175. package/dist/config/jest/api/jest-preset.d.ts +4 -0
  176. package/dist/config/jest/api/jest-preset.d.ts.map +1 -0
  177. package/dist/config/jest/api/jest-preset.js +110 -0
  178. package/dist/config/jest/api/jest.setup.d.ts +2 -0
  179. package/dist/config/jest/api/jest.setup.d.ts.map +1 -0
  180. package/dist/config/jest/api/jest.setup.js +244 -0
  181. package/dist/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts +11 -0
  182. package/dist/config/jest/babelPlugins/babel-plugin-redwood-cell.d.ts.map +1 -0
  183. package/dist/config/jest/babelPlugins/babel-plugin-redwood-cell.js +102 -0
  184. package/dist/config/jest/jest-serial-runner.d.ts +8 -0
  185. package/dist/config/jest/jest-serial-runner.d.ts.map +1 -0
  186. package/dist/config/jest/jest-serial-runner.js +27 -0
  187. package/dist/config/jest/web/RedwoodWebJestEnv.d.ts +6 -0
  188. package/dist/config/jest/web/RedwoodWebJestEnv.d.ts.map +1 -0
  189. package/dist/config/jest/web/RedwoodWebJestEnv.js +13 -0
  190. package/dist/config/jest/web/index.d.ts +3 -0
  191. package/dist/config/jest/web/index.d.ts.map +1 -0
  192. package/dist/config/jest/web/index.js +15 -0
  193. package/dist/config/jest/web/jest-fixed-jsdom.d.js +0 -0
  194. package/dist/config/jest/web/jest-preset.d.ts +4 -0
  195. package/dist/config/jest/web/jest-preset.d.ts.map +1 -0
  196. package/dist/config/jest/web/jest-preset.js +194 -0
  197. package/dist/config/jest/web/jest.setup.d.ts +7 -0
  198. package/dist/config/jest/web/jest.setup.d.ts.map +1 -0
  199. package/dist/config/jest/web/jest.setup.js +27 -0
  200. package/dist/config/jest/web/resolver.d.ts +4 -0
  201. package/dist/config/jest/web/resolver.d.ts.map +1 -0
  202. package/dist/config/jest/web/resolver.js +42 -0
  203. package/dist/config/jest/web/webBabelConfig.d.ts +10 -0
  204. package/dist/config/jest/web/webBabelConfig.d.ts.map +1 -0
  205. package/dist/config/jest/web/webBabelConfig.js +18 -0
  206. package/dist/web/MockParamsProvider.d.ts.map +1 -1
  207. package/dist/web/MockParamsProvider.js +1 -10
  208. package/dist/web/MockRouter.d.ts.map +1 -1
  209. package/dist/web/fileMock.d.ts +10 -0
  210. package/dist/web/fileMock.d.ts.map +1 -0
  211. package/dist/web/fileMock.js +4 -0
  212. package/dist/web/mockRequests.d.ts +0 -14
  213. package/dist/web/mockRequests.d.ts.map +1 -1
  214. package/dist/web/mockRequests.js +0 -8
  215. package/package.json +95 -22
  216. package/dist/api/vitest/teardown.d.ts +0 -18
  217. package/dist/api/vitest/teardown.d.ts.map +0 -1
  218. package/dist/api/vitest/teardown.js +0 -43
@@ -0,0 +1,194 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { getPaths } from "@cedarjs/project-config";
4
+ const cedarPaths = getPaths();
5
+ const RESOLVE_FROM = [cedarPaths.web.base, cedarPaths.base];
6
+ function resolvePackageDir(packageName, resolveFrom = RESOLVE_FROM) {
7
+ try {
8
+ return path.dirname(
9
+ require.resolve(`${packageName}/package.json`, { paths: resolveFrom })
10
+ );
11
+ } catch {
12
+ }
13
+ try {
14
+ let dir = path.dirname(require.resolve(packageName, { paths: resolveFrom }));
15
+ for (; ; ) {
16
+ const manifestPath = path.join(dir, "package.json");
17
+ if (fs.existsSync(manifestPath)) {
18
+ const manifest = JSON.parse(
19
+ fs.readFileSync(manifestPath, "utf-8")
20
+ );
21
+ if (manifest && typeof manifest === "object" && "name" in manifest && manifest.name === packageName) {
22
+ return dir;
23
+ }
24
+ }
25
+ const parent = path.dirname(dir);
26
+ if (parent === dir) {
27
+ return void 0;
28
+ }
29
+ dir = parent;
30
+ }
31
+ } catch {
32
+ return void 0;
33
+ }
34
+ }
35
+ function packagePath(packageName, relativePath = "", resolveFrom = RESOLVE_FROM) {
36
+ const packageDir = resolvePackageDir(packageName, resolveFrom);
37
+ return packageDir && path.join(packageDir, relativePath);
38
+ }
39
+ function resolveSubpath(specifier, resolveFrom = RESOLVE_FROM) {
40
+ try {
41
+ return require.resolve(specifier, { paths: resolveFrom });
42
+ } catch {
43
+ return void 0;
44
+ }
45
+ }
46
+ const cedarWebDir = resolvePackageDir("@cedarjs/web");
47
+ const cedarWebResolveFrom = cedarWebDir ? [cedarWebDir, ...RESOLVE_FROM] : RESOLVE_FROM;
48
+ function definedEntries(mappings) {
49
+ return Object.fromEntries(
50
+ Object.entries(mappings).filter(
51
+ (entry) => entry[1] !== void 0
52
+ )
53
+ );
54
+ }
55
+ const config = {
56
+ // To make sure other config option which depends on rootDir always
57
+ // use correct path, for example, coverageDirectory
58
+ rootDir: cedarPaths.base,
59
+ roots: [path.join(cedarPaths.web.src)],
60
+ // Opting out of jsdom's browser-style export condition resolution (needed to
61
+ // resolve `msw/node`) is handled by the environment itself, via
62
+ // jest-fixed-jsdom
63
+ testEnvironment: path.join(__dirname, "./RedwoodWebJestEnv.js"),
64
+ displayName: {
65
+ color: "blueBright",
66
+ name: "web"
67
+ },
68
+ globals: {
69
+ __RWJS_TESTROOT_DIR: path.join(cedarPaths.web.src),
70
+ // used in jest setup to load mocks
71
+ RWJS_ENV: {
72
+ RWJS_API_URL: "",
73
+ RWJS_API_GRAPHQL_URL: "/",
74
+ __REDWOOD__APP_TITLE: "Redwood App"
75
+ },
76
+ RWJS_DEBUG_ENV: {
77
+ RWJS_SRC_ROOT: cedarPaths.web.src
78
+ }
79
+ },
80
+ collectCoverageFrom: [
81
+ "**/*.{js,jsx,ts,tsx}",
82
+ "!**/node_modules/**",
83
+ "!**/dist/**"
84
+ ],
85
+ coverageDirectory: path.join(cedarPaths.base, "coverage"),
86
+ watchPlugins: [
87
+ "jest-watch-typeahead/filename",
88
+ "jest-watch-typeahead/testname"
89
+ ],
90
+ setupFilesAfterEnv: [path.resolve(__dirname, "./jest.setup.js")],
91
+ moduleNameMapper: {
92
+ ...definedEntries({
93
+ /**
94
+ * Make sure modules that require different versions of these
95
+ * dependencies end up using the same one.
96
+ */
97
+ "^react$": resolveSubpath("react"),
98
+ "^react-dom$": resolveSubpath("react-dom"),
99
+ // Point straight at Apollo Client's CJS build. Resolving the subpath
100
+ // would go through its `exports` map and land on the ESM build (Node 22+
101
+ // picks the `module-sync` condition), which Jest can't parse.
102
+ // Resolved starting from `@cedarjs/web` because that's what depends on
103
+ // Apollo — a project doesn't declare it itself, so under pnpm it isn't
104
+ // reachable from the web side at all, and searching from there finds
105
+ // either nothing or some unrelated copy pulled in by another dependency
106
+ "^@apollo/client/react$": packagePath(
107
+ "@apollo/client",
108
+ "__cjs/react/index.cjs",
109
+ cedarWebResolveFrom
110
+ ),
111
+ // We replace imports to "@cedarjs/router" with our own "mock" implementation.
112
+ "^@cedarjs/router$": resolveSubpath("@cedarjs/testing/web/MockRouter.js"),
113
+ "^@cedarjs/web$": resolveSubpath("@cedarjs/web"),
114
+ // This allows us to mock `createAuthentication` which is used by auth
115
+ // clients, which in turn lets us mock `useAuth` in tests
116
+ "^@cedarjs/auth$": resolveSubpath("@cedarjs/testing/auth"),
117
+ // @NOTE: Import @cedarjs/testing in web tests, and it automatically remaps to the web side only
118
+ // This is to prevent web stuff leaking into api, and vice versa
119
+ "^@cedarjs/testing$": resolveSubpath("@cedarjs/testing/web"),
120
+ /**
121
+ * Mock out files that aren't particularly useful in tests. See fileMock.js for more info.
122
+ */
123
+ "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|css)$": resolveSubpath("@cedarjs/testing/dist/cjs/web/fileMock.js")
124
+ }),
125
+ "~__CEDAR__USER_ROUTES_FOR_MOCK": cedarPaths.web.routes,
126
+ "~__CEDAR__USER_AUTH_FOR_MOCK": path.join(cedarPaths.web.src, "auth"),
127
+ // Support for importing files with extensions (like you'd do in ESM projects)
128
+ "^(\\.{1,2}/.*)\\.js$": "$1"
129
+ },
130
+ transform: {
131
+ // MSW's CommonJS build `require`s ESM-only packages (`rettime`,
132
+ // `@open-draft/deferred-promise` and `until-async`, which ships ESM in
133
+ // plain `.js` files). Node supports require(esm), but Jest's runtime
134
+ // doesn't, so compile any `.mjs` file that gets pulled in from
135
+ // node_modules (plus until-async) to CommonJS. This needs its own
136
+ // transform entry (with the config inlined) because the web babel config
137
+ // ignores node_modules
138
+ //
139
+ // The `@cedarjs/auth-*-web` packages are ESM-only too, and (like
140
+ // until-async) ship plain `.js` files rather than `.mjs` since their
141
+ // package.json already declares `"type": "module"`. A generated
142
+ // project's `web/src/auth.ts` imports one of these, so they need the
143
+ // same carve-out. `@cedarjs/forms` is ESM-only for the same reason, and
144
+ // gets pulled into virtually every generated project's web-side tests
145
+ // via `web/src/pages/**` scaffolds and dbAuth login/signup forms.
146
+ // `@cedarjs/web`, `@cedarjs/auth`, and `@cedarjs/router` are ESM-only
147
+ // too. `web` and `router` are imported directly by virtually every
148
+ // generated project's web-side test (`Routes.tsx`, page/component
149
+ // scaffolds), and `auth` gets pulled in transitively through `web`.
150
+ // Jest's own module loader re-applies this carve-out to every file it
151
+ // loads, including ones reached transitively through an
152
+ // already-transformed require() call, so all of them need to be listed
153
+ // even though only `web`/`router` are usually imported directly.
154
+ "[/\\\\]node_modules[/\\\\](?:.+\\.mjs|(?:until-async|@cedarjs[/\\\\](?:auth-[a-z-]+-web|forms|web|auth|router))[/\\\\].+\\.js)$": [
155
+ "babel-jest",
156
+ {
157
+ babelrc: false,
158
+ configFile: false,
159
+ presets: [
160
+ [require.resolve("@babel/preset-env"), { targets: { node: "20" } }]
161
+ ]
162
+ }
163
+ ],
164
+ "\\.[jt]sx?$": [
165
+ "babel-jest",
166
+ // When jest runs tests in parallel, it serializes the config before passing down options to babel
167
+ // that's why these must be serializable. Passing the reference to a config instead.
168
+ {
169
+ configFile: path.resolve(__dirname, "./webBabelConfig.js")
170
+ }
171
+ ]
172
+ },
173
+ // Jest's default is to not transform anything in node_modules, but `.mjs`
174
+ // files (and until-async, @cedarjs/auth-*-web, @cedarjs/forms,
175
+ // @cedarjs/web, @cedarjs/auth, and @cedarjs/router) have to be compiled to
176
+ // CommonJS (see the transform above).
177
+ // The `.pnpm` lookahead is what makes this work with pnpm: its virtual store
178
+ // puts packages at `node_modules/.pnpm/<pkg>@<version>/node_modules/<pkg>`,
179
+ // so without it the pattern matches (and thereby ignores) at the *first*
180
+ // `node_modules` segment, where the following path starts with `.pnpm/`
181
+ // instead of `until-async/` and the exception never gets a chance to apply.
182
+ // Skipping that segment forces the match onto the inner `node_modules`,
183
+ // which looks the same as a hoisted npm/yarn layout
184
+ transformIgnorePatterns: [
185
+ "[/\\\\]node_modules[/\\\\](?!\\.pnpm[/\\\\])(?!.*\\.mjs$)(?!until-async[/\\\\])(?!@cedarjs[/\\\\]auth-[a-z-]+-web[/\\\\])(?!@cedarjs[/\\\\]forms[/\\\\])(?!@cedarjs[/\\\\]web[/\\\\])(?!@cedarjs[/\\\\]auth[/\\\\])(?!@cedarjs[/\\\\]router[/\\\\])",
186
+ "\\.pnp\\.[^\\\\/]+$"
187
+ ],
188
+ resolver: path.resolve(__dirname, "./resolver.js"),
189
+ testPathIgnorePatterns: [".(stories|mock).[jt]sx?$"]
190
+ };
191
+ var jest_preset_default = config;
192
+ export {
193
+ jest_preset_default as default
194
+ };
@@ -0,0 +1,7 @@
1
+ import '@testing-library/jest-dom';
2
+ import { mockCurrentUser as _mockCurrentUser } from '../../../web/mockRequests.js';
3
+ declare global {
4
+ var __RWJS_TESTROOT_DIR: string;
5
+ var mockCurrentUser: typeof _mockCurrentUser;
6
+ }
7
+ //# sourceMappingURL=jest.setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.setup.d.ts","sourceRoot":"","sources":["../../../../src/config/jest/web/jest.setup.ts"],"names":[],"mappings":"AAEA,OAAO,2BAA2B,CAAA;AAGlC,OAAO,EAML,eAAe,IAAI,gBAAgB,EACpC,MAAM,8BAA8B,CAAA;AAErC,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,mBAAmB,EAAE,MAAM,CAAA;IAE/B,IAAI,eAAe,EAAE,OAAO,gBAAgB,CAAA;CAC7C"}
@@ -0,0 +1,27 @@
1
+ import "@testing-library/jest-dom";
2
+ import { findCellMocks } from "../../../web/findCellMocks.js";
3
+ import {
4
+ startMSW,
5
+ setupRequestHandlers,
6
+ closeServer,
7
+ mockGraphQLMutation as _mockGraphQLMutation,
8
+ mockGraphQLQuery as _mockGraphQLQuery,
9
+ mockCurrentUser as _mockCurrentUser
10
+ } from "../../../web/mockRequests.js";
11
+ global.mockGraphQLQuery = _mockGraphQLQuery;
12
+ global.mockGraphQLMutation = _mockGraphQLMutation;
13
+ global.mockCurrentUser = _mockCurrentUser;
14
+ const cellMocks = findCellMocks(global.__RWJS_TESTROOT_DIR);
15
+ beforeAll(async () => {
16
+ for (const m of cellMocks) {
17
+ await import(m);
18
+ }
19
+ await startMSW("node");
20
+ setupRequestHandlers();
21
+ });
22
+ afterEach(() => {
23
+ setupRequestHandlers();
24
+ });
25
+ afterAll(() => {
26
+ closeServer();
27
+ });
@@ -0,0 +1,4 @@
1
+ import type { ResolverOptions } from 'jest-resolve';
2
+ declare function resolver(path: string, options: ResolverOptions): string;
3
+ export = resolver;
4
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/config/jest/web/resolver.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,UAYvD;AAMD,SAAS,QAAQ,CAAA"}
@@ -0,0 +1,42 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ try {
4
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
5
+ } catch (e) {
6
+ throw mod = 0, e;
7
+ }
8
+ };
9
+ var require_resolver = __commonJS({
10
+ "src/config/jest/web/resolver.ts"(exports, module) {
11
+ function resolver(path, options) {
12
+ return options.defaultResolver(path, {
13
+ ...options,
14
+ packageFilter: (pkg) => {
15
+ if (OVERRIDE_EXPORTS_LIST.has(pkg.name)) {
16
+ delete pkg["exports"];
17
+ delete pkg["module"];
18
+ }
19
+ return pkg;
20
+ }
21
+ });
22
+ }
23
+ const OVERRIDE_EXPORTS_LIST = /* @__PURE__ */ new Set([
24
+ "@firebase/analytics",
25
+ "@firebase/app",
26
+ "@firebase/app-check",
27
+ "@firebase/auth",
28
+ "@firebase/database",
29
+ "@firebase/firestore",
30
+ "@firebase/functions",
31
+ "@firebase/installations",
32
+ "@firebase/messaging",
33
+ "@firebase/performance",
34
+ "@firebase/remote-config",
35
+ "@firebase/storage",
36
+ "@firebase/util",
37
+ "firebase"
38
+ ]);
39
+ module.exports = resolver;
40
+ }
41
+ });
42
+ export default require_resolver();
@@ -0,0 +1,10 @@
1
+ declare const _default: {
2
+ overrides: import("@babel/core").TransformOptions[];
3
+ presets: ((string | undefined)[] | (string | object)[])[];
4
+ plugins: import("@babel/core").TransformOptions[];
5
+ extends: string | undefined;
6
+ babelrc: boolean;
7
+ ignore: string[];
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=webBabelConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webBabelConfig.d.ts","sourceRoot":"","sources":["../../../../src/config/jest/web/webBabelConfig.ts"],"names":[],"mappings":";;;;;;;;AAQA,wBASC"}
@@ -0,0 +1,18 @@
1
+ import { getWebSideDefaultBabelConfig } from "@cedarjs/babel-config";
2
+ import redwoodCellsPlugin from "../babelPlugins/babel-plugin-redwood-cell.js";
3
+ const defaultWebSideBabelConfig = getWebSideDefaultBabelConfig({
4
+ forJest: true
5
+ });
6
+ var webBabelConfig_default = {
7
+ ...defaultWebSideBabelConfig,
8
+ overrides: [
9
+ ...defaultWebSideBabelConfig.overrides,
10
+ {
11
+ test: /.+Cell.(js|tsx|jsx)$/,
12
+ plugins: [redwoodCellsPlugin]
13
+ }
14
+ ]
15
+ };
16
+ export {
17
+ webBabelConfig_default as default
18
+ };
@@ -1 +1 @@
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
+ {"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,18 +1,9 @@
1
1
  import React from "react";
2
2
  import { useLocation, ParamsContext, parseSearch } from "@cedarjs/router";
3
- import { mockedRouteParamsMeta } from "./mockRequests.js";
4
3
  const MockParamsProvider = ({ children }) => {
5
4
  const location = useLocation();
6
5
  const searchParams = parseSearch(location.search);
7
- return /* @__PURE__ */ React.createElement(
8
- ParamsContext.Provider,
9
- {
10
- value: {
11
- params: { ...searchParams, ...mockedRouteParamsMeta.params }
12
- }
13
- },
14
- children
15
- );
6
+ return /* @__PURE__ */ React.createElement(ParamsContext.Provider, { value: { params: { ...searchParams } } }, children);
16
7
  };
17
8
  export {
18
9
  MockParamsProvider
@@ -1 +1 @@
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"}
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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Lets Jest gracefully handle asset files such as stylesheets and images.
3
+ * Usually, these files aren't particularly useful in tests so we can safely
4
+ * mock them out. Asset imports are mapped to this module by the
5
+ * `moduleNameMapper` config in
6
+ * `packages/testing/src/config/jest/web/jest-preset.ts`.
7
+ */
8
+ declare const _default: "fileMock";
9
+ export default _default;
10
+ //# sourceMappingURL=fileMock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileMock.d.ts","sourceRoot":"","sources":["../../src/web/fileMock.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;wBACY,UAAU;AAAzB,wBAAyB"}
@@ -0,0 +1,4 @@
1
+ var fileMock_default = "fileMock";
2
+ export {
3
+ fileMock_default as default
4
+ };
@@ -68,19 +68,5 @@ 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;
85
71
  export {};
86
72
  //# 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,19 +157,11 @@ const mockCurrentUser = (user) => {
157
157
  };
158
158
  });
159
159
  };
160
- const mockedRouteParamsMeta = {
161
- params: {}
162
- };
163
- const mockRouteParams = (params) => {
164
- mockedRouteParamsMeta.params = params;
165
- };
166
160
  export {
167
161
  closeServer,
168
162
  mockCurrentUser,
169
163
  mockGraphQLMutation,
170
164
  mockGraphQLQuery,
171
- mockRouteParams,
172
- mockedRouteParamsMeta,
173
165
  mockedUserMeta,
174
166
  registerHandler,
175
167
  setupRequestHandlers,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/testing",
3
- "version": "7.0.0-canary.3258",
3
+ "version": "7.0.0-rc.123",
4
4
  "description": "Tools, wrappers and configuration for testing a Cedar project.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,29 +10,92 @@
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
+ },
13
46
  "./auth": {
14
- "types": "./dist/web/mockAuth.d.ts",
15
- "default": "./dist/web/mockAuth.js"
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
+ }
16
55
  },
17
56
  "./api": {
18
- "types": "./dist/api/index.d.ts",
19
- "default": "./dist/api/index.js"
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
+ }
20
65
  },
21
66
  "./api/vitest": {
22
67
  "types": "./dist/api/vitest/index.d.ts",
23
68
  "default": "./dist/api/vitest/index.js"
24
69
  },
25
70
  "./cache": {
26
- "types": "./dist/cache/index.d.ts",
27
- "default": "./dist/cache/index.js"
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
+ }
28
79
  },
29
80
  "./web": {
30
- "types": "./dist/web/index.d.ts",
31
- "default": "./dist/web/index.js"
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
+ }
32
89
  },
33
90
  "./web/MockRouter.js": {
34
- "types": "./dist/web/MockRouter.d.ts",
35
- "default": "./dist/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
+ }
36
99
  },
37
100
  "./web/vitest": {
38
101
  "types": "./dist/web/vitest/index.d.ts",
@@ -40,12 +103,14 @@
40
103
  }
41
104
  },
42
105
  "files": [
106
+ "config",
43
107
  "dist"
44
108
  ],
45
109
  "scripts": {
46
110
  "build": "node ./build.mts && yarn build:types",
47
111
  "build:pack": "yarn pack -o cedarjs-testing.tgz",
48
112
  "build:types": "tsc --build --verbose ./tsconfig.build.json",
113
+ "build:types-cjs": "tsc --build --verbose ./tsconfig.cjs.json",
49
114
  "build:watch": "nodemon --watch src --ext 'js,jsx,ts,tsx' --ignore dist --exec 'yarn build'",
50
115
  "check:attw": "yarn cedar-fwtools-attw",
51
116
  "check:package": "concurrently npm:check:attw yarn:publint",
@@ -54,38 +119,46 @@
54
119
  "test:watch": "vitest watch"
55
120
  },
56
121
  "dependencies": {
57
- "@cedarjs/context": "7.0.0-canary.3258",
58
- "@cedarjs/graphql-server": "7.0.0-canary.3258",
59
- "@cedarjs/project-config": "7.0.0-canary.3258",
122
+ "@babel/preset-env": "7.29.7",
123
+ "@cedarjs/babel-config": "7.0.0-rc.123",
124
+ "@cedarjs/context": "7.0.0-rc.123",
125
+ "@cedarjs/graphql-server": "7.0.0-rc.123",
126
+ "@cedarjs/project-config": "7.0.0-rc.123",
60
127
  "@testing-library/dom": "10.4.2",
61
128
  "@testing-library/jest-dom": "6.9.1",
62
129
  "@testing-library/react": "16.3.3",
63
130
  "@testing-library/user-event": "14.6.7",
64
131
  "@types/aws-lambda": "8.10.163",
132
+ "@types/babel-core": "6.25.10",
65
133
  "@types/jest": "29.5.14",
66
134
  "@types/node": "24.10.4",
67
135
  "ansis": "4.4.0",
136
+ "babel-jest": "^29.7.0",
68
137
  "fast-glob": "3.3.3",
69
- "jsdom": "27.4.0",
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",
70
142
  "msw": "2.15.0",
71
143
  "ts-toolbelt": "9.6.0",
72
144
  "unplugin-auto-import": "19.3.0"
73
145
  },
74
146
  "devDependencies": {
75
147
  "@arethetypeswrong/cli": "0.18.5",
76
- "@cedarjs/auth": "7.0.0-canary.3258",
77
- "@cedarjs/framework-tools": "7.0.0-canary.3258",
78
- "@cedarjs/router": "7.0.0-canary.3258",
79
- "@cedarjs/web": "7.0.0-canary.3258",
148
+ "@cedarjs/auth": "7.0.0-rc.123",
149
+ "@cedarjs/framework-tools": "7.0.0-rc.123",
150
+ "@cedarjs/router": "7.0.0-rc.123",
151
+ "@cedarjs/web": "7.0.0-rc.123",
80
152
  "concurrently": "9.2.4",
153
+ "jsdom": "27.4.0",
81
154
  "publint": "0.3.24",
82
155
  "typescript": "5.9.3",
83
156
  "vitest": "4.1.11"
84
157
  },
85
158
  "peerDependencies": {
86
- "@cedarjs/auth": "7.0.0-canary.3258",
87
- "@cedarjs/router": "7.0.0-canary.3258",
88
- "@cedarjs/web": "7.0.0-canary.3258",
159
+ "@cedarjs/auth": "7.0.0-rc.123",
160
+ "@cedarjs/router": "7.0.0-rc.123",
161
+ "@cedarjs/web": "7.0.0-rc.123",
89
162
  "vitest": "4.1.11"
90
163
  },
91
164
  "peerDependenciesMeta": {
@@ -1,18 +0,0 @@
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
@@ -1 +0,0 @@
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"}