Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CI] Fix test_javascript Snapshot Test failure #19308

Closed
3 tasks done
hramos opened this issue May 16, 2018 · 16 comments
Closed
3 tasks done

[CI] Fix test_javascript Snapshot Test failure #19308

hramos opened this issue May 16, 2018 · 16 comments
Labels
JavaScript Resolution: Fixed A PR that fixes this issue has been merged. Resolution: Locked This issue was locked by the bot.

Comments

@hramos
Copy link
Contributor

hramos commented May 16, 2018

The test_javascript job started failing on master recently: https://circleci.com/gh/facebook/react-native/42926

This is due to failing snapshot tests, mostly in VirtualizedList (expand details below to see an example).

● VirtualizedList › handles nested lists
expect(value).toMatchSnapshot()

Received value does not match stored snapshot "VirtualizedList handles nested lists 1".

- Snapshot
+ Received

@@ -12,11 +12,10 @@
    disableVirtualization={false}
    getItem={[Function]}
    getItemCount={[Function]}
    horizontal={false}
    initialNumToRender={10}
-   invertStickyHeaders={undefined}
    keyExtractor={[Function]}
    maxToRenderPerBatch={10}
    onContentSizeChange={[Function]}
    onEndReachedThreshold={2}
    onLayout={[Function]}
@@ -49,11 +48,10 @@
          disableVirtualization={false}
          getItem={[Function]}
          getItemCount={[Function]}
          horizontal={false}
          initialNumToRender={10}
-         invertStickyHeaders={undefined}
          keyExtractor={[Function]}
          maxToRenderPerBatch={10}
          onContentSizeChange={[Function]}
          onEndReachedThreshold={2}
          onLayout={[Function]}
@@ -103,11 +101,10 @@
          disableVirtualization={false}
          getItem={[Function]}
          getItemCount={[Function]}
          horizontal={true}
          initialNumToRender={10}
-         invertStickyHeaders={undefined}
          keyExtractor={[Function]}
          maxToRenderPerBatch={10}
          onContentSizeChange={[Function]}
          onEndReachedThreshold={2}
          onLayout={[Function]}

  158 |       />,
  159 |     );
