From 36d7cef03f25ad588f199221b0067bd1ddbaad50 Mon Sep 17 00:00:00 2001 From: Miles Malerba Date: Thu, 22 Aug 2019 11:04:26 -0700 Subject: [PATCH 1/2] feat(cdk-experimental/testing): Add a public stabilize method to TestElement --- .../testing/protractor/protractor-element.ts | 2 ++ src/cdk-experimental/testing/test-element.ts | 12 ++++++++---- .../testing/testbed/unit-test-element.ts | 4 ++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/cdk-experimental/testing/protractor/protractor-element.ts b/src/cdk-experimental/testing/protractor/protractor-element.ts index 8ad28131e365..446006fcc126 100644 --- a/src/cdk-experimental/testing/protractor/protractor-element.ts +++ b/src/cdk-experimental/testing/protractor/protractor-element.ts @@ -141,4 +141,6 @@ export class ProtractorElement implements TestElement { async getProperty(name: string): Promise { return browser.executeScript(`return arguments[0][arguments[1]]`, this.element, name); } + + async stabilize(): Promise {} } diff --git a/src/cdk-experimental/testing/test-element.ts b/src/cdk-experimental/testing/test-element.ts index bb7a18f3ce7b..9e2e75e479c5 100644 --- a/src/cdk-experimental/testing/test-element.ts +++ b/src/cdk-experimental/testing/test-element.ts @@ -90,10 +90,7 @@ export interface TestElement { /** Gets the text from the element. */ text(): Promise; - /** - * Gets the value for the given attribute from the element. If the attribute does not exist, - * falls back to reading the property. - */ + /** Gets the value for the given attribute from the element. */ getAttribute(name: string): Promise; /** Checks whether the element has the given class. */ @@ -104,4 +101,11 @@ export interface TestElement { /** Gets the value of a property of an element. */ getProperty(name: string): Promise; + + /** + * Flushes change detection and async tasks. + * In most cases it should not be necessary to call this. However, there may be some edge cases + * where it is needed to fully flush animation events. + */ + stabilize(): Promise; } diff --git a/src/cdk-experimental/testing/testbed/unit-test-element.ts b/src/cdk-experimental/testing/testbed/unit-test-element.ts index 117e46c61384..3319b331ba2a 100644 --- a/src/cdk-experimental/testing/testbed/unit-test-element.ts +++ b/src/cdk-experimental/testing/testbed/unit-test-element.ts @@ -137,4 +137,8 @@ export class UnitTestElement implements TestElement { await this._stabilize(); return (this.element as any)[name]; } + + async stabilize(): Promise { + return this._stabilize(); + } } From 8fa91b9bf35e8c67bc601e449312df9cfacc57c2 Mon Sep 17 00:00:00 2001 From: Miles Malerba Date: Thu, 22 Aug 2019 16:03:01 -0700 Subject: [PATCH 2/2] rename to `forceStabilize` --- src/cdk-experimental/testing/protractor/protractor-element.ts | 2 +- src/cdk-experimental/testing/test-element.ts | 2 +- src/cdk-experimental/testing/testbed/unit-test-element.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cdk-experimental/testing/protractor/protractor-element.ts b/src/cdk-experimental/testing/protractor/protractor-element.ts index 446006fcc126..210afcb30264 100644 --- a/src/cdk-experimental/testing/protractor/protractor-element.ts +++ b/src/cdk-experimental/testing/protractor/protractor-element.ts @@ -142,5 +142,5 @@ export class ProtractorElement implements TestElement { return browser.executeScript(`return arguments[0][arguments[1]]`, this.element, name); } - async stabilize(): Promise {} + async forceStabilize(): Promise {} } diff --git a/src/cdk-experimental/testing/test-element.ts b/src/cdk-experimental/testing/test-element.ts index 9e2e75e479c5..b549400ab2e6 100644 --- a/src/cdk-experimental/testing/test-element.ts +++ b/src/cdk-experimental/testing/test-element.ts @@ -107,5 +107,5 @@ export interface TestElement { * In most cases it should not be necessary to call this. However, there may be some edge cases * where it is needed to fully flush animation events. */ - stabilize(): Promise; + forceStabilize(): Promise; } diff --git a/src/cdk-experimental/testing/testbed/unit-test-element.ts b/src/cdk-experimental/testing/testbed/unit-test-element.ts index 3319b331ba2a..4b65f98daa42 100644 --- a/src/cdk-experimental/testing/testbed/unit-test-element.ts +++ b/src/cdk-experimental/testing/testbed/unit-test-element.ts @@ -138,7 +138,7 @@ export class UnitTestElement implements TestElement { return (this.element as any)[name]; } - async stabilize(): Promise { + async forceStabilize(): Promise { return this._stabilize(); } }