UNPKG

@sentry/wizard

Version:

Sentry wizard helping you to configure your project

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