From 42d200b936f52a13b74e3c625a9523b8f3c33aef Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Thu, 29 Sep 2022 00:11:58 +0200 Subject: [PATCH] test: add windows to posix test case --- .../contextModuleTemplates-test.js.snap | 23 +++++++++++++++++++ .../__tests__/contextModuleTemplates-test.js | 11 +++++++++ 2 files changed, 34 insertions(+) diff --git a/packages/metro/src/lib/__tests__/__snapshots__/contextModuleTemplates-test.js.snap b/packages/metro/src/lib/__tests__/__snapshots__/contextModuleTemplates-test.js.snap index f74b849d58..5505bd6347 100644 --- a/packages/metro/src/lib/__tests__/__snapshots__/contextModuleTemplates-test.js.snap +++ b/packages/metro/src/lib/__tests__/__snapshots__/contextModuleTemplates-test.js.snap @@ -113,3 +113,26 @@ metroEmptyContext.resolve = function metroContextResolve(request) { module.exports = metroEmptyContext;" `; + +exports[`getContextModuleTemplate creates posix paths on windows for sync template 1`] = ` +"// All of the requested modules are loaded behind enumerable getters. +const map = Object.defineProperties({}, { + \\"./foo.js\\": { enumerable: true, get() { return require(\\"C:\\\\\\\\path\\\\\\\\to\\\\\\\\project\\\\\\\\src\\\\\\\\foo.js\\"); } }, +}); + +function metroContext(request) { + return map[request]; +} + +// Return the keys that can be resolved. +metroContext.keys = function metroContextKeys() { + return Object.keys(map); +}; + +// Return the module identifier for a user request. +metroContext.resolve = function metroContextResolve(request) { + throw new Error('Unimplemented Metro module context functionality'); +} + +module.exports = metroContext;" +`; diff --git a/packages/metro/src/lib/__tests__/contextModuleTemplates-test.js b/packages/metro/src/lib/__tests__/contextModuleTemplates-test.js index 0b9e86892d..c2fb43df54 100644 --- a/packages/metro/src/lib/__tests__/contextModuleTemplates-test.js +++ b/packages/metro/src/lib/__tests__/contextModuleTemplates-test.js @@ -49,4 +49,15 @@ describe('getContextModuleTemplate', () => { expect(template).toMatchSnapshot(); }); + + test('creates posix paths on windows for sync template', () => { + jest.resetModules(); + jest.mock('path', () => jest.requireActual('path').win32); + const { getContextModuleTemplate: getWindowsTemplate } = require('../contextModuleTemplates'); + const template = getWindowsTemplate('sync', 'c:/path/to/project/src', [ + 'C:\\path\\to\\project\\src\\foo.js', + ]); + expect(template).toMatch(/foo\.js/); + expect(template).toMatchSnapshot(); + }); });