> 160 |     expect(component).toMatchSnapshot();
      |                       ^
  161 |   });
  162 | 
  163 |   it('returns the viewableItems correctly in the onViewableItemsChanged callback after changing the data', () => {
  
  at Object.<anonymous> (Libraries/Lists/__tests__/VirtualizedList-test.js:160:23)

This does not repro on a clean local checkout on my laptop, but after some investigation, I narrowed this down to Jest v23.0.0-charlie.2 being used in CI. While our own package.json specifies jest v23.0.0-charlie.1, the metro package v0.37 depends on jest v23.0.0-charlie.2 and thus this version wins out.

The test started failing once metro was bumped to v0.37 in 803afd8.

You can reproduce the failure locally by following the repro steps below.

Environment

CircleCI

Steps to Reproduce

  1. Checkout master
  2. yarn add --dev [email protected]
  3. yarn test

Expected Behavior

Tests should pass.

Actual Behavior

Snapshot tests fail due to non-matching snapshots.

@SimenB
Copy link
Contributor

SimenB commented May 22, 2018

Your failing test is due to jestjs/jest#6162

@hramos
Copy link
Contributor Author

hramos commented May 23, 2018

@SimenB thanks, seems safe to update these snapshots then. Landing in #19414

Still have one more failure to address:

$ JEST_JUNIT_OUTPUT="reports/junit/js-test-results.xml" jest --maxWorkers=2 --ci --testResultsProcessor="jest-junit"
 FAIL  Libraries/Animated/src/__tests__/AnimatedNative-test.js
  ● Native Animated › Animated Value › proxies `setValue` correctly

    TypeError: jest.genMockFunction is not a function

      82 |       c.refs = {
      83 |         node: {
    > 84 |           setNativeProps: jest.genMockFunction(),
         |                                ^
      85 |         },
      86 |       };
      87 | 

      at Object.<anonymous> (Libraries/Animated/src/__tests__/AnimatedNative-test.js:84:32)

@hramos
Copy link
Contributor Author

hramos commented May 23, 2018

Found your PR, jestjs/jest#6173 - I'll change these to jest.fn.

@hramos
Copy link
Contributor Author

hramos commented May 23, 2018

Now looking at:

Summary of all failing tests
 FAIL  Libraries/Animated/src/__tests__/Animated-test.js
  ● Animated tests › Animated › send toValue when an underdamped spring stops

    Ran 100000 timers, and there are still more! Assuming we've hit an infinite recursion and bailing out...

      140 |       anim.addListener(listener);
      141 |       Animated.spring(anim, {toValue: 15}).start();
    > 142 |       jest.runAllTimers();
          |            ^
      143 |       const lastValue =
      144 |         listener.mock.calls[listener.mock.calls.length - 2][0].value;
      145 |       expect(lastValue).not.toBe(15);

      at FakeTimers.runAllTimers (node_modules/jest-util/build/fake_timers.js:194:13)
      at Object.<anonymous> (Libraries/Animated/src/__tests__/Animated-test.js:142:12)

@SimenB
Copy link
Contributor

SimenB commented May 23, 2018

That last one I don't know, we haven't changed timers

@hramos
Copy link
Contributor Author

hramos commented May 23, 2018

Agree, seems unrelated. I'm just using this issue to track my progress getting back to green.

The snapshot update has not landed yet as it looks like we're still using 23.0.0-charlie.1 in the internal monorepo, and therefore the new snapshots cause the internal jest snapshot tests to fail.

I've started the process of updating the repo to charlie.2, but that seems like something that @brunotavares might already be planning to do. I'll see if we can just make sure the use of jest in OSS Circle CI matches the internal Sandcastle test behavior.

@SimenB
Copy link
Contributor

SimenB commented May 23, 2018

charlie.4 is the latest, fwiw. How you do things internally, I have no clue (although I might learn tomorrow! :D)

@hramos
Copy link
Contributor Author

hramos commented May 23, 2018

Bumping the version to charlie.4 is quite straightforward, but I'd need to codemod the rest of the codebase to handle the breaking change in jestjs/jest#6173 as well. Seeing @brunotavares has already done some of this work in another one of our internal repos, I'll let him or his team tackle this.

RN OSS is using [email protected] but from I recall, some charlie.2 and charlie.4 modules are getting pulled by Yarn. We use an offline repository internally where charlie.1 is the latest cached version, so we don't have this issue.

@hramos
Copy link
Contributor Author

hramos commented May 24, 2018

Jest 23 is now publicly available. I'll wait for our codebase to move to 23, at which point these should be resolved.

@hramos
Copy link
Contributor Author

hramos commented May 29, 2018

SHA-1 issue may be fixed by jestjs/jest#6264

Jest 23 has not yet been configured in the internal monorepo, issue should remain open.

@hramos
Copy link
Contributor Author

hramos commented May 29, 2018

We'll be updating our monorepo to 23.0.1 very soon - some breaking changes between the charlies and the official release prevent us from doing so yet, but it is being worked on.

@hramos
Copy link
Contributor Author

hramos commented May 30, 2018

Now that we're using 23.0.1, new failures have surfaced in test_javascript:

Summary of all failing tests FAIL local-cli/core/__tests__/android/getProjectConfig.spec.js ● android::getProjectConfig › returns `null` if manifest file hasn't been found
EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getProjectConfig.spec.js:21:8)

● android::getProjectConfig › returns null if manifest file hasn't been found

EINVAL: `/noManifest/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at projectConfigAndroid (local-cli/core/android/index.js:25:39)
  at Object.it (local-cli/core/__tests__/android/getProjectConfig.spec.js:44:12)

● android::getProjectConfig › returns an object with android project configuration for › nested structure

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getProjectConfig.spec.js:21:8)

● android::getProjectConfig › returns an object with android project configuration for › nested structure

EINVAL: `/nested/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at projectConfigAndroid (local-cli/core/android/index.js:25:39)
  at Object.it (local-cli/core/__tests__/android/getProjectConfig.spec.js:52:14)

● android::getProjectConfig › returns an object with android project configuration for › flat structure

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getProjectConfig.spec.js:21:8)

