import { Server } from 'http'; import { OK } from 'http-status-codes'; import manifest from '@manifest'; // import { runServer } from '../../../server'; import { runServer } from '@adapters'; import axios from 'axios'; const { SERVER_HOST, SERVER_PORT, MANIFEST_ROUTE } = process.env; const host = SERVER_HOST.concat(':', SERVER_PORT); describe('[ADAPTERS] - Express server', () => { let server: Server; beforeAll(() => { server = runServer(parseInt(SERVER_PORT, 10)); }); afterAll(() => { server.close(); }); describe(`[GET] ${MANIFEST_ROUTE} endpoint`, () => { const manifestUrl = host.concat(MANIFEST_ROUTE); test('must return the current manifest content successfully', async (done) => { let obtainedError = null; try { const result = await axios.get(manifestUrl); const { data, status } = result; expect(data).not.toBeUndefined(); expect(data).not.toBeNull(); expect(data).not.toEqual({}); expect(status).toBe(OK); expect(data).toHaveProperty('name'); expect(data.name).toBe(manifest.name); expect(data).toHaveProperty('version'); expect(data.version).toBe(manifest.version); expect(data).toHaveProperty('timestamp'); expect(data.timestamp).toBe(manifest.timestamp); expect(data).toHaveProperty('scm'); expect(data.scm).toHaveProperty('remote'); expect(data.scm.remote).toBe(manifest.scm.remote); expect(data.scm).toHaveProperty('branch'); expect(data.scm.branch).toBe(manifest.scm.branch); expect(data.scm).toHaveProperty('commit'); expect(data.scm.commit).toBe(manifest.scm.commit); } catch (error) { obtainedError = { ...error }; expect(obtainedError).toBeNull(); } finally { done(); } }); }); });