UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

62 lines (61 loc) 2.5 kB
import path from "node:path"; import { describe, expect, it } from "vitest"; import { buildOneMetroResolverOverrides } from "./buildOneMetroResolverOverrides.mjs"; describe("buildOneMetroResolverOverrides", () => { it("resolves every react-native-worklets import from the app root", () => { const projectRoot = path.resolve(__dirname, "../../"); const nestedOrigin = path.join(projectRoot, "node_modules/react-native-reanimated/src/index.ts"); const resolvedOrigins = []; const config = buildOneMetroResolverOverrides({ projectRoot })({ resolver: { resolveRequest: (context, moduleName, _platform) => { resolvedOrigins.push(`${moduleName}:${context.originModulePath}`); return { type: "sourceFile", filePath: moduleName }; } } }); const resolveRequest = config.resolver?.resolveRequest; if (!resolveRequest) { throw new Error("expected a Metro resolver override"); } resolveRequest({ originModulePath: nestedOrigin }, "react-native-worklets", "ios"); resolveRequest({ originModulePath: nestedOrigin }, "react-native-worklets/package.json", "ios"); resolveRequest({ originModulePath: nestedOrigin }, "react-native-safe-area-context", "ios"); expect(resolvedOrigins).toEqual([`react-native-worklets:${path.join(projectRoot, "package.json")}`, `react-native-worklets/package.json:${path.join(projectRoot, "package.json")}`, `react-native-safe-area-context:${nestedOrigin}`]); }); it("keeps the compiled react-native-svg native entry point", () => { const projectRoot = path.resolve(__dirname, "../../"); const config = buildOneMetroResolverOverrides({ projectRoot })({ resolver: { resolveRequest: (_context, moduleName, _platform) => ({ type: "sourceFile", filePath: path.join(projectRoot, "node_modules", moduleName, "src", "index.ts") }) } }); const resolveRequest = config.resolver?.resolveRequest; if (!resolveRequest) { throw new Error("expected a Metro resolver override"); } expect(resolveRequest({ originModulePath: path.join(projectRoot, "app.tsx") }, "react-native-svg", "ios")).toEqual({ type: "sourceFile", filePath: path.join(projectRoot, "node_modules", "react-native-svg", "lib", "commonjs", "index.js") }); }); }); //# sourceMappingURL=buildOneMetroResolverOverrides.test.mjs.map