Skip to content

Commit 33edff5

Browse files
crisbetojelbourn
authored andcommitted
build: update jasmine for improved type safety (#8350)
* Bumps the version of Jasmine to allow for better type safety in the assertions. * Fixes a few new compilation errors.
1 parent 8dfe470 commit 33edff5

16 files changed

+7224
-6888
lines changed

e2e/components/button-e2e.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ describe('button', () => {
88

99
it('should prevent click handlers from executing when disabled', async () => {
1010
element(by.id('test-button')).click();
11-
expect(element(by.id('click-counter')).getText()).toEqual('1');
11+
expect(await element(by.id('click-counter')).getText()).toEqual('1');
1212

1313
await browser.wait(ExpectedConditions.not(
1414
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))));
1515
screenshot('clicked once');
1616

1717
element(by.id('disable-toggle')).click();
1818
element(by.id('test-button')).click();
19-
expect(element(by.id('click-counter')).getText()).toEqual('1');
19+
expect(await element(by.id('click-counter')).getText()).toEqual('1');
2020

2121
await browser.wait(ExpectedConditions.not(
2222
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))));

e2e/components/expansion-e2e.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ describe('expansion', () => {
1111
});
1212

1313
it('should show two panels', async () => {
14-
expect(element.all(by.css('.mat-expansion-panel')).count()).toBe(2);
14+
expect(await element.all(by.css('.mat-expansion-panel')).count()).toBe(2);
1515
screenshot();
1616
});
1717

1818
it('should hide contents of the expansion panel on click', async () => {
1919
const panelHeader = element.all(by.css('.mat-expansion-panel-header')).get(0);
2020
const panelContent = element.all(by.css('.mat-expansion-panel-content')).get(0);
2121

22-
expect(panelContent.isDisplayed()).toBe(false);
22+
expect(await panelContent.isDisplayed()).toBe(false);
2323

2424
panelHeader.click();
2525

26-
expect(panelContent.isDisplayed()).toBe(true);
26+
expect(await panelContent.isDisplayed()).toBe(true);
2727
});
2828

2929
it('should emit events for expanding and collapsing', async () => {

e2e/components/fullscreen-e2e.spec.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,36 @@ describe('fullscreen', () => {
44

55
beforeEach(() => browser.get('/fullscreen'));
66

7-
it('should open a dialog inside a fullscreen element and move it to the document body', () => {
7+
it('should open a dialog inside a fullscreen element and move it to the body', async () => {
88
element(by.id('fullscreen-open')).click();
99
element(by.id('dialog-open')).click();
1010

11-
expectOverlayInFullscreen();
11+
await expectOverlayInFullscreen();
1212

1313
element(by.id('dialog-fullscreen-exit')).click();
14-
expectOverlayInBody();
14+
await expectOverlayInBody();
1515
});
1616

17-
it('should open a dialog inside the document body and move it to a fullscreen element', () => {
17+
it('should open a dialog inside the body and move it to a fullscreen element', async () => {
1818
element(by.id('dialog-open')).click();
19-
expectOverlayInBody();
19+
await expectOverlayInBody();
2020

2121
element(by.id('dialog-fullscreen-open')).click();
22-
expectOverlayInFullscreen();
22+
await expectOverlayInFullscreen();
2323

2424
element(by.id('dialog-fullscreen-exit')).click();
25-
expectOverlayInBody();
25+
await expectOverlayInBody();
2626
});
2727

2828
/** Expects the overlay container to be inside of the body element. */
29-
function expectOverlayInBody() {
30-
expect(browser.isElementPresent(by.css('body > .cdk-overlay-container')))
29+
async function expectOverlayInBody() {
30+
expect(await browser.isElementPresent(by.css('body > .cdk-overlay-container')))
3131
.toBe(true, 'Expected the overlay container to be inside of the body.');
3232
}
3333

3434
/** Expects the overlay container to be in fullscreen mode. */
35-
function expectOverlayInFullscreen() {
36-
expect(browser.isElementPresent(by.css('#fullscreen-pane > .cdk-overlay-container')))
35+
async function expectOverlayInFullscreen() {
36+
expect(await browser.isElementPresent(by.css('#fullscreen-pane > .cdk-overlay-container')))
3737
.toBe(true, 'Expected the overlay container to be in fullscreen mode.');
3838
}
3939

e2e/components/input-e2e.spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@ describe('input', () => {
1212
describe('text input', () => {
1313
beforeEach(() => browser.get('/input'));
1414

15-
it('should update input value when user types', () => {
15+
it('should update input value when user types', async () => {
1616
let input = element(by.id('text-input'));
1717
input.sendKeys('abc123');
18-
expect(input.getAttribute('value')).toBe('abc123');
18+
expect(await input.getAttribute('value')).toBe('abc123');
1919
});
2020
});
2121

2222
describe('number input', () => {
2323
beforeEach(() => browser.get('/input'));
2424

25-
it('should update input value when user types', () => {
25+
it('should update input value when user types', async () => {
2626
let input = element(by.id('number-input'));
2727
input.sendKeys('abc123');
28-
expect(input.getAttribute('value')).toBe('123');
28+
expect(await input.getAttribute('value')).toBe('123');
2929
});
3030

3131
it('should increment when increment button clicked', async () => {
@@ -40,24 +40,24 @@ describe('input', () => {
4040
.click()
4141
.perform();
4242

43-
expect(input.getAttribute('value')).toBe('1');
43+
expect(await input.getAttribute('value')).toBe('1');
4444

4545
browser.actions()
4646
.mouseMove(input, {x: size.width - 5, y: size.height - 5})
4747
.click()
4848
.perform();
4949

50-
expect(input.getAttribute('value')).toBe('0');
50+
expect(await input.getAttribute('value')).toBe('0');
5151
});
5252
});
5353

5454
describe('textarea', () => {
5555
beforeEach(() => browser.get('/input'));
5656

57-
it('should update input value when user types', () => {
57+
it('should update input value when user types', async () => {
5858
let input = element(by.id('text-area'));
5959
input.sendKeys('abc123');
60-
expect(input.getAttribute('value')).toBe('abc123');
60+
expect(await input.getAttribute('value')).toBe('abc123');
6161
});
6262
});
6363

e2e/components/menu-e2e.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ describe('menu', () => {
1818

1919
beforeEach(() => page = new MenuPage());
2020

21-
it('should open menu when the trigger is clicked', () => {
21+
it('should open menu when the trigger is clicked', async () => {
2222
expectToExist(menuSelector, false);
2323
page.trigger().click();
2424

2525
expectToExist(menuSelector);
26-
expect(page.menu().getText()).toEqual('One\nTwo\nThree\nFour');
26+
expect(await page.menu().getText()).toEqual('One\nTwo\nThree\nFour');
2727
screenshot();
2828
});
2929

@@ -34,29 +34,29 @@ describe('menu', () => {
3434
screenshot();
3535
});
3636

37-
it('should run click handlers on regular menu items', () => {
37+
it('should run click handlers on regular menu items', async () => {
3838
page.trigger().click();
3939
page.items(0).click();
40-
expect(page.getResultText()).toEqual('one');
40+
expect(await page.getResultText()).toEqual('one');
4141
screenshot('one');
4242

4343
page.trigger().click();
4444
page.items(1).click();
45-
expect(page.getResultText()).toEqual('two');
45+
expect(await page.getResultText()).toEqual('two');
4646
screenshot('two');
4747
});
4848

49-
it('should run not run click handlers on disabled menu items', () => {
49+
it('should run not run click handlers on disabled menu items', async () => {
5050
page.trigger().click();
5151
page.items(2).click();
52-
expect(page.getResultText()).toEqual('');
52+
expect(await page.getResultText()).toEqual('');
5353
screenshot();
5454
});
5555

5656
it('should support multiple triggers opening the same menu', async () => {
5757
page.triggerTwo().click();
5858

59-
expect(page.menu().getText()).toEqual('One\nTwo\nThree\nFour');
59+
expect(await page.menu().getText()).toEqual('One\nTwo\nThree\nFour');
6060
expectAlignedWith(page.menu(), '#trigger-two');
6161

6262
page.backdrop().click();
@@ -65,7 +65,7 @@ describe('menu', () => {
6565

6666
page.trigger().click();
6767

68-
expect(page.menu().getText()).toEqual('One\nTwo\nThree\nFour');
68+
expect(await page.menu().getText()).toEqual('One\nTwo\nThree\nFour');
6969
expectAlignedWith(page.menu(), '#trigger');
7070

7171
page.backdrop().click();

e2e/components/progress-spinner-e2e.spec.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ import {browser, by, element} from 'protractor';
33
describe('progress-spinner', () => {
44
beforeEach(() => browser.get('/progress-spinner'));
55

6-
it('should render a determinate progress spinner', () => {
7-
expect(element(by.css('mat-progress-spinner')).isPresent()).toBe(true);
6+
it('should render a determinate progress spinner', async () => {
7+
expect(await element(by.css('mat-progress-spinner')).isPresent()).toBe(true);
88
});
99

10-
it('should render an indeterminate progress spinner', () => {
11-
expect(element(by.css('mat-progress-spinner[mode="indeterminate"]')).isPresent()).toBe(true);
10+
it('should render an indeterminate progress spinner', async () => {
11+
expect(await element(by.css('mat-progress-spinner[mode="indeterminate"]')).isPresent())
12+
.toBe(true);
1213
});
1314

14-
it('should render a spinner', () => {
15-
expect(element(by.css('mat-spinner')).isPresent()).toBe(true);
15+
it('should render a spinner', async () => {
16+
expect(await element(by.css('mat-spinner')).isPresent()).toBe(true);
1617
});
1718
});

e2e/components/stepper-e2e.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ describe('stepper', () => {
1919
const previousButton = element.all(by.buttonText('Back'));
2020
const nextButton = element.all(by.buttonText('Next'));
2121

22-
expect(element(by.css('mat-step-header[aria-selected="true"]')).getText())
22+
expect(await element(by.css('mat-step-header[aria-selected="true"]')).getText())
2323
.toBe('1\nFill out your name');
2424

2525
screenshot('start');
2626
nextButton.get(0).click();
2727

28-
expect(element(by.css('mat-step-header[aria-selected="true"]')).getText())
28+
expect(await element(by.css('mat-step-header[aria-selected="true"]')).getText())
2929
.toBe('2\nFill out your address');
3030

3131
await browser.wait(ExpectedConditions.not(
@@ -34,7 +34,7 @@ describe('stepper', () => {
3434

3535
previousButton.get(0).click();
3636

37-
expect(element(by.css('mat-step-header[aria-selected="true"]')).getText())
37+
expect(await element(by.css('mat-step-header[aria-selected="true"]')).getText())
3838
.toBe('1\nFill out your name');
3939

4040
await browser.wait(ExpectedConditions.not(
@@ -73,11 +73,11 @@ describe('stepper', () => {
7373
linearButton.click();
7474
});
7575

76-
it('should not move to next step when stepper button is clicked', () => {
76+
it('should not move to next step when stepper button is clicked', async () => {
7777
let nextButton = element.all(by.buttonText('Next'));
7878
nextButton.get(0).click();
7979

80-
expect(element(by.css('mat-step-header[aria-selected="true"]')).getText())
80+
expect(await element(by.css('mat-step-header[aria-selected="true"]')).getText())
8181
.toBe('1\nFill out your name');
8282
});
8383
});

e2e/components/tabs-e2e.spec.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,46 +26,46 @@ describe('tabs', () => {
2626

2727
it('should change tabs when the label is clicked', async () => {
2828
tabLabels.get(1).click();
29-
expect(getLabelActiveStates(tabLabels)).toEqual([false, true, false]);
30-
expect(getBodyActiveStates(tabBodies)).toEqual([false, true, false]);
29+
expect(await getLabelActiveStates(tabLabels)).toEqual([false, true, false]);
30+
expect(await getBodyActiveStates(tabBodies)).toEqual([false, true, false]);
3131

3232
await browser.wait(ExpectedConditions.not(
3333
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))));
3434
screenshot('click1');
3535

3636
tabLabels.get(0).click();
37-
expect(getLabelActiveStates(tabLabels)).toEqual([true, false, false]);
38-
expect(getBodyActiveStates(tabBodies)).toEqual([true, false, false]);
37+
expect(await getLabelActiveStates(tabLabels)).toEqual([true, false, false]);
38+
expect(await getBodyActiveStates(tabBodies)).toEqual([true, false, false]);
3939

4040
await browser.wait(ExpectedConditions.not(
4141
ExpectedConditions.presenceOf(element(by.css('div.mat-ripple-element')))));
4242
screenshot('click0');
4343
});
4444

45-
it('should change focus with keyboard interaction', () => {
45+
it('should change focus with keyboard interaction', async () => {
4646
let right = Key.RIGHT;
4747
let left = Key.LEFT;
4848

4949
tabLabels.get(0).click();
50-
expect(getFocusStates(tabLabels)).toEqual([true, false, false]);
50+
expect(await getFocusStates(tabLabels)).toEqual([true, false, false]);
5151

5252
pressKeys(right);
53-
expect(getFocusStates(tabLabels)).toEqual([false, true, false]);
53+
expect(await getFocusStates(tabLabels)).toEqual([false, true, false]);
5454

5555
pressKeys(right);
56-
expect(getFocusStates(tabLabels)).toEqual([false, false, true]);
56+
expect(await getFocusStates(tabLabels)).toEqual([false, false, true]);
5757

5858
pressKeys(right);
59-
expect(getFocusStates(tabLabels)).toEqual([false, false, true]);
59+
expect(await getFocusStates(tabLabels)).toEqual([false, false, true]);
6060

6161
pressKeys(left);
62-
expect(getFocusStates(tabLabels)).toEqual([false, true, false]);
62+
expect(await getFocusStates(tabLabels)).toEqual([false, true, false]);
6363

6464
pressKeys(left);
65-
expect(getFocusStates(tabLabels)).toEqual([true, false, false]);
65+
expect(await getFocusStates(tabLabels)).toEqual([true, false, false]);
6666

6767
pressKeys(left);
68-
expect(getFocusStates(tabLabels)).toEqual([true, false, false]);
68+
expect(await getFocusStates(tabLabels)).toEqual([true, false, false]);
6969
});
7070
});
7171
});
@@ -74,8 +74,8 @@ describe('tabs', () => {
7474
* Returns an array of true/false that represents the focus states of the provided elements.
7575
*/
7676
async function getFocusStates(elements: ElementArrayFinder) {
77-
return elements.map(async (element) => {
78-
let elementText = await element!.getText();
77+
return elements.map(async el => {
78+
let elementText = await el!.getText();
7979
let activeText = await browser.driver.switchTo().activeElement().getText();
8080

8181
return activeText === elementText;
@@ -97,8 +97,8 @@ function getBodyActiveStates(elements: ElementArrayFinder) {
9797
* each element.
9898
*/
9999
async function getClassStates(elements: ElementArrayFinder, className: string) {
100-
return elements.map(async (element) => {
101-
let classes = await element!.getAttribute('class');
100+
return elements.map(async el => {
101+
let classes = await el!.getAttribute('class');
102102
return classes.split(/ +/g).indexOf(className) >= 0;
103103
});
104104
}

e2e/index-e2e.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import {browser} from 'protractor';
33
describe('hello, protractor', () => {
44
describe('index', () => {
55
browser.get('/');
6-
it('should have a title', () => {
7-
expect(browser.getTitle()).toBe('Angular Material');
6+
it('should have a title', async () => {
7+
expect(await browser.getTitle()).toBe('Angular Material');
88
});
99
});
1010
});

0 commit comments

Comments
 (0)