From 8beeff2c52b331eb8901602d88aadea37101e89e Mon Sep 17 00:00:00 2001 From: Manu MA Date: Wed, 10 Jul 2019 16:21:42 +0200 Subject: [PATCH] fix(virtual-scroll): remove runOutsideAngular error (#18752) fixes #18746 --- .../virtual-scroll/virtual-scroll.ts | 4 ++-- angular/test/test-app/e2e/protractor.conf.js | 2 +- angular/test/test-app/e2e/src/form.e2e-spec.ts | 2 +- .../test/test-app/e2e/src/inputs.e2e-spec.ts | 2 +- .../test/test-app/e2e/src/modal.e2e-spec.ts | 2 +- .../test-app/e2e/src/navigation.e2e-spec.ts | 2 +- .../test-app/e2e/src/nested-outlet.e2e-spec.ts | 2 +- .../test-app/e2e/src/providers.e2e-spec.ts | 2 +- .../test-app/e2e/src/router-link.e2e-spec.ts | 4 ++-- .../test/test-app/e2e/src/slides.e2e-spec.ts | 2 +- angular/test/test-app/e2e/src/tabs.e2e-spec.ts | 2 +- angular/test/test-app/e2e/src/utils.ts | 17 +++++------------ .../test-app/e2e/src/view-child.e2e-spec.ts | 2 +- .../e2e/src/virtual-scroll.e2e-spec.ts | 18 ++++++++++++++++++ angular/test/test-app/package.json | 1 + 15 files changed, 38 insertions(+), 26 deletions(-) create mode 100644 angular/test/test-app/e2e/src/virtual-scroll.e2e-spec.ts diff --git a/angular/src/directives/virtual-scroll/virtual-scroll.ts b/angular/src/directives/virtual-scroll/virtual-scroll.ts index 4566945069..059f85a465 100644 --- a/angular/src/directives/virtual-scroll/virtual-scroll.ts +++ b/angular/src/directives/virtual-scroll/virtual-scroll.ts @@ -128,7 +128,7 @@ export class IonVirtualScroll { @ContentChild(VirtualFooter) ftrTmp!: VirtualFooter; constructor( - private zone: NgZone, + private z: NgZone, private iterableDiffers: IterableDiffers, elementRef: ElementRef, ) { @@ -162,7 +162,7 @@ export class IonVirtualScroll { } private nodeRender(el: HTMLElement | null, cell: Cell, index: number): HTMLElement { - return this.zone.run(() => { + return this.z.run(() => { let node: EmbeddedViewRef; if (!el) { node = this.itmTmp.viewContainer.createEmbeddedView( diff --git a/angular/test/test-app/e2e/protractor.conf.js b/angular/test/test-app/e2e/protractor.conf.js index b8e3b56b91..b41e371706 100644 --- a/angular/test/test-app/e2e/protractor.conf.js +++ b/angular/test/test-app/e2e/protractor.conf.js @@ -10,7 +10,7 @@ exports.config = { ], capabilities: { browserName: 'chrome', - + chromeOptions: { args: [ "--headless", "--disable-gpu", "--window-size=400,1000", "--start-maximized" ] } diff --git a/angular/test/test-app/e2e/src/form.e2e-spec.ts b/angular/test/test-app/e2e/src/form.e2e-spec.ts index 1b8ab9425c..3c26bd9d7e 100644 --- a/angular/test/test-app/e2e/src/form.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/form.e2e-spec.ts @@ -4,7 +4,7 @@ import { handleErrorMessages, setProperty, getText, waitTime } from './utils'; describe('form', () => { afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); describe('change', () => { diff --git a/angular/test/test-app/e2e/src/inputs.e2e-spec.ts b/angular/test/test-app/e2e/src/inputs.e2e-spec.ts index a17071d723..bcc01d9e5c 100644 --- a/angular/test/test-app/e2e/src/inputs.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/inputs.e2e-spec.ts @@ -8,7 +8,7 @@ describe('inputs', () => { await waitTime(30); }); afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); it('should have default value', async () => { diff --git a/angular/test/test-app/e2e/src/modal.e2e-spec.ts b/angular/test/test-app/e2e/src/modal.e2e-spec.ts index acb4e573e3..1c300b5270 100644 --- a/angular/test/test-app/e2e/src/modal.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/modal.e2e-spec.ts @@ -8,7 +8,7 @@ describe('modals', () => { await waitTime(30); }); afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); it('should open standalone modal and close', async () => { diff --git a/angular/test/test-app/e2e/src/navigation.e2e-spec.ts b/angular/test/test-app/e2e/src/navigation.e2e-spec.ts index 668e73065f..cad54e5dd7 100644 --- a/angular/test/test-app/e2e/src/navigation.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/navigation.e2e-spec.ts @@ -4,7 +4,7 @@ import { handleErrorMessages, waitTime, testStack } from './utils'; describe('navigation', () => { afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); it('should navigate correctly', async () => { diff --git a/angular/test/test-app/e2e/src/nested-outlet.e2e-spec.ts b/angular/test/test-app/e2e/src/nested-outlet.e2e-spec.ts index 7c15a29866..b7c2c2b6e2 100644 --- a/angular/test/test-app/e2e/src/nested-outlet.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/nested-outlet.e2e-spec.ts @@ -4,7 +4,7 @@ import { waitTime, handleErrorMessages, goBack } from './utils'; describe('nested-outlet', () => { afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); it('should navigate correctly', async () => { diff --git a/angular/test/test-app/e2e/src/providers.e2e-spec.ts b/angular/test/test-app/e2e/src/providers.e2e-spec.ts index 703c00b342..c3c21d6614 100644 --- a/angular/test/test-app/e2e/src/providers.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/providers.e2e-spec.ts @@ -4,7 +4,7 @@ import { handleErrorMessages, waitTime } from './utils'; describe('providers', () => { afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); it('should load all providers', async () => { diff --git a/angular/test/test-app/e2e/src/router-link.e2e-spec.ts b/angular/test/test-app/e2e/src/router-link.e2e-spec.ts index ae67891c87..1f7f8b3904 100644 --- a/angular/test/test-app/e2e/src/router-link.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/router-link.e2e-spec.ts @@ -9,7 +9,7 @@ describe('router-link params and fragments', () => { const id = 'MyPageID=='; afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); it('should go to a page with properly encoded values', async () => { @@ -53,7 +53,7 @@ describe('router-link', () => { await waitTime(30); }); afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); diff --git a/angular/test/test-app/e2e/src/slides.e2e-spec.ts b/angular/test/test-app/e2e/src/slides.e2e-spec.ts index c7c298e261..3e715f4e69 100644 --- a/angular/test/test-app/e2e/src/slides.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/slides.e2e-spec.ts @@ -8,7 +8,7 @@ describe('slides', () => { await waitTime(30); }); afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); it('should change index on slide change', async () => { diff --git a/angular/test/test-app/e2e/src/tabs.e2e-spec.ts b/angular/test/test-app/e2e/src/tabs.e2e-spec.ts index 09a5cda52f..b8b5929117 100644 --- a/angular/test/test-app/e2e/src/tabs.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/tabs.e2e-spec.ts @@ -3,7 +3,7 @@ import { waitTime, testStack, handleErrorMessages } from './utils'; describe('tabs', () => { afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); describe('entry url - /tabs', () => { beforeEach(async () => { diff --git a/angular/test/test-app/e2e/src/utils.ts b/angular/test/test-app/e2e/src/utils.ts index e02a3147c9..eab27612cf 100644 --- a/angular/test/test-app/e2e/src/utils.ts +++ b/angular/test/test-app/e2e/src/utils.ts @@ -37,19 +37,12 @@ export interface LifeCycleCount { } export function handleErrorMessages() { - browser.manage().logs().get('browser').then(function(browserLog) { - let severWarnings = false; - - for (let i; i <= browserLog.length - 1; i++) { - if (browserLog[i].level.name === 'SEVERE') { - console.log('\n' + browserLog[i].level.name); - console.log('(Possibly exception) \n' + browserLog[i].message); - - severWarnings = true; - } + return browser.manage().logs().get('browser').then(function (browserLog) { + for (let i = 0; i <= browserLog.length - 1; i++) { + if (browserLog[i].level.name_ === 'SEVERE') { + fail(browserLog[i].message); + } } - - expect(severWarnings).toBe(false); }); } diff --git a/angular/test/test-app/e2e/src/view-child.e2e-spec.ts b/angular/test/test-app/e2e/src/view-child.e2e-spec.ts index 3b93fd0864..28a49646a2 100644 --- a/angular/test/test-app/e2e/src/view-child.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/view-child.e2e-spec.ts @@ -8,7 +8,7 @@ describe('view-child', () => { await waitTime(30); }); afterEach(() => { - handleErrorMessages(); + return handleErrorMessages(); }); it('should get a reference to all children', async () => { diff --git a/angular/test/test-app/e2e/src/virtual-scroll.e2e-spec.ts b/angular/test/test-app/e2e/src/virtual-scroll.e2e-spec.ts new file mode 100644 index 0000000000..70e591904b --- /dev/null +++ b/angular/test/test-app/e2e/src/virtual-scroll.e2e-spec.ts @@ -0,0 +1,18 @@ +import { browser, element, by } from 'protractor'; +import { waitTime, handleErrorMessages } from './utils'; + +describe('virtual-scroll', () => { + afterEach(() => { + return handleErrorMessages(); + }); + beforeEach(async () => { + await browser.get('/virtual-scroll'); + await waitTime(30); + }); + + it('should open virtual-scroll', () => { + const virtualElements = element.all(by.css('ion-virtual-scroll > *')); + expect(virtualElements.count()).toBeGreaterThan(0); + }); + +}); diff --git a/angular/test/test-app/package.json b/angular/test/test-app/package.json index 32efa32802..7456003fc6 100644 --- a/angular/test/test-app/package.json +++ b/angular/test/test-app/package.json @@ -8,6 +8,7 @@ "sync": "sh scripts/sync.sh", "build": "ng build --prod --no-progress", "test": "ng e2e --prod", + "test.dev": "npm run sync && ng e2e", "lint": "ng lint" }, "private": true,