1import { vol } from 'memfs';
2
3import { getRewriteRequestUrl } from '../rewriteRequestUrl';
4
5describe(getRewriteRequestUrl, () => {
6  afterEach(() => vol.reset());
7
8  it(`rewrites expo request paths to entry point`, () => {
9    vol.fromJSON(
10      {
11        'package.json': JSON.stringify({ name: 'hey' }),
12        'index.js': 'console.log("lol")',
13      },
14      '/'
15    );
16
17    const rewrite = getRewriteRequestUrl('/');
18
19    expect(
20      rewrite(
21        '/.expo/.virtual-metro-entry.bundle?platform=ios&dev=true&minify=false&modulesOnly=false&runModule=true&app=com.bacon.test-custom-entry'
22      )
23    ).toBe(
24      '/index.bundle?platform=ios&dev=true&minify=false&modulesOnly=false&runModule=true&app=com.bacon.test-custom-entry'
25    );
26  });
27
28  it('rewrites expo request urls to entry point, with host and port', () => {
29    vol.fromJSON(
30      {
31        'package.json': JSON.stringify({ name: 'hey' }),
32        'index.js': 'console.log("lol")',
33      },
34      '/'
35    );
36
37    const rewrite = getRewriteRequestUrl('/');
38
39    expect(
40      rewrite(
41        'http://127.0.0.1:8081/.expo/.virtual-metro-entry.bundle?platform=ios&dev=true&minify=false&modulesOnly=false&runModule=true&app=com.bacon.test-custom-entry'
42      )
43    ).toBe(
44      'http://127.0.0.1:8081/index.bundle?platform=ios&dev=true&minify=false&modulesOnly=false&runModule=true&app=com.bacon.test-custom-entry'
45    );
46  });
47});
48