Skip to content

Commit b7f2087

Browse files
committed
test run create now async
1 parent c1d3e24 commit b7f2087

File tree

2 files changed

+61
-32
lines changed

2 files changed

+61
-32
lines changed

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

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,21 @@ describe('TestVariationsService', () => {
407407
updatedAt: new Date(),
408408
branchName: mergedBranch,
409409
};
410+
const testVariationSecond: TestVariation = {
411+
id: '123',
412+
projectId: project.id,
413+
name: 'Test name second',
414+
baselineName: 'baselineName',
415+
os: 'OS',
416+
browser: 'browser',
417+
viewport: 'viewport',
418+
device: 'device',
419+
ignoreAreas: '[]',
420+
comment: 'some comment',
421+
createdAt: new Date(),
422+
updatedAt: new Date(),
423+
branchName: mergedBranch,
424+
};
410425
const testVariationNoBaseline: TestVariation = {
411426
id: '123',
412427
projectId: project.id,
@@ -439,16 +454,22 @@ describe('TestVariationsService', () => {
439454
};
440455
const projectFindOneMock = jest.fn().mockResolvedValueOnce(project);
441456
const buildCreateMock = jest.fn().mockResolvedValueOnce(build);
442-
const variationFindManyMock = jest.fn().mockResolvedValueOnce([testVariation, testVariationNoBaseline]);
457+
const variationFindManyMock = jest
458+
.fn()
459+
.mockResolvedValueOnce([testVariation, testVariationSecond, testVariationNoBaseline]);
443460
const image = new PNG({
444461
width: 10,
445462
height: 10,
446463
});
447464
const getImageMock = jest
448465
.fn()
449466
.mockReturnValueOnce(image)
467+
.mockReturnValueOnce(image)
450468
.mockReturnValueOnce(null);
451-
const findOrCreateMock = jest.fn().mockResolvedValueOnce(testVariationMainBranch);
469+
const findOrCreateMock = jest
470+
.fn()
471+
.mockResolvedValueOnce(testVariationMainBranch)
472+
.mockResolvedValueOnce(testVariationMainBranch);
452473
const testRunCreateMock = jest.fn();
453474
const service = await initModule({
454475
projectFindOneMock,
@@ -478,12 +499,22 @@ describe('TestVariationsService', () => {
478499
viewport: testVariation.viewport,
479500
branchName: project.mainBranchName,
480501
});
481-
expect(testRunCreateMock).toHaveBeenCalledWith(testVariationMainBranch, {
502+
503+
await new Promise(r => setTimeout(r, 1));
504+
expect(testRunCreateMock).toHaveBeenNthCalledWith(1, testVariationMainBranch, {
482505
...testVariation,
483506
buildId: build.id,
484507
imageBase64: PNG.sync.write(image).toString('base64'),
485508
diffTollerancePercent: 0,
486509
merge: true,
487510
});
511+
expect(testRunCreateMock).toHaveBeenNthCalledWith(2, testVariationMainBranch, {
512+
...testVariationSecond,
513+
buildId: build.id,
514+
imageBase64: PNG.sync.write(image).toString('base64'),
515+
diffTollerancePercent: 0,
516+
merge: true,
517+
});
518+
expect(testRunCreateMock).toHaveBeenCalledTimes(2);
488519
});
489520
});

src/test-variations/test-variations.service.ts

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -134,36 +134,34 @@ export class TestVariationsService {
134134
});
135135

136136
// compare to main branch variations
137-
await Promise.all(
138-
testVariations.map(async sideBranchTestVariation => {
139-
const baseline = this.staticService.getImage(sideBranchTestVariation.baselineName);
140-
if (baseline) {
141-
try {
142-
let imageBase64 = PNG.sync.write(baseline).toString('base64');
143-
144-
// get main branch variation
145-
const baselineData = convertBaselineDataToQuery({
146-
...sideBranchTestVariation,
147-
branchName: project.mainBranchName,
148-
});
149-
const mainBranchTestVariation = await this.findOrCreate(projectId, baselineData);
150-
151-
// get side branch request
152-
const createTestRequestDto: CreateTestRequestDto = {
153-
...sideBranchTestVariation,
154-
buildId: build.id,
155-
imageBase64,
156-
diffTollerancePercent: 0,
157-
merge: true,
158-
};
159-
160-
return this.testRunsService.create(mainBranchTestVariation, createTestRequestDto);
161-
} catch (err) {
162-
console.log(err);
163-
}
137+
testVariations.map(async sideBranchTestVariation => {
138+
const baseline = this.staticService.getImage(sideBranchTestVariation.baselineName);
139+
if (baseline) {
140+
try {
141+
let imageBase64 = PNG.sync.write(baseline).toString('base64');
142+
143+
// get main branch variation
144+
const baselineData = convertBaselineDataToQuery({
145+
...sideBranchTestVariation,
146+
branchName: project.mainBranchName,
147+
});
148+
const mainBranchTestVariation = await this.findOrCreate(projectId, baselineData);
149+
150+
// get side branch request
151+
const createTestRequestDto: CreateTestRequestDto = {
152+
...sideBranchTestVariation,
153+
buildId: build.id,
154+
imageBase64,
155+
diffTollerancePercent: 0,
156+
merge: true,
157+
};
158+
159+
return this.testRunsService.create(mainBranchTestVariation, createTestRequestDto);
160+
} catch (err) {
161+
console.log(err);
164162
}
165-
})
166-
);
163+
}
164+
});
167165

168166
return build;
169167
}

0 commit comments

Comments
 (0)