From 4e6c41b3a1498d6db717c779bcdea72830ada1cf Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Tue, 13 Sep 2016 15:58:45 -0700 Subject: [PATCH] build(examples): work around protractor typings issues and fix existing type errors This works around the typings issues until we have a build of protractor with typings that don't polute global types via ambient type definitions --- build.sh | 3 +-- .../di/ts/contentChild/e2e_test/content_child_spec.ts | 4 ++-- .../ts/contentChildren/e2e_test/content_children_spec.ts | 4 ++-- .../core/di/ts/viewChild/e2e_test/view_child_spec.ts | 4 ++-- .../examples/core/di/ts/viewChild/view_child_example.ts | 2 +- .../di/ts/viewChildren/e2e_test/view_children_spec.ts | 4 ++-- .../forms/ts/formBuilder/e2e_test/form_builder_spec.ts | 4 ++-- .../ts/nestedFormArray/e2e_test/nested_form_array_spec.ts | 8 ++++---- .../forms/ts/nestedFormArray/nested_form_array_example.ts | 2 +- .../ts/nestedFormGroup/e2e_test/nested_form_group_spec.ts | 6 +++--- .../forms/ts/ngModelGroup/e2e_test/ng_model_group_spec.ts | 4 ++-- .../forms/ts/simpleForm/e2e_test/simple_form_spec.ts | 4 ++-- .../e2e_test/simple_form_control_spec.ts | 6 +++--- .../ts/simpleFormGroup/e2e_test/simple_form_group_spec.ts | 4 ++-- .../ts/simpleNgModel/e2e_test/simple_ng_model_spec.ts | 6 +++--- modules/@angular/examples/tsconfig.json | 6 ++++-- scripts/ci-lite/test_e2e.sh | 3 +-- 17 files changed, 37 insertions(+), 37 deletions(-) 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'