18d307f52SEvan Baconimport nock from 'nock';
28d307f52SEvan Bacon
38d307f52SEvan Baconimport { getExpoApiBaseUrl } from '../endpoint';
4*6079da0aSEvan Baconimport { getVersionsAsync } from '../getVersions';
58d307f52SEvan Bacon
68d307f52SEvan BaconbeforeAll(() => {
78d307f52SEvan Bacon  process.env.EXPO_NO_CACHE = 'true';
88d307f52SEvan Bacon});
98d307f52SEvan Bacon
108d307f52SEvan Bacondescribe(getVersionsAsync, () => {
118d307f52SEvan Bacon  it('gets versions', async () => {
128d307f52SEvan Bacon    const scope = nock(getExpoApiBaseUrl())
138d307f52SEvan Bacon      .get('/v2/versions/latest')
148d307f52SEvan Bacon      .reply(200, require('./fixtures/versions-latest.json'));
158d307f52SEvan Bacon    const versions = await getVersionsAsync();
168d307f52SEvan Bacon    expect(versions).toEqual(require('./fixtures/versions-latest.json').data);
178d307f52SEvan Bacon    expect(scope.isDone()).toBe(true);
188d307f52SEvan Bacon  });
198d307f52SEvan Bacon  it('fails when the servers are down', async () => {
208d307f52SEvan Bacon    const scope = nock(getExpoApiBaseUrl())
218d307f52SEvan Bacon      .get('/v2/versions/latest')
228d307f52SEvan Bacon      .reply(500, 'something went wrong');
238d307f52SEvan Bacon    await expect(getVersionsAsync()).rejects.toThrowError(/Expo server/);
248d307f52SEvan Bacon    expect(scope.isDone()).toBe(true);
258d307f52SEvan Bacon  });
268d307f52SEvan Bacon});
27