one
Version:
One is a new React Framework that makes Vite serve both native and web.
66 lines (65 loc) • 2.78 kB
JavaScript
import path from "path";
import { describe, expect, it } from "vitest";
import { buildOneMetroResolverOverrides } from "./buildOneMetroResolverOverrides.native.js";
describe("buildOneMetroResolverOverrides", function () {
it("resolves every react-native-worklets import from the app root", function () {
var _config_resolver;
var projectRoot = path.resolve(__dirname, "../../");
var nestedOrigin = path.join(projectRoot, "node_modules/react-native-reanimated/src/index.ts");
var resolvedOrigins = [];
var config = buildOneMetroResolverOverrides({
projectRoot
})({
resolver: {
resolveRequest: function (context, moduleName, _platform) {
resolvedOrigins.push(`${moduleName}:${context.originModulePath}`);
return {
type: "sourceFile",
filePath: moduleName
};
}
}
});
var resolveRequest = (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _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", function () {
var _config_resolver;
var projectRoot = path.resolve(__dirname, "../../");
var config = buildOneMetroResolverOverrides({
projectRoot
})({
resolver: {
resolveRequest: function (_context, moduleName, _platform) {
return {
type: "sourceFile",
filePath: path.join(projectRoot, "node_modules", moduleName, "src", "index.ts")
};
}
}
});
var resolveRequest = (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _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.native.js.map