コード例 #1
0
    it('should work for the simple case', () => {
      const server = new AssetServer({
        projectRoots: ['/root'],
        assetExts: ['png'],
        fileWatcher,
      });

      fs.__setMockFilesystem({
        'root': {
          imgs: {
            'b.png': 'b image',
            'b@2x.png': 'b2 image',
          }
        }
      });

      return Promise.all([
        server.get('imgs/b.png'),
        server.get('imgs/b@1x.png'),
      ]).then(resp =>
        resp.forEach(data =>
          expect(data).toBe('b image')
        )
      );
    });
コード例 #2
0
    it('should get assetData for non-png images', () => {
      const server = new AssetServer({
        projectRoots: ['/root'],
        assetExts: ['png', 'jpeg'],
        fileWatcher,
      });

      fs.__setMockFilesystem({
        'root': {
          imgs: {
            'b@1x.jpg': 'b1 image',
            'b@2x.jpg': 'b2 image',
            'b@4x.jpg': 'b4 image',
            'b@4.5x.jpg': 'b4.5 image',
          }
        }
      });

      return server.getAssetData('imgs/b.jpg').then(data => {
        expect(data).toEqual(objectContaining({
          type: 'jpg',
          name: 'b',
          scales: [1, 2, 4, 4.5],
          files: [
            '/root/imgs/b@1x.jpg',
            '/root/imgs/b@2x.jpg',
            '/root/imgs/b@4x.jpg',
            '/root/imgs/b@4.5x.jpg',
          ],
        }));
      });
    });
コード例 #3
0
ファイル: AssetServer-test.js プロジェクト: 13hoop/toutiao
    pit('should support multiple project roots', () => {
      const server = new AssetServer({
        projectRoots: ['/root', '/root2'],
        assetExts: ['png'],
      });

      fs.__setMockFilesystem({
        'root': {
          imgs: {
            'b.png': 'b image',
          },
        },
        'root2': {
          'newImages': {
            'imgs': {
              'b@1x.png': 'b1 image',
            },
          },
        },
      });

      return server.get('newImages/imgs/b.png').then(data =>
        expect(data).toBe('b1 image')
      );
    });
コード例 #4
0
ファイル: AssetServer-test.js プロジェクト: 13hoop/toutiao
    pit('should work for the simple case with platform ext', () => {
      const server = new AssetServer({
        projectRoots: ['/root'],
        assetExts: ['png'],
      });

      fs.__setMockFilesystem({
        'root': {
          imgs: {
            'b.ios.png': 'b ios image',
            'b.android.png': 'b android image',
            'c.png': 'c general image',
            'c.android.png': 'c android image',
          }
        }
      });

      return Promise.all([
        server.get('imgs/b.png', 'ios').then(
          data => expect(data).toBe('b ios image')
        ),
        server.get('imgs/b.png', 'android').then(
          data => expect(data).toBe('b android image')
        ),
        server.get('imgs/c.png', 'android').then(
          data => expect(data).toBe('c android image')
        ),
        server.get('imgs/c.png', 'ios').then(
          data => expect(data).toBe('c general image')
        ),
        server.get('imgs/c.png').then(
          data => expect(data).toBe('c general image')
        ),
      ]);
    });
コード例 #5
0
ファイル: AssetServer-test.js プロジェクト: 13hoop/toutiao
    pit('should pick the bigger one with platform ext', () => {
      const server = new AssetServer({
        projectRoots: ['/root'],
        assetExts: ['png'],
      });

      fs.__setMockFilesystem({
        'root': {
          imgs: {
            'b@1x.png': 'b1 image',
            'b@2x.png': 'b2 image',
            'b@4x.png': 'b4 image',
            'b@4.5x.png': 'b4.5 image',
            'b@1x.ios.png': 'b1 ios image',
            'b@2x.ios.png': 'b2 ios image',
            'b@4x.ios.png': 'b4 ios image',
            'b@4.5x.ios.png': 'b4.5 ios image',
          }
        }
      });

      return Promise.all([
        server.get('imgs/b@3x.png').then(data =>
          expect(data).toBe('b4 image')
        ),
        server.get('imgs/b@3x.png', 'ios').then(data =>
          expect(data).toBe('b4 ios image')
        ),
      ]);
    });
コード例 #6
0
ファイル: AssetServer-test.js プロジェクト: 13hoop/toutiao
    pit('should work for the simple case with jpg', () => {
      const server = new AssetServer({
        projectRoots: ['/root'],
        assetExts: ['png', 'jpg'],
      });

      fs.__setMockFilesystem({
        'root': {
          imgs: {
            'b.png': 'png image',
            'b.jpg': 'jpeg image',
          }
        }
      });

      return Promise.all([
        server.get('imgs/b.jpg'),
        server.get('imgs/b.png'),
      ]).then(data =>
        expect(data).toEqual([
          'jpeg image',
          'png image',
        ])
      );
    });
