Skip to content

Commit 508703a

Browse files
crisbetojelbourn
authored andcommitted
test: use proper typings in e2e app (#2051)
* test: use proper typings in e2e app * Switches to use the typings from @types for the e2e app. * Adds all of the necessary imports and fixes type issues. Relates to #2025. Fixes #1531. * Add missing typings to slide toggle. * Fix another typo.
1 parent 28f1f80 commit 508703a

File tree

22 files changed

+86
-10807
lines changed

22 files changed

+86
-10807
lines changed

e2e/components/button/button.e2e.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, by, element} from 'protractor';
2+
13
describe('button', function () {
24
describe('disabling behavior', function () {
35
beforeEach(function() {

e2e/components/checkbox/checkbox.e2e.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, by, element} from 'protractor';
2+
13
describe('checkbox', function () {
24
describe('check behavior', function () {
35
beforeEach(function() {

e2e/components/dialog/dialog.e2e.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1+
import {browser, by, element, Key, ProtractorBy} from 'protractor';
2+
13
describe('dialog', () => {
24
beforeEach(() => browser.get('/dialog'));
35

46
it('should open a dialog', () => {
57
element(by.id('default')).click();
6-
waitForDialog().then(isPresent => expect(isPresent).toBe(true));
8+
waitForDialog().then((isPresent: boolean) => expect(isPresent).toBe(true));
79
});
810

911
it('should close by clicking on the backdrop', () => {
1012
element(by.id('default')).click();
1113

1214
waitForDialog().then(() => {
1315
clickOnBackrop();
14-
waitForDialog().then(isPresent => expect(isPresent).toBe(false));
16+
waitForDialog().then((isPresent: boolean) => expect(isPresent).toBe(false));
1517
});
1618
});
1719

@@ -20,7 +22,7 @@ describe('dialog', () => {
2022

2123
waitForDialog().then(() => {
2224
pressEscape();
23-
waitForDialog().then(isPresent => expect(isPresent).toBe(false));
25+
waitForDialog().then((isPresent: boolean) => expect(isPresent).toBe(false));
2426
});
2527
});
2628

@@ -29,7 +31,7 @@ describe('dialog', () => {
2931

3032
waitForDialog().then(() => {
3133
element(by.id('close')).click();
32-
waitForDialog().then(isPresent => expect(isPresent).toBe(false));
34+
waitForDialog().then((isPresent: boolean) => expect(isPresent).toBe(false));
3335
});
3436
});
3537

@@ -56,7 +58,7 @@ describe('dialog', () => {
5658
element(by.id('default')).click();
5759

5860
waitForDialog().then(() => {
59-
let tab = protractor.Key.TAB;
61+
let tab = Key.TAB;
6062

6163
browser.actions().sendKeys(tab, tab, tab).perform();
6264
expectFocusOn(element(by.id('close')));
@@ -68,7 +70,7 @@ describe('dialog', () => {
6870

6971
waitForDialog().then(() => {
7072
clickOnBackrop();
71-
waitForDialog().then(isPresent => expect(isPresent).toBe(true));
73+
waitForDialog().then((isPresent: boolean) => expect(isPresent).toBe(true));
7274
});
7375
});
7476

@@ -77,12 +79,12 @@ describe('dialog', () => {
7779

7880
waitForDialog().then(() => {
7981
pressEscape();
80-
waitForDialog().then(isPresent => expect(isPresent).toBe(true));
82+
waitForDialog().then((isPresent: boolean) => expect(isPresent).toBe(true));
8183
});
8284
});
8385

8486
function waitForDialog() {
85-
return browser.isElementPresent(by.css('md-dialog-container'));
87+
return browser.isElementPresent(by.css('md-dialog-container') as ProtractorBy);
8688
}
8789

8890
function clickOnBackrop() {
@@ -95,7 +97,7 @@ describe('dialog', () => {
9597
}
9698

9799
function pressEscape() {
98-
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
100+
browser.actions().sendKeys(Key.ESCAPE).perform();
99101
}
100102

101103
// TODO(crisbeto): should be moved to a common util. copied from the menu e2e setup.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, by, element} from 'protractor';
2+
13
describe('grid-list', () => {
24
beforeEach(() => browser.get('/grid-list'));
35

e2e/components/icon/icon.e2e.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, by, element} from 'protractor';
2+
13
describe('icon', () => {
24
describe('font icons by ligature', () => {
35
let testIcon: any;

e2e/components/list/list.e2e.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, by, element} from 'protractor';
2+
13
describe('list', () => {
24
beforeEach(() => browser.get('/list'));
35

e2e/components/menu/menu-page.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import ElementFinder = protractor.ElementFinder;
1+
import {browser, by, element, ElementFinder, ProtractorBy} from 'protractor';
22

33
export class MenuPage {
44

@@ -16,9 +16,7 @@ export class MenuPage {
1616

1717
backdrop() { return element(by.css('.md-overlay-backdrop')); }
1818

19-
items(index: number) {
20-
return element.all(by.css('[md-menu-item]')).get(index);
21-
}
19+
items(index: number) { return element.all(by.css('[md-menu-item]')).get(index); }
2220

2321
textArea() { return element(by.id('text')); }
2422

@@ -35,20 +33,21 @@ export class MenuPage {
3533
combinedMenu() { return element(by.css('.md-menu-panel.combined')); }
3634

3735
// TODO(kara): move to common testing utility
38-
pressKey(key: any): void {
36+
pressKey(key: string): void {
3937
browser.actions().sendKeys(key).perform();
4038
}
4139

4240
// TODO(kara): move to common testing utility
43-
expectFocusOn(el: ElementFinder): void {
41+
expectFocusOn(el: any): void {
4442
expect(browser.driver.switchTo().activeElement().getInnerHtml())
4543
.toBe(el.getInnerHtml());
4644
}
4745

4846
expectMenuPresent(expected: boolean) {
49-
return browser.isElementPresent(by.css('.md-menu-panel')).then(isPresent => {
50-
expect(isPresent).toBe(expected);
51-
});
47+
return browser.isElementPresent(by.css('.md-menu-panel') as ProtractorBy)
48+
.then((isPresent: boolean) => {
49+
expect(isPresent).toBe(expected);
50+
});
5251
}
5352

5453
expectMenuLocation(el: ElementFinder, {x, y}: {x: number, y: number}) {

e2e/components/menu/menu.e2e.ts

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { MenuPage } from './menu-page';
1+
import {browser, Key, protractor} from 'protractor';
2+
import {MenuPage} from './menu-page';
23

34
describe('menu', () => {
45
let page: MenuPage;
@@ -57,7 +58,7 @@ describe('menu', () => {
5758

5859
it('should mirror classes on host to menu template in overlay', () => {
5960
page.trigger().click();
60-
page.menu().getAttribute('class').then(classes => {
61+
page.menu().getAttribute('class').then((classes: string) => {
6162
expect(classes).toContain('md-menu-panel custom');
6263
});
6364
});
@@ -66,16 +67,16 @@ describe('menu', () => {
6667
beforeEach(() => {
6768
// click start button to avoid tabbing past navigation
6869
page.start().click();
69-
page.pressKey(protractor.Key.TAB);
70+
page.pressKey(Key.TAB);
7071
});
7172

7273
it('should auto-focus the first item when opened with ENTER', () => {
73-
page.pressKey(protractor.Key.ENTER);
74+
page.pressKey(Key.ENTER);
7475
page.expectFocusOn(page.items(0));
7576
});
7677

7778
it('should auto-focus the first item when opened with SPACE', () => {
78-
page.pressKey(protractor.Key.SPACE);
79+
page.pressKey(Key.SPACE);
7980
page.expectFocusOn(page.items(0));
8081
});
8182

@@ -85,60 +86,60 @@ describe('menu', () => {
8586
});
8687

8788
it('should focus subsequent items when down arrow is pressed', () => {
88-
page.pressKey(protractor.Key.ENTER);
89-
page.pressKey(protractor.Key.DOWN);
89+
page.pressKey(Key.ENTER);
90+
page.pressKey(Key.DOWN);
9091
page.expectFocusOn(page.items(1));
9192
});
9293

9394
it('should focus previous items when up arrow is pressed', () => {
94-
page.pressKey(protractor.Key.ENTER);
95-
page.pressKey(protractor.Key.DOWN);
96-
page.pressKey(protractor.Key.UP);
95+
page.pressKey(Key.ENTER);
96+
page.pressKey(Key.DOWN);
97+
page.pressKey(Key.UP);
9798
page.expectFocusOn(page.items(0));
9899
});
99100

100101
it('should skip disabled items using arrow keys', () => {
101-
page.pressKey(protractor.Key.ENTER);
102-
page.pressKey(protractor.Key.DOWN);
103-
page.pressKey(protractor.Key.DOWN);
102+
page.pressKey(Key.ENTER);
103+
page.pressKey(Key.DOWN);
104+
page.pressKey(Key.DOWN);
104105
page.expectFocusOn(page.items(3));
105106

106-
page.pressKey(protractor.Key.UP);
107+
page.pressKey(Key.UP);
107108
page.expectFocusOn(page.items(1));
108109
});
109110

110111
it('should close the menu when tabbing past items', () => {
111-
page.pressKey(protractor.Key.ENTER);
112-
page.pressKey(protractor.Key.TAB);
112+
page.pressKey(Key.ENTER);
113+
page.pressKey(Key.TAB);
113114
page.expectMenuPresent(false);
114115

115-
page.pressKey(protractor.Key.TAB);
116-
page.pressKey(protractor.Key.ENTER);
116+
page.pressKey(Key.TAB);
117+
page.pressKey(Key.ENTER);
117118
page.expectMenuPresent(true);
118119

119-
page.pressKey(protractor.Key.chord(protractor.Key.SHIFT, protractor.Key.TAB));
120+
page.pressKey(protractor.Key.chord(Key.SHIFT, Key.TAB));
120121
page.expectMenuPresent(false);
121122
});
122123

123124
it('should wrap back to menu when arrow keying past items', () => {
124-
page.pressKey(protractor.Key.ENTER);
125-
page.pressKey(protractor.Key.DOWN);
126-
page.pressKey(protractor.Key.DOWN);
127-
page.pressKey(protractor.Key.DOWN);
125+
page.pressKey(Key.ENTER);
126+
page.pressKey(Key.DOWN);
127+
page.pressKey(Key.DOWN);
128+
page.pressKey(Key.DOWN);
128129
page.expectFocusOn(page.items(0));
129130

130-
page.pressKey(protractor.Key.UP);
131+
page.pressKey(Key.UP);
131132
page.expectFocusOn(page.items(3));
132133
});
133134

134135
it('should focus before and after trigger when tabbing past items', () => {
135-
page.pressKey(protractor.Key.ENTER);
136-
page.pressKey(protractor.Key.TAB);
136+
page.pressKey(Key.ENTER);
137+
page.pressKey(Key.TAB);
137138
page.expectFocusOn(page.triggerTwo());
138139

139140
// navigate back to trigger
140141
page.pressKey(protractor.Key.chord(protractor.Key.SHIFT, protractor.Key.TAB));
141-
page.pressKey(protractor.Key.ENTER);
142+
page.pressKey(Key.ENTER);
142143

143144
page.pressKey(protractor.Key.chord(protractor.Key.SHIFT, protractor.Key.TAB));
144145
page.expectFocusOn(page.start());

e2e/components/progress-bar/progress-bar.e2e.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, by, element} from 'protractor';
2+
13
describe('progress-bar', () => {
24
beforeEach(() => browser.get('/progress-bar'));
35

e2e/components/progress-circle/progress-circle.e2e.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, by, element} from 'protractor';
2+
13
describe('progress-circle', () => {
24
beforeEach(() => browser.get('/progress-circle'));
35

e2e/components/radio/radio.e2e.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, by, element} from 'protractor';
2+
13
describe('radio', function () {
24

35
describe('disabling behavior', function () {

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser, element, by, protractor} from 'protractor';
2+
13
describe('slide-toggle', () => {
24

35
beforeEach(() => browser.get('slide-toggle'));
@@ -40,7 +42,7 @@ describe('slide-toggle', () => {
4042
});
4143

4244
it('should move the thumb on state change', () => {
43-
let slideToggleEl = element(By.css('#normal-slide-toggle'));
45+
let slideToggleEl = element(by.css('#normal-slide-toggle'));
4446
let thumbEl = element(by.css('#normal-slide-toggle .md-slide-toggle-thumb-container'));
4547

4648
let previousX = thumbEl.getLocation().then(pos => pos.x);

e2e/components/tabs/tabs.e2e.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import ElementArrayFinder = protractor.ElementArrayFinder;
2-
import ElementFinder = protractor.ElementFinder;
1+
import {browser, by, element, ElementArrayFinder, ElementFinder, Key} from 'protractor';
32

43
describe('tabs', () => {
54
describe('basic behavior', () => {
@@ -28,22 +27,22 @@ describe('tabs', () => {
2827
tabLabels.get(0).click();
2928
expect(getFocusStates(tabLabels)).toEqual([true, false, false]);
3029

31-
pressKey(protractor.Key.RIGHT);
30+
pressKey(Key.RIGHT);
3231
expect(getFocusStates(tabLabels)).toEqual([false, true, false]);
3332

34-
pressKey(protractor.Key.RIGHT);
33+
pressKey(Key.RIGHT);
3534
expect(getFocusStates(tabLabels)).toEqual([false, false, true]);
3635

37-
pressKey(protractor.Key.RIGHT);
36+
pressKey(Key.RIGHT);
3837
expect(getFocusStates(tabLabels)).toEqual([false, false, true]);
3938

40-
pressKey(protractor.Key.LEFT);
39+
pressKey(Key.LEFT);
4140
expect(getFocusStates(tabLabels)).toEqual([false, true, false]);
4241

43-
pressKey(protractor.Key.LEFT);
42+
pressKey(Key.LEFT);
4443
expect(getFocusStates(tabLabels)).toEqual([true, false, false]);
4544

46-
pressKey(protractor.Key.LEFT);
45+
pressKey(Key.LEFT);
4746
expect(getFocusStates(tabLabels)).toEqual([true, false, false]);
4847
});
4948
});

e2e/e2e.d.ts

Lines changed: 0 additions & 4 deletions
This file was deleted.

e2e/index.e2e.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {browser} from 'protractor';
2+
13
describe('hello, protractor', function () {
24
describe('index', function () {
35
browser.get('/');

e2e/tsconfig.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@
1111
"outDir": "../dist/e2e/",
1212
"rootDir": ".",
1313
"sourceMap": true,
14-
"target": "es5"
15-
},
16-
"files": [
17-
"e2e.d.ts"
18-
]
14+
"target": "es5",
15+
"typeRoots": [
16+
"../node_modules/@types/"
17+
],
18+
"types": [
19+
"jasmine"
20+
]
21+
}
1922
}

0 commit comments

Comments
 (0)