UNPKG

@sentry/wizard

Version:

Sentry wizard helping you to configure your project

72 lines (61 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // @ts-ignore - 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"); describe('expo-metro config', () => { 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); expect(result).toBe(true); 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()); }); 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); expect(result).toBe(true); 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()); }); 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); expect(result).toBe(false); expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(` const { getSentryExpoConfig } = require("@sentry/react-native/metro"); `.trim()); }); }); //# sourceMappingURL=expo-metro.test.js.map