feat(mobile): PinInput component — 6-digit numeric pad
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import { defineConfig } from 'vitest/config';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const shimPath = fileURLToPath(new URL('./vitest.rn-shim.ts', import.meta.url));
|
||||
|
||||
// Vitest cannot transform React Native's Flow-typed source. We redirect
|
||||
// every `react-native` reference to a minimal host-component shim
|
||||
// (`vitest.rn-shim.ts`) so @testing-library/react-native v12 + jsdom can
|
||||
// render the few primitives PinInput uses.
|
||||
//
|
||||
// Two interception layers are needed:
|
||||
// 1. resolve.alias — covers ESM imports vite sees during transformation
|
||||
// of inlined dependencies (e.g. when @testing-library/react-native
|
||||
// goes through vite's pipeline because of `server.deps.inline`).
|
||||
// 2. setupFiles patches Module._resolveFilename so any pure-CJS
|
||||
// `require("react-native")` that escapes vite also lands on the shim.
|
||||
export default defineConfig({
|
||||
test: {
|
||||
environment: 'jsdom',
|
||||
include: ['**/*.test.ts', '**/*.test.tsx'],
|
||||
setupFiles: ['./vitest.setup.ts'],
|
||||
server: {
|
||||
deps: {
|
||||
inline: [/@testing-library\/react-native/],
|
||||
},
|
||||
},
|
||||
},
|
||||
resolve: {
|
||||
alias: [
|
||||
{ find: /^react-native$/, replacement: shimPath },
|
||||
{ find: /^react-native\/(.*)$/, replacement: shimPath },
|
||||
],
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user