diff --git a/build.sh b/build.sh
index cda38ed9f3..68432abe2c 100755
--- a/build.sh
+++ b/build.sh
@@ -161,5 +161,4 @@ do
fi
done
-# TODO(i): uncomment once the protractor typings issue is resolved
-#./modules/@angular/examples/build.sh
+./modules/@angular/examples/build.sh
diff --git a/modules/@angular/examples/core/di/ts/contentChild/e2e_test/content_child_spec.ts b/modules/@angular/examples/core/di/ts/contentChild/e2e_test/content_child_spec.ts
index 119a346ac8..bd73e30f96 100644
--- a/modules/@angular/examples/core/di/ts/contentChild/e2e_test/content_child_spec.ts
+++ b/modules/@angular/examples/core/di/ts/contentChild/e2e_test/content_child_spec.ts
@@ -10,8 +10,8 @@ import {verifyNoBrowserErrors} from '../../../../../_common/e2e_util';
describe('contentChild example', () => {
afterEach(verifyNoBrowserErrors);
- let button: ElementFinder;
- let result: ElementFinder;
+ let button: protractor.ElementFinder;
+ let result: protractor.ElementFinder;
beforeEach(() => {
browser.get('/core/di/ts/contentChild/index.html');
diff --git a/modules/@angular/examples/core/di/ts/contentChildren/e2e_test/content_children_spec.ts b/modules/@angular/examples/core/di/ts/contentChildren/e2e_test/content_children_spec.ts
index 663d3f3631..78849f7682 100644
--- a/modules/@angular/examples/core/di/ts/contentChildren/e2e_test/content_children_spec.ts
+++ b/modules/@angular/examples/core/di/ts/contentChildren/e2e_test/content_children_spec.ts
@@ -10,8 +10,8 @@ import {verifyNoBrowserErrors} from '../../../../../_common/e2e_util';
describe('contentChildren example', () => {
afterEach(verifyNoBrowserErrors);
- let button: ElementFinder;
- let result: ElementFinder;
+ let button: protractor.ElementFinder;
+ let result: protractor.ElementFinder;
beforeEach(() => {
browser.get('/core/di/ts/contentChildren/index.html');
diff --git a/modules/@angular/examples/core/di/ts/viewChild/e2e_test/view_child_spec.ts b/modules/@angular/examples/core/di/ts/viewChild/e2e_test/view_child_spec.ts
index bdb9a19369..84e97be36c 100644
--- a/modules/@angular/examples/core/di/ts/viewChild/e2e_test/view_child_spec.ts
+++ b/modules/@angular/examples/core/di/ts/viewChild/e2e_test/view_child_spec.ts
@@ -10,8 +10,8 @@ import {verifyNoBrowserErrors} from '../../../../../_common/e2e_util';
describe('viewChild example', () => {
afterEach(verifyNoBrowserErrors);
- let button: ElementFinder;
- let result: ElementFinder;
+ let button: protractor.ElementFinder;
+ let result: protractor.ElementFinder;
beforeEach(() => {
browser.get('/core/di/ts/viewChild/index.html');
diff --git a/modules/@angular/examples/core/di/ts/viewChild/view_child_example.ts b/modules/@angular/examples/core/di/ts/viewChild/view_child_example.ts
index 6ed0d10c49..a2108de5b6 100644
--- a/modules/@angular/examples/core/di/ts/viewChild/view_child_example.ts
+++ b/modules/@angular/examples/core/di/ts/viewChild/view_child_example.ts
@@ -25,7 +25,7 @@ export class Pane {
Selected: {{selectedPane}}
`,
})
-export class ViewChildComp implements AfterViewInit {
+export class ViewChildComp {
@ViewChild(Pane)
set pane(v: Pane) {
setTimeout(() => { this.selectedPane = v.id; }, 0);
diff --git a/modules/@angular/examples/core/di/ts/viewChildren/e2e_test/view_children_spec.ts b/modules/@angular/examples/core/di/ts/viewChildren/e2e_test/view_children_spec.ts
index ddbc45e6c2..b6de6c1217 100644
--- a/modules/@angular/examples/core/di/ts/viewChildren/e2e_test/view_children_spec.ts
+++ b/modules/@angular/examples/core/di/ts/viewChildren/e2e_test/view_children_spec.ts
@@ -10,8 +10,8 @@ import {verifyNoBrowserErrors} from '../../../../../_common/e2e_util';
describe('viewChildren example', () => {
afterEach(verifyNoBrowserErrors);
- let button: ElementFinder;
- let result: ElementFinder;
+ let button: protractor.ElementFinder;
+ let result: protractor.ElementFinder;
beforeEach(() => {
browser.get('/core/di/ts/viewChildren/index.html');
diff --git a/modules/@angular/examples/forms/ts/formBuilder/e2e_test/form_builder_spec.ts b/modules/@angular/examples/forms/ts/formBuilder/e2e_test/form_builder_spec.ts
index 80417ce408..10bf2fd6b4 100644
--- a/modules/@angular/examples/forms/ts/formBuilder/e2e_test/form_builder_spec.ts
+++ b/modules/@angular/examples/forms/ts/formBuilder/e2e_test/form_builder_spec.ts
@@ -10,8 +10,8 @@ import {verifyNoBrowserErrors} from '../../../../_common/e2e_util';
describe('formBuilder example', () => {
afterEach(verifyNoBrowserErrors);
- let inputs: ElementFinder;
- let paragraphs: ElementFinder;
+ let inputs: protractor.ElementArrayFinder;
+ let paragraphs: protractor.ElementArrayFinder;
beforeEach(() => {
browser.get('/forms/ts/formBuilder/index.html');
diff --git a/modules/@angular/examples/forms/ts/nestedFormArray/e2e_test/nested_form_array_spec.ts b/modules/@angular/examples/forms/ts/nestedFormArray/e2e_test/nested_form_array_spec.ts
index fbb73bdd0b..d1110e7097 100644
--- a/modules/@angular/examples/forms/ts/nestedFormArray/e2e_test/nested_form_array_spec.ts
+++ b/modules/@angular/examples/forms/ts/nestedFormArray/e2e_test/nested_form_array_spec.ts
@@ -10,8 +10,8 @@ import {verifyNoBrowserErrors} from '../../../../_common/e2e_util';
describe('nestedFormArray example', () => {
afterEach(verifyNoBrowserErrors);
- let inputs: ElementFinder;
- let buttons: ElementFinder;
+ let inputs: protractor.ElementArrayFinder;
+ let buttons: protractor.ElementArrayFinder;
beforeEach(() => {
browser.get('/forms/ts/nestedFormArray/index.html');
@@ -25,12 +25,12 @@ describe('nestedFormArray example', () => {
});
it('should add inputs programmatically', () => {
- expect(browser.isElementPresent(inputs.get(2))).toBe(false);
+ expect(inputs.count()).toBe(2);
buttons.get(1).click();
inputs = element.all(by.css('input'));
- expect(browser.isElementPresent(inputs.get(2))).toBe(true);
+ expect(inputs.count()).toBe(3);
});
it('should set the value programmatically', () => {
diff --git a/modules/@angular/examples/forms/ts/nestedFormArray/nested_form_array_example.ts b/modules/@angular/examples/forms/ts/nestedFormArray/nested_form_array_example.ts
index 02fe72ec23..e42b5a703a 100644
--- a/modules/@angular/examples/forms/ts/nestedFormArray/nested_form_array_example.ts
+++ b/modules/@angular/examples/forms/ts/nestedFormArray/nested_form_array_example.ts
@@ -34,7 +34,7 @@ export class NestedFormArray {
]),
});
- get cities(): FormArray { return this.form.get('cities'); }
+ get cities(): FormArray { return this.form.get('cities') as FormArray; }
addCity() { this.cities.push(new FormControl()); }
diff --git a/modules/@angular/examples/forms/ts/nestedFormGroup/e2e_test/nested_form_group_spec.ts b/modules/@angular/examples/forms/ts/nestedFormGroup/e2e_test/nested_form_group_spec.ts
index a879c1a926..c647de3421 100644
--- a/modules/@angular/examples/forms/ts/nestedFormGroup/e2e_test/nested_form_group_spec.ts
+++ b/modules/@angular/examples/forms/ts/nestedFormGroup/e2e_test/nested_form_group_spec.ts
@@ -10,9 +10,9 @@ import {verifyNoBrowserErrors} from '../../../../_common/e2e_util';
describe('nestedFormGroup example', () => {
afterEach(verifyNoBrowserErrors);
- let firstInput: ElementFinder;
- let lastInput: ElementFinder;
- let button: ElementFinder;
+ let firstInput: protractor.ElementFinder;
+ let lastInput: protractor.ElementFinder;
+ let button: protractor.ElementFinder;
beforeEach(() => {
browser.get('/forms/ts/nestedFormGroup/index.html');
diff --git a/modules/@angular/examples/forms/ts/ngModelGroup/e2e_test/ng_model_group_spec.ts b/modules/@angular/examples/forms/ts/ngModelGroup/e2e_test/ng_model_group_spec.ts
index fc48df654f..cd88eadff0 100644
--- a/modules/@angular/examples/forms/ts/ngModelGroup/e2e_test/ng_model_group_spec.ts
+++ b/modules/@angular/examples/forms/ts/ngModelGroup/e2e_test/ng_model_group_spec.ts
@@ -10,8 +10,8 @@ import {verifyNoBrowserErrors} from '../../../../_common/e2e_util';
describe('ngModelGroup example', () => {
afterEach(verifyNoBrowserErrors);
- let inputs: ElementFinder;
- let buttons: ElementFinder;
+ let inputs: protractor.ElementArrayFinder;
+ let buttons: protractor.ElementArrayFinder;
beforeEach(() => {
browser.get('/forms/ts/ngModelGroup/index.html');
diff --git a/modules/@angular/examples/forms/ts/simpleForm/e2e_test/simple_form_spec.ts b/modules/@angular/examples/forms/ts/simpleForm/e2e_test/simple_form_spec.ts
index 6be39bc1ce..3c04ff20d1 100644
--- a/modules/@angular/examples/forms/ts/simpleForm/e2e_test/simple_form_spec.ts
+++ b/modules/@angular/examples/forms/ts/simpleForm/e2e_test/simple_form_spec.ts
@@ -10,8 +10,8 @@ import {verifyNoBrowserErrors} from '../../../../_common/e2e_util';
describe('simpleForm example', () => {
afterEach(verifyNoBrowserErrors);
- let inputs: ElementFinder;
- let paragraphs: ElementFinder;
+ let inputs: protractor.ElementArrayFinder;
+ let paragraphs: protractor.ElementArrayFinder;
beforeEach(() => {
browser.get('/forms/ts/simpleForm/index.html');
diff --git a/modules/@angular/examples/forms/ts/simpleFormControl/e2e_test/simple_form_control_spec.ts b/modules/@angular/examples/forms/ts/simpleFormControl/e2e_test/simple_form_control_spec.ts
index 82165df137..7fb8727aaa 100644
--- a/modules/@angular/examples/forms/ts/simpleFormControl/e2e_test/simple_form_control_spec.ts
+++ b/modules/@angular/examples/forms/ts/simpleFormControl/e2e_test/simple_form_control_spec.ts
@@ -12,9 +12,9 @@ describe('simpleFormControl example', () => {
afterEach(verifyNoBrowserErrors);
describe('index view', () => {
- let input: ElementFinder;
- let valueP: ElementFinder;
- let statusP: ElementFinder;
+ let input: protractor.ElementFinder;
+ let valueP: protractor.ElementFinder;
+ let statusP: protractor.ElementFinder;
beforeEach(() => {
browser.get('/forms/ts/simpleFormControl/index.html');
diff --git a/modules/@angular/examples/forms/ts/simpleFormGroup/e2e_test/simple_form_group_spec.ts b/modules/@angular/examples/forms/ts/simpleFormGroup/e2e_test/simple_form_group_spec.ts
index b9a93beb4c..6be81ee8bb 100644
--- a/modules/@angular/examples/forms/ts/simpleFormGroup/e2e_test/simple_form_group_spec.ts
+++ b/modules/@angular/examples/forms/ts/simpleFormGroup/e2e_test/simple_form_group_spec.ts
@@ -12,8 +12,8 @@ describe('formControlName example', () => {
afterEach(verifyNoBrowserErrors);
describe('index view', () => {
- let firstInput: ElementFinder;
- let lastInput: ElementFinder;
+ let firstInput: protractor.ElementFinder;
+ let lastInput: protractor.ElementFinder;
beforeEach(() => {
browser.get('/forms/ts/simpleFormGroup/index.html');
diff --git a/modules/@angular/examples/forms/ts/simpleNgModel/e2e_test/simple_ng_model_spec.ts b/modules/@angular/examples/forms/ts/simpleNgModel/e2e_test/simple_ng_model_spec.ts
index de8507a7a2..05eb7d059a 100644
--- a/modules/@angular/examples/forms/ts/simpleNgModel/e2e_test/simple_ng_model_spec.ts
+++ b/modules/@angular/examples/forms/ts/simpleNgModel/e2e_test/simple_ng_model_spec.ts
@@ -10,9 +10,9 @@ import {verifyNoBrowserErrors} from '../../../../_common/e2e_util';
describe('simpleNgModel example', () => {
afterEach(verifyNoBrowserErrors);
- let input: ElementFinder;
- let paragraphs: ElementFinder;
- let button: ElementFinder;
+ let input: protractor.ElementFinder;
+ let paragraphs: protractor.ElementArrayFinder;
+ let button: protractor.ElementFinder;
beforeEach(() => {
browser.get('/forms/ts/simpleNgModel/index.html');
diff --git a/modules/@angular/examples/tsconfig.json b/modules/@angular/examples/tsconfig.json
index 6cb84ba05b..44c47067ff 100644
--- a/modules/@angular/examples/tsconfig.json
+++ b/modules/@angular/examples/tsconfig.json
@@ -16,7 +16,7 @@
"target": "es5",
"lib": ["es2015", "dom"],
"skipLibCheck": true,
- "types": ["jasmine", "protractor", "node"]
+ "types": ["jasmine", "node"]
},
"include": [
"./_common/*.ts",
@@ -24,6 +24,8 @@
"./**/test/*.ts",
"./**/e2e_test/*.ts",
"../../../node_modules/zone.js/dist/zone.js.d.ts",
- "../../system.d.ts"
+ "../../system.d.ts",
+ // TODO(i): we can't use protractor's built-in typings because they contain lots of ambient definitions
+ "../../../node_modules/@types/protractor/index.d.ts",
]
}
diff --git a/scripts/ci-lite/test_e2e.sh b/scripts/ci-lite/test_e2e.sh
index e355998bcf..ae68d17ed7 100755
--- a/scripts/ci-lite/test_e2e.sh
+++ b/scripts/ci-lite/test_e2e.sh
@@ -37,8 +37,7 @@ if [[ ${TRAVIS} ]]; then
sh -e /etc/init.d/xvfb start
fi
NODE_PATH=$NODE_PATH:./dist/all $(npm bin)/protractor ./protractor-e2e.conf.js --bundles=true
-# TODO(i): uncomment once the protractor typings issue is resolved
-#NODE_PATH=$NODE_PATH:./dist/all $(npm bin)/protractor ./protractor-examples-e2e.conf.js --bundles=true
+NODE_PATH=$NODE_PATH:./dist/all $(npm bin)/protractor ./protractor-examples-e2e.conf.js --bundles=true
NODE_PATH=$NODE_PATH:./dist/all $(npm bin)/protractor ./protractor-perf.conf.js --bundles=true --dryrun
echo 'travis_fold:end:test.e2e.localChrome'