コード例 #7
0
ファイル: Module-test.js プロジェクト: 309746069/react-native
    pit('should parse single quoted dependencies', () => {
      fs.__setMockFilesystem({
        'root': {
          'index.js': 'System.import(\'dep1\')',
        }
      });

      return expectAsyncDependenciesToEqual([['dep1']]);
    });
コード例 #8
0
ファイル: Module-test.js プロジェクト: 309746069/react-native
    pit('should recognize single dependency', () => {
      fs.__setMockFilesystem({
        'root': {
          'index.js': 'System.import("dep1")',
        }
      });

      return expectAsyncDependenciesToEqual([['dep1']]);
    });
コード例 #9
0
 it('ignores Pods inside `ios` folder', () => {
   fs.__setMockFilesystem({
     ios: {
       Pods: projects.flat,
       DemoApp: projects.flat.ios,
     },
   });
   expect(findProject('/')).toBe('ios/DemoApp/demoProject.xcodeproj');
 });
コード例 #10
0
ファイル: Module-test.js プロジェクト: 309746069/react-native
    pit('parse fine new lines', () => {
      fs.__setMockFilesystem({
        'root': {
          'index.js': 'System.import(\n"dep1"\n)',
        }
      });

      return expectAsyncDependenciesToEqual([['dep1']]);
    });
コード例 #11
0
  it('correctly finds scoped module symlinks', () => {
    fs.__setMockFilesystem({
      root: {
        projectA: {
          'package.json': JSON.stringify({
            name: 'projectA',
            main: 'main.js',
          }),
          node_modules: {
            depFoo: {
              'package.json': JSON.stringify({
                name: 'depFoo',
                main: 'main.js',
              }),
            },
            '@scoped': {
              projectC: {
                SYMLINK: '/root/@scoped/projectC',
              },
            },
            projectB: {
              SYMLINK: '/root/projectB',
            },
          },
        },
        projectB: {
          'package.json': JSON.stringify({
            name: 'projectB',
            main: 'main.js',
          }),
          node_modules: {
            depBar: {
              'package.json': JSON.stringify({
                name: 'depBar',
                main: 'main.js',
              }),
            },
          },
        },
        '@scoped': {
          projectC: {
            'package.json': JSON.stringify({
              name: '@scoped/projectC',
              main: 'main.js',
            }),
          },
        },
      },
    });

    const symlinkedModules = findSymlinkedModules('/root/projectA', []);
    expect(symlinkedModules).toEqual([
      '/root/@scoped/projectC',
      '/root/projectB',
    ]);
  });
コード例 #12
0
 beforeAll(() => {
   fs.__setMockFilesystem({
     empty: {},
     nested: {
       android: {
         app: mocks.valid,
       },
     },
   });
 });
コード例 #13
0
  it('ignores xcodeproj from sample folders', () => {
    fs.__setMockFilesystem({
      samples: projects.flat,
      Samples: projects.flat,
      sample: projects.flat,
      KeychainSample: projects.flat,
      Zpp: projects.flat,
    });

    expect(findProject('/').toLowerCase()).not.toContain('sample');
  });
コード例 #14
0
 it('returns podspec name that match packet directory', () => {
   fs.__setMockFilesystem({
     user: {
       PacketName: {
         'Another.podspec': 'empty',
         'PacketName.podspec': 'empty'
       }
     }
   });
   expect(findPodspecName('/user/PacketName')).toBe('PacketName');
 });
コード例 #15
0
 it('returns first podspec name if not match in directory', () => {
   fs.__setMockFilesystem({
     user: {
       packet: {
         'Another.podspec': 'empty',
         'PacketName.podspec': 'empty'
       }
     }
   });
   expect(findPodspecName('/user/packet')).toBe('Another');
 });
コード例 #16
0
  it('ignores xcodeproj from test folders at any level', () => {
    fs.__setMockFilesystem({
      test: projects.flat,
      IntegrationTests: projects.flat,
      tests: projects.flat,
      Zpp: {
        tests: projects.flat,
        src: projects.flat,
      },
    });

    expect(findProject('/').toLowerCase()).not.toContain('test');
  });
コード例 #17
0
ファイル: Module-test.js プロジェクト: DeviL1121/iOS-1
    pit('uses custom require extractors if specified', () => {
      fs.__setMockFilesystem({
        'root': {
          'index.js': '',
        },
      });

      return createModuleWithExtractor(
        code => ({deps: {sync: ['foo', 'bar']}})
      ).then(module =>
        module.getDependencies().then(actual =>
          expect(actual).toEqual(['foo', 'bar'])
        )
      );
    });
