1import nock from 'nock';
2
3import { getExpoApiBaseUrl } from '../endpoint';
4import { getProjectDevelopmentCertificateAsync } from '../getProjectDevelopmentCertificate';
5
6jest.mock('../user/actions', () => ({
7  ensureLoggedInAsync: jest.fn(),
8}));
9
10beforeAll(() => {
11  process.env.EXPO_NO_CACHE = 'true';
12});
13
14describe(getProjectDevelopmentCertificateAsync, () => {
15  it('gets project development certificate', async () => {
16    const scope = nock(getExpoApiBaseUrl())
17      .post('/v2/projects/4254c843-457a-4a6e-9b21-1506dc175ba4/development-certificates')
18      .reply(200, 'hello');
19    const cert = await getProjectDevelopmentCertificateAsync(
20      '4254c843-457a-4a6e-9b21-1506dc175ba4',
21      'csr'
22    );
23    expect(cert).toBe('hello');
24    expect(scope.isDone()).toBe(true);
25  });
26  it('fails when the servers are down', async () => {
27    const scope = nock(getExpoApiBaseUrl())
28      .post('/v2/projects/123/development-certificates')
29      .reply(500, 'something went wrong');
30    await expect(getProjectDevelopmentCertificateAsync('123', 'csr')).rejects.toThrowError(
31      /Expo server/
32    );
33    expect(scope.isDone()).toBe(true);
34  });
35});
36