Skip to content

Commit 25a168d

Browse files
committed
Update e2e tests, take screenshots when screen become stable
1 parent ec7e2e4 commit 25a168d

File tree

9 files changed

+61
-12
lines changed

9 files changed

+61
-12
lines changed

e2e/components/button/button.e2e.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {browser, by, element} from 'protractor';
1+
import {browser, by, element, ExpectedConditions} from 'protractor';
22
import {screenshot} from '../../screenshot';
33

44

@@ -9,12 +9,16 @@ describe('button', () => {
99
it('should prevent click handlers from executing when disabled', () => {
1010
element(by.id('test-button')).click();
1111
expect(element(by.id('click-counter')).getText()).toEqual('1');
12-
screenshot('clicked once');
12+
browser.wait(ExpectedConditions.not(
13+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
14+
.then(() => screenshot('clicked once'));
1315

1416
element(by.id('disable-toggle')).click();
1517
element(by.id('test-button')).click();
1618
expect(element(by.id('click-counter')).getText()).toEqual('1');
17-
screenshot('click disabled');
19+
browser.wait(ExpectedConditions.not(
20+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
21+
.then(() => screenshot('click disabled'));
1822
});
1923
});
2024
});

e2e/components/checkbox/checkbox.e2e.ts

+13-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {browser, by, element, Key} from 'protractor';
1+
import {browser, by, element, Key, ExpectedConditions} from 'protractor';
22
import {screenshot} from '../../screenshot';
33

44
describe('checkbox', function () {
@@ -17,31 +17,38 @@ describe('checkbox', function () {
1717
checkboxEl.click();
1818
inputEl.getAttribute('checked').then((value: string) => {
1919
expect(value).toBeTruthy('Expect checkbox "checked" property to be true');
20+
browser.wait(ExpectedConditions.not(
21+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
22+
.then(() => screenshot('checked'));
2023
});
21-
screenshot('checked');
2224

2325
checkboxEl.click();
2426
inputEl.getAttribute('checked').then((value: string) => {
2527
expect(value).toBeFalsy('Expect checkbox "checked" property to be false');
28+
browser.wait(ExpectedConditions.not(
29+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
30+
.then(() => screenshot('unchecked'));
2631
});
27-
screenshot('unchecked');
2832
});
2933

3034
it('should toggle the checkbox when pressing space', () => {
3135
let inputEl = element(by.css('input[id=input-test-checkbox]'));
3236

3337
inputEl.getAttribute('checked').then((value: string) => {
3438
expect(value).toBeFalsy('Expect checkbox "checked" property to be false');
35-
screenshot('start');
39+
browser.wait(ExpectedConditions.not(
40+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
41+
.then(() => screenshot('start'));
3642
});
3743

3844
inputEl.sendKeys(Key.SPACE);
3945

4046
inputEl.getAttribute('checked').then((value: string) => {
4147
expect(value).toBeTruthy('Expect checkbox "checked" property to be true');
42-
screenshot('pressed space');
48+
browser.wait(ExpectedConditions.not(
49+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
50+
.then(() => screenshot('pressed space'));
4351
});
4452
});
45-
4653
});
4754
});

e2e/components/grid-list/grid-list.e2e.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import {browser} from 'protractor';
22
import {expectToExist} from '../../util/asserts';
3+
import {screenshot} from '../../screenshot';
34

45
describe('grid-list', () => {
56
beforeEach(() => browser.get('/grid-list'));
67

78
it('should render a grid list container', () => {
89
expectToExist('md-grid-list');
10+
screenshot('');
911
});
1012

1113
it('should render list items inside the grid list container', () => {

e2e/components/icon/icon.e2e.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {browser, by, element} from 'protractor';
2+
import {screenshot} from '../../screenshot';
23

34
describe('icon', () => {
45
describe('font icons by ligature', () => {
@@ -13,6 +14,7 @@ describe('icon', () => {
1314
testIcon.getAttribute('aria-label').then((attr: string) => {
1415
expect(attr).toEqual('favorite');
1516
});
17+
screenshot('');
1618
});
1719

1820
it('should have the correct class when used', () => {

e2e/components/list/list.e2e.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import {browser} from 'protractor';
22
import {expectToExist} from '../../util/asserts';
3+
import {screenshot} from '../../screenshot';
34

45
describe('list', () => {
56
beforeEach(() => browser.get('/list'));
67

78
it('should render a list container', () => {
89
expectToExist('md-list');
10+
screenshot('');
911
});
1012

1113
it('should render list items inside the list container', () => {

e2e/components/menu/menu.e2e.ts

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {Key, protractor} from 'protractor';
22
import {MenuPage} from './menu-page';
33
import {expectToExist, expectAlignedWith, expectFocusOn, expectLocation} from '../../util/asserts';
44
import {pressKeys} from '../../util/actions';
5+
import {screenshot} from '../../screenshot';
56

67
describe('menu', () => {
78
const menuSelector = '.mat-menu-panel';
@@ -15,28 +16,33 @@ describe('menu', () => {
1516

1617
expectToExist(menuSelector);
1718
expect(page.menu().getText()).toEqual('One\nTwo\nThree\nFour');
19+
screenshot('');
1820
});
1921

2022
it('should close menu when menu item is clicked', () => {
2123
page.trigger().click();
2224
page.items(0).click();
2325
expectToExist(menuSelector, false);
26+
screenshot('');
2427
});
2528

2629
it('should run click handlers on regular menu items', () => {
2730
page.trigger().click();
2831
page.items(0).click();
2932
expect(page.getResultText()).toEqual('one');
33+
screenshot('one');
3034

3135
page.trigger().click();
3236
page.items(1).click();
3337
expect(page.getResultText()).toEqual('two');
38+
screenshot('two');
3439
});
3540

3641
it('should run not run click handlers on disabled menu items', () => {
3742
page.trigger().click();
3843
page.items(2).click();
3944
expect(page.getResultText()).toEqual('');
45+
screenshot('');
4046
});
4147

4248
it('should support multiple triggers opening the same menu', () => {

e2e/components/radio/radio.e2e.ts

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import {browser, by, element} from 'protractor';
1+
import {browser, by, element, ExpectedConditions} from 'protractor';
2+
import {screenshot} from '../../screenshot';
23

34
describe('radio', () => {
45
describe('disabling behavior', () => {
@@ -8,6 +9,9 @@ describe('radio', () => {
89
element(by.id('water')).click();
910
element(by.id('water')).getAttribute('class').then((value: string) => {
1011
expect(value).toContain('mat-radio-checked');
12+
browser.wait(ExpectedConditions.not(
13+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
14+
.then(() => screenshot('water'));
1115
});
1216
element(by.css('input[id=water-input]')).getAttribute('checked').then((value: string) => {
1317
expect(value).toBeTruthy();
@@ -19,6 +23,9 @@ describe('radio', () => {
1923
element(by.id('leaf')).click();
2024
element(by.id('leaf')).getAttribute('class').then((value: string) => {
2125
expect(value).toContain('mat-radio-checked');
26+
browser.wait(ExpectedConditions.not(
27+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
28+
.then(() => screenshot('leaf'));
2229
});
2330
element(by.css('input[id=leaf-input]')).getAttribute('checked').then((value: string) => {
2431
expect(value).toBeTruthy();
@@ -33,14 +40,20 @@ describe('radio', () => {
3340
element(by.id('water')).click();
3441
element(by.id('water')).getAttribute('class').then((value: string) => {
3542
expect(value).toContain('mat-radio-disabled');
43+
browser.wait(ExpectedConditions.not(
44+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
45+
.then(() => screenshot('water'));
3646
});
37-
element(by.css('input[id=water-input]')).getAttribute('disabled').then((value: string) => {
47+
element(by.css('input[id=water-input]')).getAttribute('disabled').then((value: string) => {
3848
expect(value).toBeTruthy();
3949
});
4050

4151
element(by.id('leaf')).click();
4252
element(by.id('leaf')).getAttribute('class').then((value: string) => {
4353
expect(value).toContain('mat-radio-disabled');
54+
browser.wait(ExpectedConditions.not(
55+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
56+
.then(() => screenshot('leaf'));
4457
});
4558
element(by.css('input[id=leaf-input]')).getAttribute('disabled').then((value: string) => {
4659
expect(value).toBeTruthy();

e2e/components/slide-toggle/slide-toggle.e2e.ts

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {browser, element, by, Key} from 'protractor';
22
import {expectToExist} from '../../util/asserts';
3+
import {screenshot} from '../../screenshot';
34

45
describe('slide-toggle', () => {
56
const getInput = () => element(by.css('#normal-slide-toggle input'));
@@ -9,6 +10,7 @@ describe('slide-toggle', () => {
910

1011
it('should render a slide-toggle', () => {
1112
expectToExist('md-slide-toggle');
13+
screenshot('');
1214
});
1315

1416
it('should change the checked state on click', () => {
@@ -19,6 +21,7 @@ describe('slide-toggle', () => {
1921
getNormalToggle().click();
2022

2123
expect(inputEl.getAttribute('checked')).toBeTruthy('Expect slide-toggle to be checked');
24+
screenshot('');
2225
});
2326

2427
it('should change the checked state on click', () => {
@@ -29,6 +32,7 @@ describe('slide-toggle', () => {
2932
getNormalToggle().click();
3033

3134
expect(inputEl.getAttribute('checked')).toBeTruthy('Expect slide-toggle to be checked');
35+
screenshot('');
3236
});
3337

3438
it('should not change the checked state on click when disabled', () => {
@@ -39,6 +43,7 @@ describe('slide-toggle', () => {
3943
element(by.css('#disabled-slide-toggle')).click();
4044

4145
expect(inputEl.getAttribute('checked')).toBeFalsy('Expect slide-toggle to be unchecked');
46+
screenshot('');
4247
});
4348

4449
it('should move the thumb on state change', () => {
@@ -52,6 +57,7 @@ describe('slide-toggle', () => {
5257
let newX = thumbEl.getLocation().then(pos => pos.x);
5358

5459
expect(previousX).not.toBe(newX);
60+
screenshot('');
5561
});
5662

5763
it('should toggle the slide-toggle on space key', () => {

e2e/components/tabs/tabs.e2e.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import {browser, by, element, ElementArrayFinder, ElementFinder, Key} from 'protractor';
1+
import {browser, by, element, ElementArrayFinder, ElementFinder, Key, ExpectedConditions} from 'protractor';
22
import {pressKeys} from '../../util/actions';
3+
import {screenshot} from '../../screenshot';
34

45
describe('tabs', () => {
56
describe('basic behavior', () => {
@@ -18,10 +19,16 @@ describe('tabs', () => {
1819
tabLabels.get(1).click();
1920
expect(getLabelActiveStates(tabLabels)).toEqual([false, true, false]);
2021
expect(getBodyActiveStates(tabBodies)).toEqual([false, true, false]);
22+
browser.wait(ExpectedConditions.not(
23+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
24+
.then(() => screenshot('click1'));
2125

2226
tabLabels.get(0).click();
2327
expect(getLabelActiveStates(tabLabels)).toEqual([true, false, false]);
2428
expect(getBodyActiveStates(tabBodies)).toEqual([true, false, false]);
29+
browser.wait(ExpectedConditions.not(
30+
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))))
31+
.then(() => screenshot('click0'));
2532
});
2633

2734
it('should change focus with keyboard interaction', () => {

0 commit comments

Comments
 (0)