● android::getProjectConfig › returns an object with android project configuration for › flat structure

EINVAL: `/flat/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at projectConfigAndroid (local-cli/core/android/index.js:25:39)
  at Object.it (local-cli/core/__tests__/android/getProjectConfig.spec.js:60:14)

● android::getProjectConfig › returns an object with android project configuration for › multiple

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getProjectConfig.spec.js:21:8)

● android::getProjectConfig › returns an object with android project configuration for › multiple

EINVAL: `/multiple/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at projectConfigAndroid (local-cli/core/android/index.js:25:39)
  at Object.it (local-cli/core/__tests__/android/getProjectConfig.spec.js:70:14)

● android::getProjectConfig › should return null if android project was not found

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getProjectConfig.spec.js:21:8)

● android::getProjectConfig › should return null if android project was not found

EINVAL: `/empty/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at projectConfigAndroid (local-cli/core/android/index.js:25:39)
  at Object.it (local-cli/core/__tests__/android/getProjectConfig.spec.js:79:12)

FAIL local-cli/util/tests/findSymlinkedModules-test.js
● findSymlinksForProjectRoot › correctly finds normal module symlinks

EINVAL: `/root`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/util/__tests__/findSymlinkedModules-test.js:18:8)

● findSymlinksForProjectRoot › correctly finds scoped module symlinks

EINVAL: `/root`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/util/__tests__/findSymlinkedModules-test.js:59:8)

● findSymlinksForProjectRoot › correctly finds module symlinks within other module symlinks

EINVAL: `/root`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/util/__tests__/findSymlinkedModules-test.js:116:8)

● findSymlinksForProjectRoot › correctly handles duplicate symlink paths

EINVAL: `/root`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/util/__tests__/findSymlinkedModules-test.js:187:8)

● findSymlinksForProjectRoot › correctly handles symlink recursion

EINVAL: `/root`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/util/__tests__/findSymlinkedModules-test.js:254:8)

FAIL local-cli/core/tests/ios/findProject.spec.js
● ios::findProject › returns path to xcodeproj if found

EINVAL: `/android`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:22:8)

● ios::findProject › returns null if there are no projects

EINVAL: `/testDir`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:27:8)

● ios::findProject › returns ios project regardless of its name

EINVAL: `/ios`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:32:8)

● ios::findProject › ignores node_modules

EINVAL: `/node_modules`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:37:8)

● ios::findProject › ignores Pods

EINVAL: `/Pods`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:42:8)

● ios::findProject › ignores Pods inside ios folder

EINVAL: `/ios`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:47:8)

● ios::findProject › ignores xcodeproj from example folders

EINVAL: `/examples`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:57:8)

● ios::findProject › ignores xcodeproj from sample folders

EINVAL: `/samples`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:69:8)

● ios::findProject › ignores xcodeproj from test folders at any level

EINVAL: `/test`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findProject.spec.js:81:8)

FAIL local-cli/core/tests/android/findManifest.spec.js
● android::findManifest › returns a manifest path if file exists in the folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/findManifest.spec.js:21:8)

● android::findManifest › returns a manifest path if file exists in the folder

EINVAL: `/flat`: path is invalid because it cannot start with a separator

  20 |  */
  21 | module.exports = function findManifest(folder) {
> 22 |   const manifestPath = glob.sync(path.join('**', 'AndroidManifest.xml'), {
     |                             ^
  23 |     cwd: folder,
  24 |     ignore: ['node_modules/**', '**/build/**', 'Examples/**', 'examples/**'],
  25 |   })[0];

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findManifest (local-cli/core/android/findManifest.js:22:29)

● android::findManifest › returns null if there is no manifest in the folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/findManifest.spec.js:21:8)

● android::findManifest › returns null if there is no manifest in the folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  20 |  */
  21 | module.exports = function findManifest(folder) {
> 22 |   const manifestPath = glob.sync(path.join('**', 'AndroidManifest.xml'), {
     |                             ^
  23 |     cwd: folder,
  24 |     ignore: ['node_modules/**', '**/build/**', 'Examples/**', 'examples/**'],
  25 |   })[0];

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findManifest (local-cli/core/android/findManifest.js:22:29)

FAIL local-cli/core/tests/android/getDependencyConfig.spec.js
● android::getDependencyConfig › returns an object with android project configuration

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getDependencyConfig.spec.js:23:8)

● android::getDependencyConfig › returns an object with android project configuration

EINVAL: `/nested/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at dependencyConfigAndroid (local-cli/core/android/index.js:100:39)
  at Object.it (local-cli/core/__tests__/android/getDependencyConfig.spec.js:42:12)

