18d307f52SEvan Baconimport nock from 'nock'; 28d307f52SEvan Bacon 38d307f52SEvan Baconimport { getExpoApiBaseUrl } from '../endpoint'; 4*edc92349SJuwan Wheatleyimport { 5*edc92349SJuwan Wheatley updateDevelopmentSessionAsync, 6*edc92349SJuwan Wheatley closeDevelopmentSessionAsync, 7*edc92349SJuwan Wheatley} from '../updateDevelopmentSession'; 88d307f52SEvan Bacon 98d307f52SEvan Bacondescribe(updateDevelopmentSessionAsync, () => { 108d307f52SEvan Bacon it('update development session', async () => { 118d307f52SEvan Bacon const scope = nock(getExpoApiBaseUrl()) 128d307f52SEvan Bacon .post('/v2/development-sessions/notify-alive?deviceId=123') 138d307f52SEvan Bacon .reply(200, require('./fixtures/native-modules/44.0.0.json')); 148d307f52SEvan Bacon await updateDevelopmentSessionAsync({ 158d307f52SEvan Bacon deviceIds: ['123'], 168d307f52SEvan Bacon exp: { 178d307f52SEvan Bacon name: 'Test', 188d307f52SEvan Bacon description: 'Test', 198d307f52SEvan Bacon slug: 'test', 208d307f52SEvan Bacon primaryColor: '#ffffff', 218d307f52SEvan Bacon }, 228d307f52SEvan Bacon runtime: 'native', 23*edc92349SJuwan Wheatley url: 'exp://192.168.1.69:19001', 248d307f52SEvan Bacon }); 258d307f52SEvan Bacon 268d307f52SEvan Bacon expect(scope.isDone()).toBe(true); 278d307f52SEvan Bacon }); 288d307f52SEvan Bacon it('fails when the servers are down', async () => { 298d307f52SEvan Bacon const scope = nock(getExpoApiBaseUrl()) 308d307f52SEvan Bacon .post('/v2/development-sessions/notify-alive?deviceId=123') 318d307f52SEvan Bacon .reply(500, 'something went wrong'); 328d307f52SEvan Bacon await expect( 338d307f52SEvan Bacon updateDevelopmentSessionAsync({ 348d307f52SEvan Bacon deviceIds: ['123'], 358d307f52SEvan Bacon exp: { 368d307f52SEvan Bacon name: 'Test', 378d307f52SEvan Bacon description: 'Test', 388d307f52SEvan Bacon slug: 'test', 398d307f52SEvan Bacon primaryColor: '#ffffff', 408d307f52SEvan Bacon }, 418d307f52SEvan Bacon runtime: 'native', 42*edc92349SJuwan Wheatley url: 'exp://192.168.1.69:19001', 43*edc92349SJuwan Wheatley }) 44*edc92349SJuwan Wheatley ).rejects.toThrowError(/Expo server/); 45*edc92349SJuwan Wheatley expect(scope.isDone()).toBe(true); 46*edc92349SJuwan Wheatley }); 47*edc92349SJuwan Wheatley}); 48*edc92349SJuwan Wheatley 49*edc92349SJuwan Wheatleydescribe(closeDevelopmentSessionAsync, () => { 50*edc92349SJuwan Wheatley it('close development session', async () => { 51*edc92349SJuwan Wheatley const scope = nock(getExpoApiBaseUrl()) 52*edc92349SJuwan Wheatley .post('/v2/development-sessions/notify-close?deviceId=123') 53*edc92349SJuwan Wheatley .reply(200, { 54*edc92349SJuwan Wheatley data: { 55*edc92349SJuwan Wheatley deleted: [ 56*edc92349SJuwan Wheatley { 57*edc92349SJuwan Wheatley username: 'fiberjw', 58*edc92349SJuwan Wheatley session: { 59*edc92349SJuwan Wheatley description: 'Goodweebs on Juwans-MacBook-Pro.local', 60*edc92349SJuwan Wheatley source: 'desktop', 61*edc92349SJuwan Wheatley url: 'exp://192.168.1.69:19001', 62*edc92349SJuwan Wheatley }, 63*edc92349SJuwan Wheatley }, 64*edc92349SJuwan Wheatley ], 65*edc92349SJuwan Wheatley }, 66*edc92349SJuwan Wheatley }); 67*edc92349SJuwan Wheatley await closeDevelopmentSessionAsync({ 68*edc92349SJuwan Wheatley deviceIds: ['123'], 69*edc92349SJuwan Wheatley url: 'exp://192.168.1.69:19001', 70*edc92349SJuwan Wheatley }); 71*edc92349SJuwan Wheatley 72*edc92349SJuwan Wheatley expect(scope.isDone()).toBe(true); 73*edc92349SJuwan Wheatley }); 74*edc92349SJuwan Wheatley it('fails when the servers are down', async () => { 75*edc92349SJuwan Wheatley const scope = nock(getExpoApiBaseUrl()) 76*edc92349SJuwan Wheatley .post('/v2/development-sessions/notify-close?deviceId=123') 77*edc92349SJuwan Wheatley .reply(500, 'something went wrong'); 78*edc92349SJuwan Wheatley await expect( 79*edc92349SJuwan Wheatley closeDevelopmentSessionAsync({ 80*edc92349SJuwan Wheatley deviceIds: ['123'], 81*edc92349SJuwan Wheatley url: 'exp://192.168.1.69:19001', 828d307f52SEvan Bacon }) 838d307f52SEvan Bacon ).rejects.toThrowError(/Expo server/); 848d307f52SEvan Bacon expect(scope.isDone()).toBe(true); 858d307f52SEvan Bacon }); 868d307f52SEvan Bacon}); 87