Skip to content

Commit f6e0b34

Browse files
committed
tests are fixed
1 parent e8902ec commit f6e0b34

File tree

7 files changed

+44
-36
lines changed

7 files changed

+44
-36
lines changed

src/builds/builds.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { BuildsController } from './builds.controller';
44
import { UsersModule } from '../users/users.module';
55
import { PrismaService } from '../prisma/prisma.service';
66
import { TestRunsModule } from '../test-runs/test-runs.module';
7-
import { EventsGateway } from 'src/events/events.gateway';
7+
import { EventsGateway } from '../events/events.gateway';
88

99
@Module({
1010
imports: [UsersModule, TestRunsModule],

src/builds/builds.service.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@ import { Test, TestingModule } from '@nestjs/testing';
22
import { BuildsService } from './builds.service';
33
import { PrismaService } from '../prisma/prisma.service';
44
import { TestRunsService } from '../test-runs/test-runs.service';
5+
import { EventsGateway } from '../events/events.gateway';
56

67
describe('BuildsService', () => {
78
let service: BuildsService;
89

910
beforeEach(async () => {
1011
const module: TestingModule = await Test.createTestingModule({
11-
providers: [BuildsService,
12+
providers: [
13+
BuildsService,
1214
{ provide: PrismaService, useValue: {} },
1315
{ provide: TestRunsService, useValue: {} },
16+
{ provide: EventsGateway, useValue: {} },
1417
],
1518
}).compile();
1619

src/builds/builds.service.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { CreateBuildDto } from './dto/build-create.dto';
33
import { PrismaService } from '../prisma/prisma.service';
44
import { Build } from '@prisma/client';
55
import { TestRunsService } from '../test-runs/test-runs.service';
6-
import { EventsGateway } from 'src/events/events.gateway';
6+
import { EventsGateway } from '../events/events.gateway';
77
import { BuildDto } from './dto/build.dto';
88

99
@Injectable()
@@ -14,17 +14,6 @@ export class BuildsService {
1414
private eventsGateway: EventsGateway
1515
) {}
1616

17-
async findOne(projectId: string): Promise<BuildDto> {
18-
const build = await this.prismaService.build.findOne({
19-
where: { id: projectId },
20-
include: {
21-
testRuns: true,
22-
},
23-
});
24-
25-
return new BuildDto(build);
26-
}
27-
2817
async findMany(projectId: string): Promise<BuildDto[]> {
2918
const buildList = await this.prismaService.build.findMany({
3019
where: { projectId },
@@ -51,7 +40,7 @@ export class BuildsService {
5140
testRuns: true,
5241
},
5342
});
54-
const buildDto = new BuildDto(build)
43+
const buildDto = new BuildDto(build);
5544
this.eventsGateway.buildCreated(buildDto);
5645
return buildDto;
5746
}

src/events/events.gateway.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
1-
import {
2-
SubscribeMessage,
3-
WebSocketGateway,
4-
MessageBody,
5-
ConnectedSocket,
6-
WebSocketServer,
7-
WsResponse,
8-
} from '@nestjs/websockets';
9-
import { Socket, Server } from 'socket.io';
1+
import { WebSocketGateway, WebSocketServer } from '@nestjs/websockets';
2+
import { Server } from 'socket.io';
103
import { TestRun } from '@prisma/client';
11-
import { BuildDto } from 'src/builds/dto/build.dto';
4+
import { BuildDto } from '../builds/dto/build.dto';
125

136
@WebSocketGateway(4201)
147
export class EventsGateway {

src/test-runs/test-runs.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { TestRunsService } from './test-runs.service';
33
import { SharedModule } from '../shared/shared.module';
44
import { PrismaService } from '../prisma/prisma.service';
55
import { TestRunsController } from './test-runs.controller';
6-
import { EventsGateway } from 'src/events/events.gateway';
6+
import { EventsGateway } from '../events/events.gateway';
77

88
@Module({
99
imports: [SharedModule],

src/test-runs/test-runs.service.spec.ts

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import { TestRunsService } from './test-runs.service';
44
import { PrismaService } from '../prisma/prisma.service';
55
import { StaticService } from '../shared/static/static.service';
66
import { PNG } from 'pngjs';
7-
import { TestStatus, TestRun } from '@prisma/client';
7+
import { TestStatus } from '@prisma/client';
88
import Pixelmatch from 'pixelmatch';
9-
import { CreateTestRequestDto } from 'src/test/dto/create-test-request.dto';
9+
import { CreateTestRequestDto } from '../test/dto/create-test-request.dto';
1010
import { DiffResult } from './diffResult';
11-
import { IgnoreAreaDto } from 'src/test/dto/ignore-area.dto';
11+
import { IgnoreAreaDto } from '../test/dto/ignore-area.dto';
12+
import { EventsGateway } from '../events/events.gateway';
1213

1314
jest.mock('pixelmatch');
1415

@@ -21,6 +22,7 @@ const initService = async ({
2122
getImageMock = jest.fn(),
2223
saveImageMock = jest.fn(),
2324
deleteImageMock = jest.fn(),
25+
eventNewTestRunMock = jest.fn(),
2426
}) => {
2527
const module: TestingModule = await Test.createTestingModule({
2628
providers: [
@@ -45,6 +47,12 @@ const initService = async ({
4547
deleteImage: deleteImageMock,
4648
},
4749
},
50+
{
51+
provide: EventsGateway,
52+
useValue: {
53+
newTestRun: eventNewTestRunMock,
54+
},
55+
},
4856
],
4957
}).compile();
5058

@@ -159,6 +167,15 @@ describe('TestRunsService', () => {
159167
device: 'device',
160168
diffTollerancePercent: 1,
161169
};
170+
const testRunWithResult = {
171+
id: 'id',
172+
imageName: 'imageName',
173+
baselineName: 'baselineName',
174+
diffTollerancePercent: 1,
175+
ignoreAreas: '[]',
176+
diffName: 'diffName',
177+
status: TestStatus.unresolved,
178+
};
162179

163180
it('no baseline', async () => {
164181
const testRun = {
@@ -200,13 +217,14 @@ describe('TestRunsService', () => {
200217
.fn()
201218
.mockReturnValueOnce(baseline)
202219
.mockReturnValueOnce(image);
203-
service = await initService({ testRunCreateMock, saveImageMock, getImageMock });
220+
const eventNewTestRunMock = jest.fn();
221+
service = await initService({ testRunCreateMock, saveImageMock, getImageMock, eventNewTestRunMock });
204222
const getDiffMock = jest.fn().mockReturnValueOnce(diffResult);
205223
service.getDiff = getDiffMock;
206-
const saveDiffResultMock = jest.fn();
224+
const saveDiffResultMock = jest.fn().mockResolvedValueOnce(testRunWithResult);
207225
service.saveDiffResult = saveDiffResultMock;
208226

209-
await service.create(testVariation, createTestRequestDto);
227+
const result = await service.create(testVariation, createTestRequestDto);
210228

211229
expect(saveImageMock).toHaveBeenCalledWith('screenshot', Buffer.from(createTestRequestDto.imageBase64, 'base64'));
212230
expect(getImageMock).toHaveBeenNthCalledWith(1, testVariation.baselineName);
@@ -240,6 +258,8 @@ describe('TestRunsService', () => {
240258
status: TestStatus.new,
241259
},
242260
});
261+
expect(eventNewTestRunMock).toHaveBeenCalledWith(testRunWithResult);
262+
expect(result).toBe(testRunWithResult);
243263
});
244264

245265
it('with baseline', async () => {
@@ -274,7 +294,8 @@ describe('TestRunsService', () => {
274294
.fn()
275295
.mockReturnValueOnce(baseline)
276296
.mockReturnValueOnce(image);
277-
service = await initService({ testRunCreateMock, saveImageMock, getImageMock });
297+
const eventNewTestRunMock = jest.fn();
298+
service = await initService({ testRunCreateMock, saveImageMock, getImageMock, eventNewTestRunMock });
278299
const diffResult: DiffResult = {
279300
status: TestStatus.unresolved,
280301
diffName: 'diff image name',
@@ -285,9 +306,9 @@ describe('TestRunsService', () => {
285306
const getDiffMock = jest.fn().mockReturnValueOnce(diffResult);
286307
service.getDiff = getDiffMock;
287308
const saveDiffResultMock = jest.fn();
288-
service.saveDiffResult = saveDiffResultMock;
309+
service.saveDiffResult = saveDiffResultMock.mockResolvedValueOnce(testRunWithResult);
289310

290-
await service.create(testVariation, createTestRequestDto);
311+
const result = await service.create(testVariation, createTestRequestDto);
291312

292313
expect(saveImageMock).toHaveBeenCalledWith('screenshot', Buffer.from(createTestRequestDto.imageBase64, 'base64'));
293314
expect(service.getDiff).toHaveBeenCalledWith(
@@ -324,6 +345,8 @@ describe('TestRunsService', () => {
324345
});
325346
expect(getDiffMock).toHaveBeenCalledWith(baseline, image, testRun.diffTollerancePercent, testRun.ignoreAreas);
326347
expect(saveDiffResultMock).toHaveBeenCalledWith(testRun.id, diffResult);
348+
expect(eventNewTestRunMock).toHaveBeenCalledWith(testRunWithResult);
349+
expect(result).toBe(testRunWithResult);
327350
});
328351
});
329352

src/test-runs/test-runs.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { StaticService } from '../shared/static/static.service';
77
import { PrismaService } from '../prisma/prisma.service';
88
import { TestRun, TestStatus, TestVariation } from '@prisma/client';
99
import { DiffResult } from './diffResult';
10-
import { EventsGateway } from 'src/events/events.gateway';
10+
import { EventsGateway } from '../events/events.gateway';
1111

1212
@Injectable()
1313
export class TestRunsService {

0 commit comments

Comments
 (0)