diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8dd8dcea2..554fc48b4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
+
+## [8.20.3](https://github.com/NativeScript/nativescript-angular/compare/8.20.2...8.20.3) (2019-11-13)
+
+
+### Bug Fixes
+
+* add exports for backwards compatibility ([fbd46c1](https://github.com/NativeScript/nativescript-angular/commit/fbd46c1))
+
-## [8.20.2](https://github.com/NativeScript/nativescript-angular/compare/8.20.0...8.20.2) (2019-11-12)
+## [8.20.2](https://github.com/NativeScript/nativescript-angular/compare/8.20.1...8.20.2) (2019-11-12)
### Bug Fixes
diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_active_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_active_items.png
index 665c64d86..cf0b582db 100644
Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_active_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_active_items.png differ
diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_inactive_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_inactive_items.png
index 2a4722714..dd0a15a1a 100644
Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_inactive_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_inactive_items.png differ
diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_remove_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_remove_items.png
index 665c64d86..cf0b582db 100644
Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_remove_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_remove_items.png differ
diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_reset_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_reset_items.png
index 41a11cfb9..df8a19656 100644
Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_reset_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_reset_items.png differ
diff --git a/e2e/animation-examples/e2e/smoke.e2e-spec.ts b/e2e/animation-examples/e2e/smoke.e2e-spec.ts
index d3772f3ed..9d929b361 100644
--- a/e2e/animation-examples/e2e/smoke.e2e-spec.ts
+++ b/e2e/animation-examples/e2e/smoke.e2e-spec.ts
@@ -10,6 +10,7 @@ import { AnimationsWithDefaultOptionsPage } from "./pages/animations-with-defaul
import { AnimateChildPage } from "./pages/animate-child-page";
import { HeroPage } from "./pages/hero-page";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
const isSauceRun = isSauceLab;
@@ -21,6 +22,8 @@ describe("smoke-tests", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
});
after(async function () {
@@ -145,16 +148,16 @@ describe("smoke-tests", async function () {
const heroPage = new HeroPage(driver);
await heroPage.enterExample();
await heroPage.addActive();
- let result = await driver.compareScreen("add_active_items", 5, 0.01);
+ let result = await driver.compareScreen("add_active_items", 5);
await heroPage.addInactive();
- result = await driver.compareScreen("add_inactive_items", 5, 0.01) && result;
+ result = await driver.compareScreen("add_inactive_items", 5) && result;
await heroPage.remove();
- result = await driver.compareScreen("add_remove_items", 5, 0.01) && result;
+ result = await driver.compareScreen("add_remove_items", 5) && result;
await heroPage.reset();
- result = await driver.compareScreen("add_reset_items", 5, 0.01) && result;
+ result = await driver.compareScreen("add_reset_items", 5) && result;
assert.isTrue(result, "Image verification failed!");
diff --git a/e2e/modal-navigation-ng/e2e/modal-frame.e2e-spec.ts b/e2e/modal-navigation-ng/e2e/modal-frame.e2e-spec.ts
index 9438bb3a9..4a1591617 100644
--- a/e2e/modal-navigation-ng/e2e/modal-frame.e2e-spec.ts
+++ b/e2e/modal-navigation-ng/e2e/modal-frame.e2e-spec.ts
@@ -10,6 +10,7 @@ import {
testDialogBackground
} from "./screens/shared-screen";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
const isSauceRun = isSauceLab;
@@ -23,6 +24,8 @@ describe("modal-frame:", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
screen = new Screen(driver);
});
diff --git a/e2e/modal-navigation-ng/e2e/modal-layout.e2e-spec.ts b/e2e/modal-navigation-ng/e2e/modal-layout.e2e-spec.ts
index b660f4f44..40ccb5538 100644
--- a/e2e/modal-navigation-ng/e2e/modal-layout.e2e-spec.ts
+++ b/e2e/modal-navigation-ng/e2e/modal-layout.e2e-spec.ts
@@ -6,6 +6,7 @@ import {
testDialogBackground,
} from "./screens/shared-screen";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
const isSauceRun = isSauceLab;
@@ -18,6 +19,8 @@ describe("modal-layout:", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
screen = new Screen(driver);
});
diff --git a/e2e/modal-navigation-ng/e2e/modal-on-init.e2e-spec.ts b/e2e/modal-navigation-ng/e2e/modal-on-init.e2e-spec.ts
index b72a326f1..2f0af1251 100644
--- a/e2e/modal-navigation-ng/e2e/modal-on-init.e2e-spec.ts
+++ b/e2e/modal-navigation-ng/e2e/modal-on-init.e2e-spec.ts
@@ -6,6 +6,7 @@ import {
navigateToSecondComponent
} from "./screens/shared-screen";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const roots = [
"setTabRootViewModal",
@@ -24,6 +25,8 @@ describe("modal-on-init:", async function () {
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
screen = new Screen(driver);
});
diff --git a/e2e/modal-navigation-ng/e2e/modal.shared.e2e-spec.ts b/e2e/modal-navigation-ng/e2e/modal.shared.e2e-spec.ts
index e68cc84d6..f6613b088 100644
--- a/e2e/modal-navigation-ng/e2e/modal.shared.e2e-spec.ts
+++ b/e2e/modal-navigation-ng/e2e/modal.shared.e2e-spec.ts
@@ -2,6 +2,7 @@ import { AppiumDriver, createDriver, nsCapabilities } from "nativescript-dev-app
import { Screen } from "./screens/screen";
import { assertComponent, goBack, navigateToSecondComponent } from "./screens/shared-screen";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const homeComponent = "Home Component";
const roots = ["setFrameRootView", "setTabRootView"];
@@ -16,6 +17,8 @@ describe("modal-shared:", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
screen = new Screen(driver);
});
diff --git a/e2e/nested-router-tab-view/e2e/custom-tabs.e2e-spec.ts b/e2e/nested-router-tab-view/e2e/custom-tabs.e2e-spec.ts
index 505bbe6e0..43b13ebbf 100644
--- a/e2e/nested-router-tab-view/e2e/custom-tabs.e2e-spec.ts
+++ b/e2e/nested-router-tab-view/e2e/custom-tabs.e2e-spec.ts
@@ -5,6 +5,7 @@ import {
testTeamNavigated
} from "./shared.e2e-spec";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
const isSauceRun = isSauceLab;
@@ -17,6 +18,8 @@ describe("custom-tabs:", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
screen = new Screen(driver);
});
diff --git a/e2e/nested-router-tab-view/e2e/home-tabs.e2e-spec.ts b/e2e/nested-router-tab-view/e2e/home-tabs.e2e-spec.ts
index e10ab1edd..a6319c29c 100644
--- a/e2e/nested-router-tab-view/e2e/home-tabs.e2e-spec.ts
+++ b/e2e/nested-router-tab-view/e2e/home-tabs.e2e-spec.ts
@@ -6,6 +6,7 @@ import {
testPlayerNextNavigated
} from "./shared.e2e-spec";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
const isSauceRun = isSauceLab;
@@ -20,6 +21,8 @@ describe("home-tabs:", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
screen = new Screen(driver);
});
diff --git a/e2e/nested-router-tab-view/e2e/split-view.e2e-spec.ts b/e2e/nested-router-tab-view/e2e/split-view.e2e-spec.ts
index 3145a70c7..f3a0490fe 100644
--- a/e2e/nested-router-tab-view/e2e/split-view.e2e-spec.ts
+++ b/e2e/nested-router-tab-view/e2e/split-view.e2e-spec.ts
@@ -9,6 +9,7 @@ import {
canGoBack
} from "./shared.e2e-spec";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
const isSauceRun = isSauceLab;
@@ -23,6 +24,8 @@ describe("split-view:", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
screen = new Screen(driver);
});
diff --git a/e2e/nested-router-tab-view/e2e/tab-view.e2e-spec.ts b/e2e/nested-router-tab-view/e2e/tab-view.e2e-spec.ts
index 5cb9e884e..a1955d5d4 100644
--- a/e2e/nested-router-tab-view/e2e/tab-view.e2e-spec.ts
+++ b/e2e/nested-router-tab-view/e2e/tab-view.e2e-spec.ts
@@ -7,6 +7,7 @@ import {
testTeamNextNavigated,
} from "./shared.e2e-spec";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
const isSauceRun = isSauceLab;
@@ -19,6 +20,8 @@ describe("tab-view:", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
screen = new Screen(driver);
});
diff --git a/e2e/renderer/e2e/action-bar.e2e-spec.ts b/e2e/renderer/e2e/action-bar.e2e-spec.ts
index 11834ec4c..e4d34f011 100644
--- a/e2e/renderer/e2e/action-bar.e2e-spec.ts
+++ b/e2e/renderer/e2e/action-bar.e2e-spec.ts
@@ -12,6 +12,7 @@ const isSauceRun = isSauceLab;
import { isOnTheLeft } from "./helpers/location";
import { assert } from "chai";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
describe("Action Bar scenario", async function () {
let driver: AppiumDriver;
@@ -20,6 +21,8 @@ describe("Action Bar scenario", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
await driver.driver.resetApp();
});
diff --git a/e2e/renderer/e2e/ngfor.e2e-spec.ts b/e2e/renderer/e2e/ngfor.e2e-spec.ts
index 66ce292ee..a003f2c69 100644
--- a/e2e/renderer/e2e/ngfor.e2e-spec.ts
+++ b/e2e/renderer/e2e/ngfor.e2e-spec.ts
@@ -8,6 +8,7 @@ import {
import { isAbove } from "./helpers/location";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
const isSauceRun = isSauceLab;
@@ -23,6 +24,8 @@ describe("ngFor scenario", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
await driver.driver.resetApp();
});
diff --git a/e2e/renderer/e2e/ngforof.e2e-spec.ts b/e2e/renderer/e2e/ngforof.e2e-spec.ts
index ef0d88004..2a8cc9eb6 100644
--- a/e2e/renderer/e2e/ngforof.e2e-spec.ts
+++ b/e2e/renderer/e2e/ngforof.e2e-spec.ts
@@ -8,6 +8,7 @@ import {
import { isAbove } from "./helpers/location";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
@@ -28,6 +29,8 @@ describe("ngForOf scenario", function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
await driver.driver.resetApp();
});
diff --git a/e2e/renderer/e2e/ngif.e2e-spec.ts b/e2e/renderer/e2e/ngif.e2e-spec.ts
index af8737c72..48bdce7ed 100644
--- a/e2e/renderer/e2e/ngif.e2e-spec.ts
+++ b/e2e/renderer/e2e/ngif.e2e-spec.ts
@@ -10,6 +10,7 @@ import { isAbove } from "./helpers/location";
import { assert } from "chai";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
@@ -22,6 +23,8 @@ describe("ngIf scenario", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
await driver.driver.resetApp();
});
diff --git a/e2e/renderer/e2e/page-router-outlet.e2e-spec.ts b/e2e/renderer/e2e/page-router-outlet.e2e-spec.ts
index 46b09358e..8adc9e9cf 100644
--- a/e2e/renderer/e2e/page-router-outlet.e2e-spec.ts
+++ b/e2e/renderer/e2e/page-router-outlet.e2e-spec.ts
@@ -18,6 +18,8 @@ describe("page-router-outlet-scenario", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
await driver.driver.resetApp();
});
diff --git a/e2e/renderer/e2e/tab-view.e2e-spec.ts b/e2e/renderer/e2e/tab-view.e2e-spec.ts
index 77c7e4fe7..93950c6a6 100644
--- a/e2e/renderer/e2e/tab-view.e2e-spec.ts
+++ b/e2e/renderer/e2e/tab-view.e2e-spec.ts
@@ -18,6 +18,8 @@ describe("TabView-scenario", async function(){
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
await driver.driver.resetApp();
});
diff --git a/e2e/routable-animations/e2e/tests.e2e.ts b/e2e/routable-animations/e2e/tests.e2e.ts
index 83ede4906..6f693b745 100644
--- a/e2e/routable-animations/e2e/tests.e2e.ts
+++ b/e2e/routable-animations/e2e/tests.e2e.ts
@@ -13,6 +13,8 @@ describe("sample scenario", function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
});
after(async function () {
diff --git a/e2e/router-tab-view/e2e/tab-view-navigation.e2e-spec.ts b/e2e/router-tab-view/e2e/tab-view-navigation.e2e-spec.ts
index 9634d032b..7b316de75 100644
--- a/e2e/router-tab-view/e2e/tab-view-navigation.e2e-spec.ts
+++ b/e2e/router-tab-view/e2e/tab-view-navigation.e2e-spec.ts
@@ -1,6 +1,7 @@
import { AppiumDriver, createDriver, SearchOptions, nsCapabilities } from "nativescript-dev-appium";
import { assert } from "chai";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
@@ -11,6 +12,8 @@ describe("TabView with page-router-outlet in each tab", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
});
after(async function () {
diff --git a/e2e/router/e2e/router.e2e-spec.ts b/e2e/router/e2e/router.e2e-spec.ts
index 9d600f8ab..e22514e2c 100644
--- a/e2e/router/e2e/router.e2e-spec.ts
+++ b/e2e/router/e2e/router.e2e-spec.ts
@@ -6,16 +6,19 @@ import {
nsCapabilities,
} from "nativescript-dev-appium";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
-describe("Router", async function(){
+describe("Router", async function () {
let driver: AppiumDriver;
- before(async function(){
+ before(async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
await driver.resetApp();
});
@@ -35,44 +38,44 @@ describe("Router", async function(){
}
});
- describe("Simple navigate and back", async function(){
+ describe("Simple navigate and back", async function () {
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to Second(1)\\master", async function(){
+ it("should navigate to Second(1)\\master", async function () {
await findAndClick(driver, "GO TO SECOND");
await assureSecondComponent(driver, 1);
await assureNestedMasterComponent(driver);
});
- it("should navigate back to First", async function(){
+ it("should navigate back to First", async function () {
await goBack(driver);
await assureFirstComponent(driver);
});
});
- describe("Navigate inside nested outlet", async function(){
+ describe("Navigate inside nested outlet", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to Second(1)\\master", async function(){
+ it("should navigate to Second(1)\\master", async function () {
await findAndClick(driver, "GO TO SECOND");
await assureSecondComponent(driver, 1)
await assureNestedMasterComponent(driver);
});
- it("should navigate to Second(1)\\detail(1) and back", async function(){
+ it("should navigate to Second(1)\\detail(1) and back", async function () {
const detailBtn = await driver.findElementByAutomationText("DETAIL 1");
detailBtn.click();
await assureSecondComponent(driver, 1)
@@ -83,7 +86,7 @@ describe("Router", async function(){
await assureNestedMasterComponent(driver);
});
- it("should navigate to Second(1)\\detail(2) and back", async function(){
+ it("should navigate to Second(1)\\detail(2) and back", async function () {
const detailBtn = await driver.findElementByAutomationText("DETAIL 2");
detailBtn.click();
await assureSecondComponent(driver, 1)
@@ -94,31 +97,31 @@ describe("Router", async function(){
await assureNestedMasterComponent(driver);
});
- it("should navigate back to First", async function(){
+ it("should navigate back to First", async function () {
await goBack(driver);
await assureFirstComponent(driver);
});
});
- describe("Navigate to same component with different param", async function(){
+ describe("Navigate to same component with different param", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to Second(1)\\master", async function(){
+ it("should navigate to Second(1)\\master", async function () {
await findAndClick(driver, "GO TO SECOND");
await assureSecondComponent(driver, 1)
await assureNestedMasterComponent(driver);
});
- it("should navigate to Second(2)\\master", async function(){
+ it("should navigate to Second(2)\\master", async function () {
const navigationButton =
await driver.findElementByAutomationText("GO TO NEXT SECOND");
navigationButton.click();
@@ -127,38 +130,38 @@ describe("Router", async function(){
await assureNestedMasterComponent(driver);
});
- it("should navigate back to Second(1)\\master", async function(){
+ it("should navigate back to Second(1)\\master", async function () {
await goBack(driver);
await assureSecondComponent(driver, 1)
await assureNestedMasterComponent(driver);
});
- it("should navigate back to First", async function(){
+ it("should navigate back to First", async function () {
await goBack(driver);
await assureFirstComponent(driver);
});
});
- describe("Nested navigation + page navigation", async function(){
+ describe("Nested navigation + page navigation", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to Second(1)\\master", async function(){
+ it("should navigate to Second(1)\\master", async function () {
await findAndClick(driver, "GO TO SECOND");
await assureSecondComponent(driver, 1)
await assureNestedMasterComponent(driver);
});
- it("should navigate to Second(1)\\detail(1)", async function(){
+ it("should navigate to Second(1)\\detail(1)", async function () {
const detailBtn = await driver.findElementByAutomationText("DETAIL 1");
detailBtn.click();
@@ -166,7 +169,7 @@ describe("Router", async function(){
await assureNestedDetailComponent(driver, 1);
});
- it("should navigate to Second(2)\\master", async function(){
+ it("should navigate to Second(2)\\master", async function () {
const navigationButton =
await driver.findElementByAutomationText("GO TO NEXT SECOND");
navigationButton.click();
@@ -175,7 +178,7 @@ describe("Router", async function(){
await assureNestedMasterComponent(driver);
});
- it("should navigate to Second(2)\\detail(2)", async function(){
+ it("should navigate to Second(2)\\detail(2)", async function () {
const detailBtn = await driver.findElementByAutomationText("DETAIL 2");
detailBtn.click();
@@ -183,13 +186,13 @@ describe("Router", async function(){
await assureNestedDetailComponent(driver, 2);
});
- it("should navigate to First", async function(){
+ it("should navigate to First", async function () {
await findAndClick(driver, "GO TO FIRST");
await assureFirstComponent(driver);
});
- it("should navigate the whole stack", async function(){
+ it("should navigate the whole stack", async function () {
await goBack(driver);
await assureSecondComponent(driver, 2)
await assureNestedDetailComponent(driver, 2);
@@ -211,30 +214,30 @@ describe("Router", async function(){
});
});
- describe("Nested name navigation + page navigation", async function(){
+ describe("Nested name navigation + page navigation", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to Second(1)\\master", async function(){
+ it("should navigate to Second(1)\\master", async function () {
await findAndClick(driver, "GO TO SECOND");
await assureSecondComponent(driver, 1)
await assureNestedMasterComponent(driver);
});
- it("should load nested named Master", async function(){
+ it("should load nested named Master", async function () {
await findAndClick(driver, "LOAD NESTED NAMED OUTLET");
await assureNamedNestedMasterComponent(driver);
});
- it("should navigate to nested named Master Detail\\1", async function(){
+ it("should navigate to nested named Master Detail\\1", async function () {
const navigationButton =
await driver.findElementByAutomationText("DETAIL-NAMED 1");
navigationButton.click();
@@ -242,7 +245,7 @@ describe("Router", async function(){
await assureNamedNestedDetailComponent(driver, 1);
});
- it("should navigate back to Master and navigate to Detail\\2", async function(){
+ it("should navigate back to Master and navigate to Detail\\2", async function () {
let navigationButton =
await driver.findElementByAutomationText("BACK-NESTED");
navigationButton.click();
@@ -257,65 +260,65 @@ describe("Router", async function(){
});
});
- describe("Shouldn't be able to navigate back on startup", async function(){
+ describe("Shouldn't be able to navigate back on startup", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("shouldn't be able to go back", async function(){
+ it("shouldn't be able to go back", async function () {
await goBack(driver);
await driver.findElementByAutomationText("canGoBack() - false");
});
});
- describe("Shouldn't be able to navigate back after cleared history", async function(){
+ describe("Shouldn't be able to navigate back after cleared history", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to Second(1)\\master", async function(){
+ it("should navigate to Second(1)\\master", async function () {
await findAndClick(driver, "GO TO SECOND");
await assureSecondComponent(driver, 1)
await assureNestedMasterComponent(driver);
});
- it("should navigate to Second(1)\\master", async function(){
+ it("should navigate to Second(1)\\master", async function () {
await findAndClick(driver, "GO TO FIRST(CLEAR)");
await assureFirstComponent(driver);
});
- it("shouldn't be able to go back", async function(){
+ it("shouldn't be able to go back", async function () {
await goBack(driver);
await driver.findElementByAutomationText("canGoBack() - false");
});
});
- describe("Navigate to componentless route", async function(){
+ describe("Navigate to componentless route", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to ComponentlessSecond(100)/detail(200)", async function(){
+ it("should navigate to ComponentlessSecond(100)/detail(200)", async function () {
const navigationButton =
await driver.findElementByAutomationText("GO TO C-LESS SECOND");
navigationButton.click();
@@ -324,13 +327,13 @@ describe("Router", async function(){
await assureNestedDetailComponent(driver, 200);
});
- it("should navigate to First", async function(){
+ it("should navigate to First", async function () {
await findAndClick(driver, "GO TO FIRST");
await assureFirstComponent(driver);
});
- it("should navigate the whole stack", async function(){
+ it("should navigate the whole stack", async function () {
await goBack(driver);
await assureSecondComponent(driver, 100)
await assureNestedDetailComponent(driver, 200);
@@ -340,38 +343,38 @@ describe("Router", async function(){
});
});
- describe("Navigate to lazy module", async function(){
+ describe("Navigate to lazy module", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to lazy\\home", async function(){
+ it("should navigate to lazy\\home", async function () {
await findAndClick(driver, "GO TO LAZY HOME");
await assureLazyComponent(driver);
});
- it("should navigate to First", async function(){
+ it("should navigate to First", async function () {
await findAndClick(driver, "GO TO FIRST");
await assureFirstComponent(driver);
});
- it("should navigate back to lazy\\home", async function(){
+ it("should navigate back to lazy\\home", async function () {
await goBack(driver);
await assureLazyComponent(driver);
});
- it("should navigate to First again", async function(){
+ it("should navigate to First again", async function () {
await findAndClick(driver, "GO TO FIRST");
await assureFirstComponent(driver);
});
- it("should navigate the whole stack", async function(){
+ it("should navigate the whole stack", async function () {
await goBack(driver);
await assureLazyComponent(driver);
@@ -380,36 +383,36 @@ describe("Router", async function(){
});
});
- describe("Navigate to componentless lazy module route", async function(){
+ describe("Navigate to componentless lazy module route", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should navigate to nest\\more (componentless lazy route)", async function(){
+ it("should navigate to nest\\more (componentless lazy route)", async function () {
await findAndClick(driver, "GO TO C-LESS LAZY");
await assureComponentlessLazyComponent(driver);
});
- it("should navigate to lazy\\home", async function(){
+ it("should navigate to lazy\\home", async function () {
await findAndClick(driver, "GO TO LAZY HOME");
await assureLazyComponent(driver);
});
- it("should navigate to First", async function(){
+ it("should navigate to First", async function () {
await findAndClick(driver, "GO TO FIRST");
await assureFirstComponent(driver);
});
- it("should navigate the whole stack", async function(){
+ it("should navigate the whole stack", async function () {
await goBack(driver);
await assureLazyComponent(driver);
@@ -421,30 +424,30 @@ describe("Router", async function(){
});
});
- describe("Simple navigate and back should trigger only one CD on FirstComponent", async function(){
+ describe("Simple navigate and back should trigger only one CD on FirstComponent", async function () {
- before(async function(){
+ before(async function () {
nsCapabilities.testReporter.context = this;
await driver.resetApp();
});
- it("should find First", async function(){
+ it("should find First", async function () {
await assureFirstComponent(driver);
});
- it("should reset counter", async function(){
+ it("should reset counter", async function () {
await findAndClick(driver, "RESET");
await driver.waitForElement("CHECK: 1");
});
- it("should navigate to Second(1)\\master", async function(){
+ it("should navigate to Second(1)\\master", async function () {
await findAndClick(driver, "GO TO SECOND");
await assureSecondComponent(driver, 1);
await assureNestedMasterComponent(driver);
});
- it("should navigate back to First", async function(){
+ it("should navigate back to First", async function () {
await goBack(driver);
await assureFirstComponent(driver);
await driver.waitForElement("CHECK: 2");
@@ -455,9 +458,11 @@ describe("Router", async function(){
before(async function () {
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
await driver.resetApp();
});
-
+
it("should find First", async function () {
await assureFirstComponent(driver);
});
diff --git a/e2e/single-page/e2e/tests.e2e-spec.ts b/e2e/single-page/e2e/tests.e2e-spec.ts
index def70f38b..fb6d16d3c 100644
--- a/e2e/single-page/e2e/tests.e2e-spec.ts
+++ b/e2e/single-page/e2e/tests.e2e-spec.ts
@@ -4,6 +4,7 @@ import {
nsCapabilities,
} from "nativescript-dev-appium";
import { isSauceLab } from "nativescript-dev-appium/lib/parser";
+import { ImageOptions } from "nativescript-dev-appium/lib/image-options";
const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout.
@@ -14,6 +15,8 @@ describe("Single page app", async function () {
this.timeout(QUEUE_WAIT_TIME);
nsCapabilities.testReporter.context = this;
driver = await createDriver();
+ driver.imageHelper.defaultTolerance = 50;
+ driver.imageHelper.defaultToleranceType = ImageOptions.pixel;
});
after(async function () {
diff --git a/nativescript-angular-package/forms/value-accessors/checked-value-accessor.ts b/nativescript-angular-package/forms/value-accessors/checked-value-accessor.ts
new file mode 100644
index 000000000..27f9059a7
--- /dev/null
+++ b/nativescript-angular-package/forms/value-accessors/checked-value-accessor.ts
@@ -0,0 +1 @@
+export * from "@nativescript/angular/forms/value-accessors/checked-value-accessor";
\ No newline at end of file
diff --git a/nativescript-angular-package/forms/value-accessors/date-value-accessor.ts b/nativescript-angular-package/forms/value-accessors/date-value-accessor.ts
new file mode 100644
index 000000000..f3640a34c
--- /dev/null
+++ b/nativescript-angular-package/forms/value-accessors/date-value-accessor.ts
@@ -0,0 +1 @@
+export * from "@nativescript/angular/forms/value-accessors/date-value-accessor";
\ No newline at end of file
diff --git a/nativescript-angular-package/forms/value-accessors/number-value-accessor.ts b/nativescript-angular-package/forms/value-accessors/number-value-accessor.ts
new file mode 100644
index 000000000..5f9ff4ec8
--- /dev/null
+++ b/nativescript-angular-package/forms/value-accessors/number-value-accessor.ts
@@ -0,0 +1 @@
+export * from "@nativescript/angular/forms/value-accessors/number-value-accessor";
\ No newline at end of file
diff --git a/nativescript-angular-package/forms/value-accessors/selectedIndex-value-accessor.ts b/nativescript-angular-package/forms/value-accessors/selectedIndex-value-accessor.ts
new file mode 100644
index 000000000..8ae5a0419
--- /dev/null
+++ b/nativescript-angular-package/forms/value-accessors/selectedIndex-value-accessor.ts
@@ -0,0 +1 @@
+export * from "@nativescript/angular/forms/value-accessors/selectedIndex-value-accessor";
\ No newline at end of file
diff --git a/nativescript-angular-package/forms/value-accessors/text-value-accessor.ts b/nativescript-angular-package/forms/value-accessors/text-value-accessor.ts
new file mode 100644
index 000000000..81db7183d
--- /dev/null
+++ b/nativescript-angular-package/forms/value-accessors/text-value-accessor.ts
@@ -0,0 +1 @@
+export * from "@nativescript/angular/forms/value-accessors/text-value-accessor";
\ No newline at end of file
diff --git a/nativescript-angular-package/forms/value-accessors/time-value-accessor.ts b/nativescript-angular-package/forms/value-accessors/time-value-accessor.ts
new file mode 100644
index 000000000..98647ee2e
--- /dev/null
+++ b/nativescript-angular-package/forms/value-accessors/time-value-accessor.ts
@@ -0,0 +1 @@
+export * from "@nativescript/angular/forms/value-accessors/time-value-accessor";
\ No newline at end of file
diff --git a/nativescript-angular-package/package.json b/nativescript-angular-package/package.json
index 33fc4f677..a75e62caf 100644
--- a/nativescript-angular-package/package.json
+++ b/nativescript-angular-package/package.json
@@ -1,6 +1,6 @@
{
"name": "nativescript-angular",
- "version": "8.20.2",
+ "version": "8.20.3",
"description": "An Angular renderer that lets you build mobile apps with NativeScript.",
"homepage": "https://www.nativescript.org/",
"bugs": "https://github.com/NativeScript/nativescript-angular/issues",
diff --git a/nativescript-angular-package/router/router-extensions.ts b/nativescript-angular-package/router/router-extensions.ts
new file mode 100644
index 000000000..f98a28146
--- /dev/null
+++ b/nativescript-angular-package/router/router-extensions.ts
@@ -0,0 +1 @@
+export * from "@nativescript/angular/router/router-extensions";
\ No newline at end of file
diff --git a/nativescript-angular/package.json b/nativescript-angular/package.json
index bbf93ee95..279250572 100644
--- a/nativescript-angular/package.json
+++ b/nativescript-angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@nativescript/angular",
- "version": "8.20.2",
+ "version": "8.20.3",
"description": "An Angular renderer that lets you build mobile apps with NativeScript.",
"homepage": "https://www.nativescript.org/",
"bugs": "https://github.com/NativeScript/nativescript-angular/issues",