1import { ExpoConfig } from '@expo/config';
2
3import { resolveMetroVersionFromProject } from '../../../start/server/metro/resolveFromProject';
4import { getMetroDebugProperties } from '../getMetroDebugProperties';
5
6jest.mock('../rudderstackClient');
7jest.mock('../../../start/server/metro/resolveFromProject');
8
9const fakeExpoConfig = {
10  sdkVersion: '47.0.0',
11  jsEngine: 'hermes',
12} as ExpoConfig;
13
14describe(getMetroDebugProperties, () => {
15  it('returns expo sdk and metro versions', () => {
16    jest.mocked(resolveMetroVersionFromProject).mockReturnValue('1.33.7');
17
18    const debugTool = { name: 'flipper', version: '4.2.0' };
19    const properties = getMetroDebugProperties('/fake-project', fakeExpoConfig, debugTool);
20
21    expect(properties).toMatchObject({
22      sdkVersion: fakeExpoConfig.sdkVersion,
23      metroVersion: '1.33.7',
24    });
25  });
26
27  it('returns the debug tool', () => {
28    const debugTool = { name: 'flipper', version: '4.2.0' };
29    const properties = getMetroDebugProperties('/fake-project', fakeExpoConfig, debugTool);
30
31    expect(properties).toMatchObject({
32      toolName: debugTool.name,
33      toolVersion: debugTool.version,
34    });
35  });
36});
37