@@ -4,11 +4,12 @@ import { TestRunsService } from './test-runs.service';
44import { PrismaService } from '../prisma/prisma.service' ;
55import { StaticService } from '../shared/static/static.service' ;
66import { PNG } from 'pngjs' ;
7- import { TestStatus , TestRun } from '@prisma/client' ;
7+ import { TestStatus } from '@prisma/client' ;
88import Pixelmatch from 'pixelmatch' ;
9- import { CreateTestRequestDto } from 'src /test/dto/create-test-request.dto' ;
9+ import { CreateTestRequestDto } from '.. /test/dto/create-test-request.dto' ;
1010import { 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
1314jest . 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
0 commit comments