Skip to content

Commit 74a45eb

Browse files
committed
test(ImageLoader): fix flakly e2e tests
1 parent 6b9edb5 commit 74a45eb

File tree

2 files changed

+31
-49
lines changed

2 files changed

+31
-49
lines changed

e2e/app.e2e-spec.ts

Lines changed: 30 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@ describe('ImageLoader Lib E2E Tests', function () {
3939
expect(imageLoaderCompClass).toContain('sn-image-not-loaded');
4040
expect(imgSrc).toEqual('http://via.placeholder.com/35x15?text=placeholder');
4141

42-
page.scrollTo(0, 580 * 1.5)
43-
.then(() => {
44-
browser.wait(() => page.getLoadedImageElement());
45-
});
42+
page.scrollTo(0, 580 * 1.5);
43+
browser.wait(() => page.getLoadedImageElement());
4644

4745
imageLoaderCompClass = page.getImageLoaderComp().getAttribute('class');
4846
imgSrc = page.getImageElement().getAttribute('srcset');
@@ -54,75 +52,59 @@ describe('ImageLoader Lib E2E Tests', function () {
5452
it('should update full res image event count on when in viewport', () => {
5553
expect(page.getFullResCountElement().getText()).toEqual('0');
5654

57-
page.scrollTo(0, 580 * 1.5)
58-
.then(() => {
59-
browser.wait(() => page.getLoadedImageElement());
60-
});
61-
55+
page.scrollTo(0, 580 * 1.5);
56+
browser.wait(() => page.getLoadedImageElement());
6257
expect(page.getFullResCountElement().getText()).toEqual('1');
6358
});
6459

6560
});
6661

6762
describe('responsive image', () => {
68-
beforeEach(() => page.setWindowSize(300, 580));
69-
70-
it('should load correct image for device size', () => {
71-
page.scrollTo(0, 580 * 1.5)
72-
.then(() => {
73-
browser.wait(() => page.getLoadedImageElement());
74-
});
7563

64+
it('should load correct image for "xs" device size', () => {
65+
page.setWindowSize(300, 580);
66+
page.scrollTo(0, 580 * 1.5);
67+
browser.wait(() => page.getLoadedImageElement());
7668
const imageLoaderCompClass = page.getImageLoaderComp().getAttribute('class');
77-
let imgSrc = page.getImageElement().getAttribute('srcset');
69+
const imgSrc = page.getImageElement().getAttribute('srcset');
7870
expect(imageLoaderCompClass).toContain('sn-image-loaded');
7971
expect(imgSrc).toEqual('http://via.placeholder.com/150x350?text=xs+1x 1x, http://via.placeholder.com/300x700?text=xs+2x 2x');
72+
});
8073

81-
page.setWindowSize(768, 580)
82-
.then(() => {
83-
browser.wait(() => page.getLoadedImageElementBySrcSet(
84-
'http://via.placeholder.com/350x250?text=md+1x 1x, http://via.placeholder.com/700x500?text=md+2x 2x'
85-
), browserWaitTimeout);
86-
});
74+
it('should load correct image for "md" device size', () => {
75+
page.setWindowSize(768, 580);
76+
page.scrollTo(0, 580 * 1.5);
77+
browser.wait(() => page.getLoadedImageElement());
8778

88-
imgSrc = page.getImageElement().getAttribute('srcset');
79+
const imgSrc = page.getImageElement().getAttribute('srcset');
8980
expect(imgSrc).toEqual('http://via.placeholder.com/350x250?text=md+1x 1x, http://via.placeholder.com/700x500?text=md+2x 2x');
81+
});
9082

91-
page.setWindowSize(1024, 580)
92-
.then(() => {
93-
browser.wait(() => page.getLoadedImageElementBySrcSet(
94-
'http://via.placeholder.com/700x400?text=lg+1x 1x, http://via.placeholder.com/1400x800?text=lg+2x 2x'
95-
), browserWaitTimeout);
96-
});
83+
it('should load correct image for "lg" device size', () => {
84+
page.setWindowSize(1024, 580);
85+
page.scrollTo(0, 580 * 1.5);
86+
browser.wait(() => page.getLoadedImageElement());
9787

98-
imgSrc = page.getImageElement().getAttribute('srcset');
88+
const imgSrc = page.getImageElement().getAttribute('srcset');
9989
expect(imgSrc).toEqual('http://via.placeholder.com/700x400?text=lg+1x 1x, http://via.placeholder.com/1400x800?text=lg+2x 2x');
10090
});
10191

10292
it('should update image loaded event count on window resize when image in viewport', () => {
10393
expect(page.getFullResCountElement().getText()).toEqual('0');
10494

105-
page.scrollTo(0, 580 * 1.5)
106-
.then(() => {
107-
browser.wait(() => page.getLoadedImageElement());
108-
});
109-
95+
page.setWindowSize(320, 580);
96+
page.scrollTo(0, 580 * 1.5);
97+
browser.wait(() => page.getLoadedImageElement());
11098
expect(page.getFullResCountElement().getText()).toEqual('1');
11199

112-
page.setWindowSize(768, 580)
113-
.then(() => {
114-
browser.wait(() => page.getLoadedImageElementBySrcSet(
115-
'http://via.placeholder.com/350x250?text=md+1x 1x, http://via.placeholder.com/700x500?text=md+2x 2x'
116-
), browserWaitTimeout);
117-
});
100+
page.setWindowSize(768, 580);
101+
page.scrollTo(0, 580 * 1.5);
102+
browser.wait(() => page.getLoadedImageElement());
118103
expect(page.getFullResCountElement().getText()).toEqual('2');
119104

120-
page.setWindowSize(1024, 580)
121-
.then(() => {
122-
browser.wait(() => page.getLoadedImageElementBySrcSet(
123-
'http://via.placeholder.com/700x400?text=lg+1x 1x, http://via.placeholder.com/1400x800?text=lg+2x 2x'
124-
), browserWaitTimeout);
125-
});
105+
page.setWindowSize(1024, 580);
106+
page.scrollTo(0, 580 * 1.5);
107+
browser.wait(() => page.getLoadedImageElement());
126108
expect(page.getFullResCountElement().getText()).toEqual('3');
127109
});
128110

protractor.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ exports.config = {
1111
capabilities: {
1212
browserName: 'chrome',
1313
chromeOptions: {
14-
args: ['--headless', '--no-sandbox', '--window-size=1024,768']
14+
args: ['--no-sandbox', '--window-size=1024,768']
1515
}
1616
},
1717
directConnect: true,

0 commit comments

Comments
 (0)