diff --git a/CHANGELOG.md b/CHANGELOG.md index 16319cd3e275..c5296369a8e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## master +### Fixes + +* `[jest-haste-map]` Properly handle platform-specific file deletions + ([#5534](https://github.com/facebook/jest/pull/5534)) + ### Features * `[jest-util]` Add the following methods to the "console" implementations: diff --git a/packages/jest-haste-map/src/__tests__/index.test.js b/packages/jest-haste-map/src/__tests__/index.test.js index 0d81e5fec357..392fc932b8b9 100644 --- a/packages/jest-haste-map/src/__tests__/index.test.js +++ b/packages/jest-haste-map/src/__tests__/index.test.js @@ -586,7 +586,7 @@ describe('HasteMap', () => { }); }); - it('correctly handles platform-specific file deletions (broken)', async () => { + it('correctly handles platform-specific file deletions', async () => { mockFs = Object.create(null); mockFs['/fruits/strawberry.js'] = [ '/**', @@ -613,8 +613,6 @@ describe('HasteMap', () => { ({__hasteMapForTest: data} = await new HasteMap(defaultConfig).build()); expect(data.map['Strawberry']).toEqual({ g: ['/fruits/strawberry.js', 0], - // FIXME: this file should NOT exist anymore! - ios: ['/fruits/strawberry.ios.js', 0], }); }); diff --git a/packages/jest-haste-map/src/index.js b/packages/jest-haste-map/src/index.js index 1b7d32323d9e..a5bcef728c7f 100644 --- a/packages/jest-haste-map/src/index.js +++ b/packages/jest-haste-map/src/index.js @@ -422,8 +422,18 @@ class HasteMap extends EventEmitter { if (fileMetadata[H.VISITED]) { if (!fileMetadata[H.ID]) { return null; - } else if (fileMetadata[H.ID] && moduleMetadata) { - map[fileMetadata[H.ID]] = moduleMetadata; + } + if (moduleMetadata != null) { + const platform = + getPlatformExtension(filePath, this._options.platforms) || + H.GENERIC_PLATFORM; + const module = moduleMetadata[platform]; + if (module == null) { + return null; + } + const modulesByPlatform = + map[fileMetadata[H.ID]] || (map[fileMetadata[H.ID]] = {}); + modulesByPlatform[platform] = module; return null; } } diff --git a/website/pages/en/videos.js b/website/pages/en/videos.js index 3253ed548944..b68d4c3f753c 100644 --- a/website/pages/en/videos.js +++ b/website/pages/en/videos.js @@ -36,7 +36,9 @@ class Videos extends React.Component { ({title, description, type, url}, index) => { const textMarkup = (