● android::getDependencyConfig › returns null if manifest file has not been found

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getDependencyConfig.spec.js:23:8)

● android::getDependencyConfig › returns null if manifest file has not been found

EINVAL: `/empty/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at dependencyConfigAndroid (local-cli/core/android/index.js:100:39)
  at Object.it (local-cli/core/__tests__/android/getDependencyConfig.spec.js:47:12)

● android::getDependencyConfig › returns null if android project was not found

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getDependencyConfig.spec.js:23:8)

● android::getDependencyConfig › returns null if android project was not found

EINVAL: `/empty/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at dependencyConfigAndroid (local-cli/core/android/index.js:100:39)
  at Object.it (local-cli/core/__tests__/android/getDependencyConfig.spec.js:51:12)

● android::getDependencyConfig › returns null if android project does not contain ReactPackage

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getDependencyConfig.spec.js:23:8)

● android::getDependencyConfig › returns null if android project does not contain ReactPackage

EINVAL: `/noPackage/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at dependencyConfigAndroid (local-cli/core/android/index.js:100:39)
  at Object.it (local-cli/core/__tests__/android/getDependencyConfig.spec.js:55:12)

● android::getDependencyConfig › returns null if it cannot find a packageClassName

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/getDependencyConfig.spec.js:23:8)

● android::getDependencyConfig › returns null if it cannot find a packageClassName

EINVAL: `/corrupted/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at dependencyConfigAndroid (local-cli/core/android/index.js:100:39)
  at Object.it (local-cli/core/__tests__/android/getDependencyConfig.spec.js:59:12)

FAIL local-cli/core/tests/android/findAndroidAppFolder.spec.js
● android::findAndroidAppFolder › returns an android app folder if it exists in the given folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/findAndroidAppFolder.spec.js:21:8)

● android::findAndroidAppFolder › returns an android app folder if it exists in the given folder

