UNPKG

@sentry/wizard

Version:

Sentry wizard helping you to configure your project

73 lines (62 loc) 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // @ts-expect-error - magicast is ESM and TS complains about that. It works though const magicast_1 = require("magicast"); const expo_metro_1 = require("../../src/react-native/expo-metro"); const vitest_1 = require("vitest"); (0, vitest_1.describe)('expo-metro config', () => { (0, vitest_1.test)('patches minimal expo config', () => { const mod = (0, magicast_1.parseModule)(` const { getDefaultConfig } = require("expo/metro-config"); /** @type {import('expo/metro-config').MetroConfig} */ const config = getDefaultConfig(__dirname); config.resolver.assetExts.push( // Adds support for .db files for SQLite databases 'db' ); module.exports = config; `); const result = (0, expo_metro_1.patchMetroInMemory)(mod, 'metro.config.js'); (0, vitest_1.expect)(result).toBe(true); (0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(` const { getSentryExpoConfig } = require("@sentry/react-native/metro"); /** @type {import('expo/metro-config').MetroConfig} */ const config = getSentryExpoConfig(__dirname); config.resolver.assetExts.push( // Adds support for .db files for SQLite databases 'db' ); module.exports = config; `.trim()); }); (0, vitest_1.test)('keeps expo metro config if other imports are present', () => { const mod = (0, magicast_1.parseModule)(` const { getDefaultConfig, otherExport } = require("expo/metro-config"); const config = getDefaultConfig(__dirname); module.exports = config; `); const result = (0, expo_metro_1.patchMetroInMemory)(mod, 'metro.config.js'); (0, vitest_1.expect)(result).toBe(true); (0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(` const { getDefaultConfig, otherExport } = require("expo/metro-config"); const { getSentryExpoConfig } = require("@sentry/react-native/metro"); const config = getSentryExpoConfig(__dirname); module.exports = config; `.trim()); }); (0, vitest_1.test)('does not modify when sentry already present', () => { const mod = (0, magicast_1.parseModule)(` const { getSentryExpoConfig } = require("@sentry/react-native/metro"); `); const result = (0, expo_metro_1.patchMetroInMemory)(mod, 'metro.config.js'); (0, vitest_1.expect)(result).toBe(false); (0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(` const { getSentryExpoConfig } = require("@sentry/react-native/metro"); `.trim()); }); }); //# sourceMappingURL=expo-metro.test.js.map