Small Nest.js-based project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

46 lines
1.5 KiB

import { setTimeout as wait } from 'timers/promises';
import { Test, TestingModule } from '@nestjs/testing';
import { INestApplication } from '@nestjs/common';
import * as request from 'supertest';
import { AppModule } from './../src/app.module';
describe('AppController (e2e)', () => {
let app: INestApplication;
beforeEach(async () => {
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleFixture.createNestApplication();
await app.init();
});
afterEach(async () => {
await app.close();
});
it('stores a job for suricrasia.online and completes it', async () => {
const supertest = request(app.getHttpServer());
const jobCreateResponse = await supertest
.post('/screenshots')
.send({ pageUrl: 'https://suricrasia.online', imageType: 'png' });
expect(jobCreateResponse.status).toEqual(201);
expect(jobCreateResponse.body.jobId).toBeDefined();
const jobId = jobCreateResponse.body.jobId;
await wait(5000);
const jobStatusResponse = await supertest.get(`/screenshots/${jobId}`);
expect(jobStatusResponse.status).toEqual(200);
expect(jobStatusResponse.body.status).toBeDefined();
expect(jobStatusResponse.body.status).toEqual('completed');
const jobResultResponse = await supertest.get(
`/screenshots/${jobId}/result`,
);
expect(jobResultResponse.status).toEqual(200);
expect(jobResultResponse.body).toMatchImageSnapshot();
}, 10000);
});