Skip to content

Commit a00e8b7

Browse files
Fix oppia#23278 CI frontend test failures in image-preloader.service.spec.ts (oppia#23618)
* fixed flake * fixed flake --------- Co-authored-by: Mohit Ruwatia <120438312+mon4our@users.noreply.github.com>
1 parent f1569d2 commit a00e8b7

File tree

1 file changed

+33
-35
lines changed

1 file changed

+33
-35
lines changed

core/templates/pages/exploration-player-page/services/image-preloader.service.spec.ts

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,16 @@ describe('Image preloader service', () => {
384384

385385
let exploration: Exploration;
386386

387+
// Helper to flush platform feature-flags evaluation request if present.
388+
const flushFeatureFlagsIfQueued = () => {
389+
const featureFlagsReq = httpTestingController.match(req =>
390+
req.url.includes('/feature_flags_evaluation_handler')
391+
);
392+
if (featureFlagsReq && featureFlagsReq.length) {
393+
featureFlagsReq.forEach(req => req.flush({}));
394+
}
395+
};
396+
387397
beforeEach(() => {
388398
imagePreloaderService = TestBed.get(ImagePreloaderService);
389399
pageContextService = TestBed.get(PageContextService);
@@ -413,6 +423,8 @@ describe('Image preloader service', () => {
413423
imagePreloaderService.init(exploration);
414424
imagePreloaderService.kickOffImagePreloader(initStateName);
415425

426+
flushFeatureFlagsIfQueued();
427+
416428
expect(imagePreloaderService.inExplorationPlayer()).toBeTruthy();
417429

418430
httpTestingController.expectOne(requestUrl1);
@@ -428,13 +440,7 @@ describe('Image preloader service', () => {
428440
imagePreloaderService.init(exploration);
429441
imagePreloaderService.kickOffImagePreloader(initStateName);
430442

431-
// Flush feature flags request to avoid open request error in CI.
432-
const featureFlagsReq = httpTestingController.match(req =>
433-
req.url.includes('/feature_flags_evaluation_handler')
434-
);
435-
if (featureFlagsReq && featureFlagsReq.length) {
436-
featureFlagsReq.forEach(req => req.flush({}));
437-
}
443+
flushFeatureFlagsIfQueued();
438444

439445
// Max files to download simultaneously is 3.
440446
httpTestingController.expectOne(requestUrl1).flush(imageBlob);
@@ -483,6 +489,8 @@ describe('Image preloader service', () => {
483489
imagePreloaderService.init(exploration);
484490
imagePreloaderService.kickOffImagePreloader(initStateName);
485491

492+
flushFeatureFlagsIfQueued();
493+
486494
httpTestingController.expectOne(requestUrl1);
487495
httpTestingController.expectOne(requestUrl2);
488496
httpTestingController.expectOne(requestUrl3);
@@ -506,6 +514,8 @@ describe('Image preloader service', () => {
506514
imagePreloaderService.init(exploration);
507515
imagePreloaderService.kickOffImagePreloader(initStateName);
508516

517+
flushFeatureFlagsIfQueued();
518+
509519
httpTestingController.expectOne(requestUrl1);
510520
httpTestingController.expectOne(requestUrl2);
511521
httpTestingController.expectOne(requestUrl3);
@@ -535,6 +545,8 @@ describe('Image preloader service', () => {
535545
imagePreloaderService.init(exploration);
536546
imagePreloaderService.kickOffImagePreloader(initStateName);
537547

548+
flushFeatureFlagsIfQueued();
549+
538550
httpTestingController.expectOne(requestUrl1).flush(imageBlob);
539551
httpTestingController.expectOne(requestUrl2).flush(imageBlob);
540552
httpTestingController.expectOne(requestUrl3).flush(imageBlob);
@@ -569,13 +581,7 @@ describe('Image preloader service', () => {
569581
imagePreloaderService.kickOffImagePreloader(initStateName);
570582
flushMicrotasks();
571583

572-
// Flush feature flags request to avoid open request error in CI.
573-
const featureFlagsReq = httpTestingController.match(req =>
574-
req.url.includes('/feature_flags_evaluation_handler')
575-
);
576-
if (featureFlagsReq && featureFlagsReq.length) {
577-
featureFlagsReq.forEach(req => req.flush({}));
578-
}
584+
flushFeatureFlagsIfQueued();
579585

580586
expect(
581587
imagePreloaderService.getFilenamesOfImageCurrentlyDownloading()
@@ -607,13 +613,7 @@ describe('Image preloader service', () => {
607613
imagePreloaderService.init(exploration);
608614
imagePreloaderService.kickOffImagePreloader(initStateName);
609615

610-
// Flush feature flags request to avoid open request error in CI.
611-
const featureFlagsReq = httpTestingController.match(req =>
612-
req.url.includes('/feature_flags_evaluation_handler')
613-
);
614-
if (featureFlagsReq && featureFlagsReq.length) {
615-
featureFlagsReq.forEach(req => req.flush({}));
616-
}
616+
flushFeatureFlagsIfQueued();
617617

618618
httpTestingController.expectOne(requestUrl1).flush(imageBlob);
619619
httpTestingController.expectOne(requestUrl2).flush(imageBlob);
@@ -651,6 +651,8 @@ describe('Image preloader service', () => {
651651
imagePreloaderService.init(exploration);
652652
imagePreloaderService.kickOffImagePreloader(initStateName);
653653

654+
flushFeatureFlagsIfQueued();
655+
654656
httpTestingController.expectOne(requestUrl1);
655657
httpTestingController.expectOne(requestUrl2);
656658
httpTestingController.expectOne(requestUrl3);
@@ -692,6 +694,8 @@ describe('Image preloader service', () => {
692694
imagePreloaderService.init(exploration);
693695
imagePreloaderService.kickOffImagePreloader(initStateName);
694696

697+
flushFeatureFlagsIfQueued();
698+
695699
httpTestingController.expectOne(requestUrl1).flush(imageBlob);
696700
httpTestingController.expectOne(requestUrl2);
697701
httpTestingController.expectOne(requestUrl3);
@@ -730,6 +734,8 @@ describe('Image preloader service', () => {
730734
imagePreloaderService.init(exploration);
731735
imagePreloaderService.kickOffImagePreloader(initStateName);
732736

737+
flushFeatureFlagsIfQueued();
738+
733739
httpTestingController
734740
.expectOne(requestUrl1)
735741
.flush(new Blob(['svg image'], {type: 'image/svg+xml'}));
@@ -775,6 +781,8 @@ describe('Image preloader service', () => {
775781
imagePreloaderService.init(exploration);
776782
imagePreloaderService.kickOffImagePreloader(initStateName);
777783

784+
flushFeatureFlagsIfQueued();
785+
778786
httpTestingController
779787
.expectOne(requestUrl1)
780788
.flush(imageBlob, {status: 404, statusText: 'Status Text'});
@@ -819,13 +827,7 @@ describe('Image preloader service', () => {
819827
imagePreloaderService.init(exploration);
820828
imagePreloaderService.kickOffImagePreloader(initStateName);
821829

822-
// Flush feature flags request to avoid open request error in CI.
823-
const featureFlagsReq = httpTestingController.match(req =>
824-
req.url.includes('/feature_flags_evaluation_handler')
825-
);
826-
if (featureFlagsReq && featureFlagsReq.length) {
827-
featureFlagsReq.forEach(req => req.flush({}));
828-
}
830+
flushFeatureFlagsIfQueued();
829831

830832
httpTestingController
831833
.expectOne(requestUrl1)
@@ -869,6 +871,8 @@ describe('Image preloader service', () => {
869871
imagePreloaderService.init(exploration);
870872
imagePreloaderService.kickOffImagePreloader(initStateName);
871873

874+
flushFeatureFlagsIfQueued();
875+
872876
var onSuccess = jasmine.createSpy('success');
873877
var onFailure = jasmine.createSpy('fail');
874878
// This throws "Argument of type 'mockReaderObject' is not assignable
@@ -909,13 +913,7 @@ describe('Image preloader service', () => {
909913
imagePreloaderService.init(exploration);
910914
imagePreloaderService.kickOffImagePreloader(initStateName);
911915

912-
// Flush feature flags request to avoid open request error in CI.
913-
const featureFlagsReq = httpTestingController.match(req =>
914-
req.url.includes('/feature_flags_evaluation_handler')
915-
);
916-
if (featureFlagsReq && featureFlagsReq.length) {
917-
featureFlagsReq.forEach(req => req.flush({}));
918-
}
916+
flushFeatureFlagsIfQueued();
919917

920918
var onSuccess = jasmine.createSpy('success');
921919
var onFailure = jasmine.createSpy('fail');

0 commit comments

Comments
 (0)