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