EINVAL: `/flat/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at Object.it (local-cli/core/__tests__/android/findAndroidAppFolder.spec.js:35:12)

● android::findAndroidAppFolder › returns null if there is no android app folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/findAndroidAppFolder.spec.js:21:8)

● android::findAndroidAppFolder › returns null if there is no android app folder

EINVAL: `/empty/android/app`: path is invalid because it cannot start with a separator

  21 |   const nested = path.join('android', 'app');
  22 | 
> 23 |   if (fs.existsSync(path.join(folder, nested))) {
     |          ^
  24 |     return nested;
  25 |   }
  26 | 

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.existsSync.filePath [as existsSync] (node_modules/metro-memory-fs/src/index.js:508:14)
  at findAndroidAppFolder (local-cli/core/android/findAndroidAppFolder.js:23:10)
  at Object.it (local-cli/core/__tests__/android/findAndroidAppFolder.spec.js:40:12)

FAIL local-cli/core/tests/ios/getProjectConfig.spec.js
● ios::getProjectConfig › returns an object with ios project configuration

EINVAL: `/testDir`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeEach (local-cli/core/__tests__/ios/getProjectConfig.spec.js:23:8)

● ios::getProjectConfig › returns an object with ios project configuration

EINVAL: `/testDir/nested`: path is invalid because it cannot start with a separator

  43 | module.exports = function findProject(folder) {
  44 |   const projects = glob
> 45 |     .sync(GLOB_PATTERN, {
     |      ^
  46 |       cwd: folder,
  47 |       ignore: GLOB_EXCLUDE_PATTERN,
  48 |     })

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findProject (local-cli/core/ios/findProject.js:45:6)

● ios::getProjectConfig › returns null if ios project was not found

EINVAL: `/testDir`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeEach (local-cli/core/__tests__/ios/getProjectConfig.spec.js:23:8)

● ios::getProjectConfig › returns null if ios project was not found

EINVAL: `/testDir/empty`: path is invalid because it cannot start with a separator

  43 | module.exports = function findProject(folder) {
  44 |   const projects = glob
> 45 |     .sync(GLOB_PATTERN, {
     |      ^
  46 |       cwd: folder,
  47 |       ignore: GLOB_EXCLUDE_PATTERN,
  48 |     })

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findProject (local-cli/core/ios/findProject.js:45:6)

● ios::getProjectConfig › returns normalized shared library names

EINVAL: `/testDir`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeEach (local-cli/core/__tests__/ios/getProjectConfig.spec.js:23:8)

● ios::getProjectConfig › returns normalized shared library names

EINVAL: `/testDir/nested`: path is invalid because it cannot start with a separator

  43 | module.exports = function findProject(folder) {
  44 |   const projects = glob
> 45 |     .sync(GLOB_PATTERN, {
     |      ^
  46 |       cwd: folder,
  47 |       ignore: GLOB_EXCLUDE_PATTERN,
  48 |     })

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findProject (local-cli/core/ios/findProject.js:45:6)

FAIL local-cli/core/tests/ios/findPodspecName.spec.js
● ios::findPodspecName › returns null if there is not podspec file

EINVAL: `/android`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findPodspecName.spec.js:22:8)

● ios::findPodspecName › returns podspec name if only one exists

EINVAL: `/TestPod.podspec`: path is invalid because it cannot start with a separator

  23 |     const entPath = require('path').join(dirPath, entName);
  24 |     if (typeof ent === 'string' || ent instanceof Buffer) {
> 25 |       fs.writeFileSync(entPath, ent);
     |          ^
  26 |       continue;
  27 |     }
  28 |     if (typeof ent !== 'object') {

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs._open (node_modules/metro-memory-fs/src/index.js:702:10)
  at MemoryFs.writeFileSync (node_modules/metro-memory-fs/src/index.js:459:23)
  at mockDir (local-cli/__mocks__/fs.js:25:10)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findPodspecName.spec.js:27:8)

● ios::findPodspecName › returns podspec name that match packet directory

EINVAL: `/user`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findPodspecName.spec.js:32:8)

● ios::findPodspecName › returns first podspec name if not match in directory

EINVAL: `/user`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findPodspecName.spec.js:44:8)

FAIL local-cli/core/tests/android/readManifest.spec.js
● android::readManifest › returns manifest content if file exists in the folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/readManifest.spec.js:22:8)

● android::readManifest › returns manifest content if file exists in the folder

EINVAL: `/nested`: path is invalid because it cannot start with a separator

  20 |  */
  21 | module.exports = function findManifest(folder) {
> 22 |   const manifestPath = glob.sync(path.join('**', 'AndroidManifest.xml'), {
     |                             ^
  23 |     cwd: folder,
  24 |     ignore: ['node_modules/**', '**/build/**', 'Examples/**', 'examples/**'],
  25 |   })[0];

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findManifest (local-cli/core/android/findManifest.js:22:29)

● android::readManifest › throws an error if there is no manifest in the folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/readManifest.spec.js:22:8)

● android::readManifest › throws an error if there is no manifest in the folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  20 |  */
  21 | module.exports = function findManifest(folder) {
> 22 |   const manifestPath = glob.sync(path.join('**', 'AndroidManifest.xml'), {
     |                             ^
  23 |     cwd: folder,
  24 |     ignore: ['node_modules/**', '**/build/**', 'Examples/**', 'examples/**'],
  25 |   })[0];

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findManifest (local-cli/core/android/findManifest.js:22:29)

FAIL local-cli/core/tests/android/findPackageClassName.spec.js
● android::findPackageClassName › returns manifest content if file exists in the folder

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/findPackageClassName.spec.js:21:8)

● android::findPackageClassName › returns manifest content if file exists in the folder

EINVAL: `/flatJava`: path is invalid because it cannot start with a separator

  21 |  */
  22 | module.exports = function getPackageClassName(folder) {
> 23 |   const files = glob.sync('**/+(*.java|*.kt)', {cwd: folder});
     |                      ^
  24 | 
  25 |   const packages = files
  26 |     .map(filePath => fs.readFileSync(path.join(folder, filePath), 'utf8'))

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at getPackageClassName (local-cli/core/android/findPackageClassName.js:23:22)

● android::findPackageClassName › returns the name of the java class implementing ReactPackage

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/findPackageClassName.spec.js:21:8)

● android::findPackageClassName › returns the name of the java class implementing ReactPackage

EINVAL: `/flatJava`: path is invalid because it cannot start with a separator

  21 |  */
  22 | module.exports = function getPackageClassName(folder) {
> 23 |   const files = glob.sync('**/+(*.java|*.kt)', {cwd: folder});
     |                      ^
  24 | 
  25 |   const packages = files
  26 |     .map(filePath => fs.readFileSync(path.join(folder, filePath), 'utf8'))

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at getPackageClassName (local-cli/core/android/findPackageClassName.js:23:22)

● android::findPackageClassName › returns the name of the kotlin class implementing ReactPackage

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/findPackageClassName.spec.js:21:8)

● android::findPackageClassName › returns the name of the kotlin class implementing ReactPackage

EINVAL: `/flatKotlin`: path is invalid because it cannot start with a separator

  21 |  */
  22 | module.exports = function getPackageClassName(folder) {
> 23 |   const files = glob.sync('**/+(*.java|*.kt)', {cwd: folder});
     |                      ^
  24 | 
  25 |   const packages = files
  26 |     .map(filePath => fs.readFileSync(path.join(folder, filePath), 'utf8'))

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at getPackageClassName (local-cli/core/android/findPackageClassName.js:23:22)

● android::findPackageClassName › returns null if there are no matches

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeAll (local-cli/core/__tests__/android/findPackageClassName.spec.js:21:8)

● android::findPackageClassName › returns null if there are no matches

EINVAL: `/empty`: path is invalid because it cannot start with a separator

  21 |  */
  22 | module.exports = function getPackageClassName(folder) {
> 23 |   const files = glob.sync('**/+(*.java|*.kt)', {cwd: folder});
     |                      ^
  24 | 
  25 |   const packages = files
  26 |     .map(filePath => fs.readFileSync(path.join(folder, filePath), 'utf8'))

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at getPackageClassName (local-cli/core/android/findPackageClassName.js:23:22)

FAIL local-cli/core/tests/findAssets.spec.js
● findAssets › returns an array of all files in given folders

EINVAL: `/testDir`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeEach (local-cli/core/__tests__/findAssets.spec.js:21:8)

● findAssets › returns an array of all files in given folders

EINVAL: `/testDir/fonts`: path is invalid because it cannot start with a separator

  14 | 
  15 | const findAssetsInFolder = folder =>
> 16 |   glob.sync(path.join(folder, '**'), {nodir: true});
     |        ^
  17 | 
  18 | /**
  19 |  * Given an array of assets folders, e.g. ['Fonts', 'Images'],

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findAssetsInFolder (local-cli/core/findAssets.js:16:8)

● findAssets › prepends assets paths with the folder path

EINVAL: `/testDir`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeEach (local-cli/core/__tests__/findAssets.spec.js:21:8)

● findAssets › prepends assets paths with the folder path

EINVAL: `/testDir/fonts`: path is invalid because it cannot start with a separator

  14 | 
  15 | const findAssetsInFolder = folder =>
> 16 |   glob.sync(path.join(folder, '**'), {nodir: true});
     |        ^
  17 | 
  18 | /**
  19 |  * Given an array of assets folders, e.g. ['Fonts', 'Images'],

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.readdirSync (node_modules/metro-memory-fs/src/index.js:314:12)
  at GlobSync.Object.<anonymous>.GlobSync._readdir (node_modules/glob/sync.js:288:41)
  at GlobSync.Object.<anonymous>.GlobSync._processGlobStar (node_modules/glob/sync.js:350:22)
  at GlobSync.Object.<anonymous>.GlobSync._process (node_modules/glob/sync.js:130:10)
  at new GlobSync (node_modules/glob/sync.js:48:10)
  at Function.globSync [as sync] (node_modules/glob/sync.js:26:10)
  at findAssetsInFolder (local-cli/core/findAssets.js:16:8)

● findAssets › returns an empty array if given assets are null

EINVAL: `/testDir`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.beforeEach (local-cli/core/__tests__/findAssets.spec.js:21:8)

FAIL local-cli/core/tests/ios/findPodfilePath.spec.js
● ios::findPodfilePath › returns null if there is no Podfile

EINVAL: `/demoProject.xcodeproj`: path is invalid because it cannot start with a separator

  33 |       continue;
  34 |     }
> 35 |     fs.mkdirSync(entPath);
     |        ^
  36 |     mockDir(entPath, ent);
  37 |   }
  38 | }

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs.mkdirSync (node_modules/metro-memory-fs/src/index.js:472:12)
  at mockDir (local-cli/__mocks__/fs.js:35:8)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findPodfilePath.spec.js:22:8)

● ios::findPodfilePath › returns Podfile path if it exists

EINVAL: `/Podfile`: path is invalid because it cannot start with a separator

  23 |     const entPath = require('path').join(dirPath, entName);
  24 |     if (typeof ent === 'string' || ent instanceof Buffer) {
> 25 |       fs.writeFileSync(entPath, ent);
     |          ^
  26 |       continue;
  27 |     }
  28 |     if (typeof ent !== 'object') {

  at makeError (node_modules/metro-memory-fs/src/index.js:1196:15)
  at MemoryFs._parsePath (node_modules/metro-memory-fs/src/index.js:758:15)
  at MemoryFs._resolve (node_modules/metro-memory-fs/src/index.js:783:10)
  at MemoryFs._open (node_modules/metro-memory-fs/src/index.js:702:10)
  at MemoryFs.writeFileSync (node_modules/metro-memory-fs/src/index.js:459:23)
  at mockDir (local-cli/__mocks__/fs.js:25:10)
  at MemoryFs.setMockFilesystem [as __setMockFilesystem] (local-cli/__mocks__/fs.js:17:3)
  at Object.it (local-cli/core/__tests__/ios/findPodfilePath.spec.js:27:8)

Test Suites: 12 failed, 2 skipped, 88 passed, 100 of 102 total
Tests: 46 failed, 4 skipped, 503 passed, 553 total
Snapshots: 37 passed, 37 total
Time: 11.17s
Ran all test suites.

@hramos
Copy link
Contributor Author

hramos commented May 30, 2018

This appears to be caused by 2374147#diff-92a820d31d16eb53d84d5a4444407d39, as reverting that commit fixes the tests. Looking into how these tests can be fixed right now.

@hramos
Copy link
Contributor Author

hramos commented May 30, 2018

Fix incoming #19510

@hramos
Copy link
Contributor Author

hramos commented May 31, 2018

#19510 closed as this is not the correct fix. We're still blocked on these failing tests, and it's not clear why they're failing.

@hramos
Copy link
Contributor Author

hramos commented Jun 1, 2018

Fixed! Thanks @mjesun and @rafeca

@hramos hramos closed this as completed Jun 1, 2018
@hramos hramos added the Resolution: Fixed A PR that fixes this issue has been merged. label Jun 1, 2018
@facebook facebook locked as resolved and limited conversation to collaborators Jun 1, 2019
@react-native-bot react-native-bot added the Resolution: Locked This issue was locked by the bot. label Jun 1, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
JavaScript Resolution: Fixed A PR that fixes this issue has been merged. Resolution: Locked This issue was locked by the bot.
Projects
None yet
Development

No branches or pull requests

3 participants