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",