コード例 #18
0
ファイル: Module-test.js プロジェクト: 309746069/react-native
    pit('should parse multiple async dependencies on the same module', () => {
      fs.__setMockFilesystem({
        'root': {
          'index.js': [
            'System.import("dep1")',
            'System.import("dep2")',
          ].join('\n'),
        }
      });

      return expectAsyncDependenciesToEqual([
        ['dep1'],
        ['dep2'],
      ]);
    });
コード例 #19
0
      beforeEach(() => {
        server = new AssetServer({
          projectRoots: ['/root'],
          assetExts: ['jpg'],
        });

        mockFS = {
          'root': {
            imgs: {
              'b@1x.jpg': 'b1 image',
              'b@2x.jpg': 'b2 image',
              'b@4x.jpg': 'b4 image',
              'b@4.5x.jpg': 'b4.5 image',
            }
          }
        };

       fs.__setMockFilesystem(mockFS);
      });
コード例 #20
0
ファイル: AssetServer-test.js プロジェクト: 13hoop/toutiao
    pit('should get assetData for non-png images', () => {
      const hash = {
        update: jest.genMockFn(),
        digest: jest.genMockFn(),
      };

      hash.digest.mockImpl(() => 'wow such hash');
      crypto.createHash.mockImpl(() => hash);

      const server = new AssetServer({
        projectRoots: ['/root'],
        assetExts: ['png', 'jpeg'],
      });

      fs.__setMockFilesystem({
        'root': {
          imgs: {
            'b@1x.jpg': 'b1 image',
            'b@2x.jpg': 'b2 image',
            'b@4x.jpg': 'b4 image',
            'b@4.5x.jpg': 'b4.5 image',
          }
        }
      });

      return server.getAssetData('imgs/b.jpg').then(data => {
        expect(hash.update.mock.calls.length).toBe(4);
        expect(data).toEqual({
          type: 'jpg',
          name: 'b',
          scales: [1, 2, 4, 4.5],
          files: [
            '/root/imgs/b@1x.jpg',
            '/root/imgs/b@2x.jpg',
            '/root/imgs/b@4x.jpg',
            '/root/imgs/b@4.5x.jpg',
          ],
          hash: 'wow such hash',
        });
      });
    });
コード例 #21
0
ファイル: AssetServer-test.js プロジェクト: 13hoop/toutiao
    pit('should pick the bigger one', () => {
      const server = new AssetServer({
        projectRoots: ['/root'],
        assetExts: ['png'],
      });

      fs.__setMockFilesystem({
        'root': {
          imgs: {
            'b@1x.png': 'b1 image',
            'b@2x.png': 'b2 image',
            'b@4x.png': 'b4 image',
            'b@4.5x.png': 'b4.5 image',
          }
        }
      });

      return server.get('imgs/b@3x.png').then(data =>
        expect(data).toBe('b4 image')
      );
    });
コード例 #22
0
 it('returns path to xcodeproj if found', () => {
   fs.__setMockFilesystem(projects.flat);
   expect(findProject('/')).not.toBeNull();
 });
コード例 #23
0
 it('returns podspec name if only one exists', () => {
   fs.__setMockFilesystem(ios.pod);
   expect(findPodspecName('/')).toBe('TestPod');
 });
コード例 #24
0
 it('returns null if there is no Podfile', () => {
   fs.__setMockFilesystem(ios.valid);
   expect(findPodfilePath('')).toBeNull();
 });
コード例 #25
0
 it('returns Podfile path if it exists', () => {
   fs.__setMockFilesystem(projects.withPods);
   expect(findPodfilePath('/ios')).toContain('Podfile');
 });
コード例 #26
0
 it('returns ios project regardless of its name', () => {
   fs.__setMockFilesystem({ios: ios.validTestName});
   expect(findProject('/')).not.toBeNull();
 });
コード例 #27
0
 it('ignores node_modules', () => {
   fs.__setMockFilesystem({node_modules: projects.flat});
   expect(findProject('/')).toBeNull();
 });
コード例 #28
0
 it('ignores Pods', () => {
   fs.__setMockFilesystem({Pods: projects.flat});
   expect(findProject('/')).toBeNull();
 });
コード例 #29
0
 function setMockFilesystem(mockFs) {
   fs.__setMockFilesystem(Object.assign(mockFs, baseFs));
 }
コード例 #30
0
 it('returns null if there are no projects', () => {
   fs.__setMockFilesystem({testDir: projects});
   expect(findProject('/')).toBeNull();
 });