diff --git a/nativescript-angular/testing/src/nativescript_test_component_renderer.ts b/nativescript-angular/testing/src/nativescript_test_component_renderer.ts index 5cac9a488..87ad55660 100644 --- a/nativescript-angular/testing/src/nativescript_test_component_renderer.ts +++ b/nativescript-angular/testing/src/nativescript_test_component_renderer.ts @@ -1,8 +1,7 @@ import { Injectable } from "@angular/core"; import { TestComponentRenderer } from "@angular/core/testing"; -import { topmost } from "tns-core-modules/ui/frame"; -import { LayoutBase } from "tns-core-modules/ui/layouts/layout-base"; import { ProxyViewContainer } from "tns-core-modules/ui/proxy-view-container"; +import { testingRootView } from "./util"; /** * A NativeScript based implementation of the TestComponentRenderer. @@ -11,14 +10,10 @@ import { ProxyViewContainer } from "tns-core-modules/ui/proxy-view-container"; export class NativeScriptTestComponentRenderer extends TestComponentRenderer { insertRootElement(rootElId: string) { - const page = topmost().currentPage; - const layout = new ProxyViewContainer(); layout.id = rootElId; - const rootLayout = page.layoutView as LayoutBase; + const rootLayout = testingRootView(); rootLayout.addChild(layout); } - } - diff --git a/nativescript-angular/testing/src/util.ts b/nativescript-angular/testing/src/util.ts index 3cc5b8f8f..5f2e514b8 100644 --- a/nativescript-angular/testing/src/util.ts +++ b/nativescript-angular/testing/src/util.ts @@ -9,13 +9,37 @@ import { platformBrowserDynamicTesting } from "@angular/platform-browser-dynamic import { NS_COMPILER_PROVIDERS } from "../../platform"; import { NATIVESCRIPT_TESTING_PROVIDERS, NativeScriptTestingModule } from "../index"; import { CommonModule } from "@angular/common"; +import { GridLayout } from "tns-core-modules/ui/layouts/grid-layout"; + +const TESTING_ROOT_ID = "__testing_container"; + /** - * Get a reference to the root application view. + * Get a reference to the fixtures container. */ -export function testingRootView(): View { - return topmost().currentPage.content; +export function testingRootView(): LayoutBase { + const rootPageLayout = topmost().currentPage.content as LayoutBase; + + let testingRoot: LayoutBase; + rootPageLayout.eachChild(child => { + if (child.id === TESTING_ROOT_ID) { + testingRoot = child as LayoutBase; + return false; + } + return true; + }); + + if (!testingRoot) { + testingRoot = new GridLayout(); + testingRoot.id = TESTING_ROOT_ID; + GridLayout.setColumnSpan(testingRoot, 100); + GridLayout.setRowSpan(testingRoot, 100); + rootPageLayout.addChild(testingRoot); + } + + return testingRoot; } + /** * Declared test contexts. When the suite is done this map should be empty if all lifecycle * calls have happened as expected. diff --git a/tests/app/tests/test-config.ts b/tests/app/tests/test-config.ts index 4a23e10d7..6472ab7d3 100644 --- a/tests/app/tests/test-config.ts +++ b/tests/app/tests/test-config.ts @@ -1,5 +1,5 @@ (global).mocha.setup({ - timeout: 20000, + timeout: 20000 }); import * as chai from "chai"; diff --git a/tests/e2e/const.js b/tests/e2e/const.js deleted file mode 100644 index 9978b5dac..000000000 --- a/tests/e2e/const.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.initialDisplayName = "initialdisplay"; -//# sourceMappingURL=const.js.map \ No newline at end of file diff --git a/tests/e2e/helpers/image-helper.ts b/tests/e2e/helpers/image-helper.ts deleted file mode 100644 index ff82fb024..000000000 --- a/tests/e2e/helpers/image-helper.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { AppiumDriver } from "nativescript-dev-appium"; -import { assert } from "chai"; - -export class ImageHelper { - private _imagesResults = new Map(); - - constructor(private _driver: AppiumDriver) { } - - public async compareScreen(imageName, retryCounts = 1, tollerance = 0.01) { - this._imagesResults.set(imageName, await this._driver.compareScreen(imageName, retryCounts, tollerance)); - } - - public assertImages() { - for (let key in this._imagesResults) { - assert.isTrue(this._imagesResults.get(key), `Image is not correct ${key}`); - } - } - - public reset(){ - this._imagesResults.clear(); - } -} \ No newline at end of file diff --git a/tests/e2e/lazy-load-routing.ts b/tests/e2e/lazy-load-routing.ts deleted file mode 100644 index 5348e6879..000000000 --- a/tests/e2e/lazy-load-routing.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { AppiumDriver, createDriver } from "nativescript-dev-appium"; -import { assert } from "chai"; -import { ImageHelper } from "./helpers/image-helper" - -describe("lazy load routing", async function () { - let driver: AppiumDriver; - let imageHelper: ImageHelper; - const lazyLoadedDisplay = "lazyLoadedDisplay"; - - before(async () => { - driver = await createDriver(); - await driver.resetApp(); - imageHelper = new ImageHelper(driver); - }); - - afterEach("clear image results", () => { - imageHelper.reset(); - }); - - it("navigates and returns", async () => { - await (await driver.findElementByAccessibilityId("first-navigate-lazy-load")).tap(); - imageHelper.compareScreen("first-navigate-lazy-load-screen"); - - const btn = await driver.findElementByAccessibilityId("second-navigate-back-lazy-load"); - btn.tap(); - imageHelper.compareScreen("second-navigate-back-lazy-load-screen"); - - imageHelper.assertImages(); - }); - - it("navigates and clear history", async () => { - await (await driver.findElementByAccessibilityId("first-navigate-clear-history-lazy-load")).tap(); - imageHelper.compareScreen("first-navigate-clear-history-lazy-load-screen"); - - await driver.navBack(); - imageHelper.compareScreen("first-navigate-clear-history-lazy-load-nav-back-sceen"); - - imageHelper.assertImages(); - }); -}); diff --git a/tests/e2e/multi-page-routing.ts b/tests/e2e/multi-page-routing.ts deleted file mode 100644 index db4a86719..000000000 --- a/tests/e2e/multi-page-routing.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { AppiumDriver, createDriver } from "nativescript-dev-appium"; -import { assert } from "chai"; -import { ImageHelper } from "./helpers/image-helper"; - -describe("multi page routing", async () => { - let driver: AppiumDriver; - let imageHelper: ImageHelper; - - before(async () => { - driver = await createDriver(); - await driver.resetApp(); - imageHelper = new ImageHelper(driver); - }); - - afterEach(()=>{ - imageHelper.reset(); - }) - - it("navigates and returns", async () => { - let btn = await driver.findElementByAccessibilityId("first-navigate-multi-page"); - await btn.tap(); - await imageHelper.compareScreen("first-navigate-multi-page-screen", 3); - - btn = await driver.findElementByAccessibilityId("second-navigate-back-multi-page"); - await btn.tap(); - await imageHelper.compareScreen("second-navigate-back-multi-page-screen", 1, 0.01); - imageHelper.assertImages(); - }); -}); diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-lazy-load-nav-back-sceen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-lazy-load-nav-back-sceen.png deleted file mode 100644 index 4206d382b..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-lazy-load-nav-back-sceen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-lazy-load-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-lazy-load-screen.png deleted file mode 100644 index de5884ed5..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-lazy-load-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-single-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-single-page-screen.png deleted file mode 100644 index a0d4d1483..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-clear-history-single-page-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-lazy-load-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-lazy-load-screen.png deleted file mode 100644 index 2a469d51f..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-lazy-load-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-multi-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-multi-page-screen.png deleted file mode 100644 index 363719c75..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-navigate-multi-page-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-single-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-single-page-screen.png deleted file mode 100644 index e37fdef33..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/first-single-page-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-lazy-load-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-lazy-load-screen.png deleted file mode 100644 index 1be280d92..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-lazy-load-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-multi-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-multi-page-screen.png deleted file mode 100644 index 88d27dfe7..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-multi-page-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-single-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-single-page-screen.png deleted file mode 100644 index 4d1f3be8b..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api19-Default/second-navigate-back-single-page-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-lazy-load-nav-back-sceen.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-lazy-load-nav-back-sceen.png deleted file mode 100755 index 7c8653c11..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-lazy-load-nav-back-sceen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-lazy-load-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-lazy-load-screen.png deleted file mode 100755 index 7a3014a67..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-lazy-load-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-single-page-screen_actual.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-single-page-screen_actual.png deleted file mode 100755 index c76add36a..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-single-page-screen_actual.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-single-page.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-single-page.png deleted file mode 100755 index e484c2823..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-clear-history-single-page.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-lazy-load-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-lazy-load-screen.png deleted file mode 100755 index c08ba640d..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-lazy-load-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-multi-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-multi-page-screen.png deleted file mode 100755 index c96828824..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-navigate-multi-page-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-single-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-single-page-screen.png deleted file mode 100755 index 191481588..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/first-single-page-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-lazy-load-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-lazy-load-screen.png deleted file mode 100755 index 9e40c0c96..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-lazy-load-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-multi-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-multi-page-screen.png deleted file mode 100755 index 84d8b7eeb..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-multi-page-screen.png and /dev/null differ diff --git a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-single-page-screen.png b/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-single-page-screen.png deleted file mode 100755 index c29c6e503..000000000 Binary files a/tests/e2e/resources/images/ngtests/Emulator-Api24-Default/second-navigate-back-single-page-screen.png and /dev/null differ diff --git a/tests/e2e/setup.ts b/tests/e2e/setup.ts deleted file mode 100644 index 64138b8d3..000000000 --- a/tests/e2e/setup.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { startServer, stopServer, createDriver, AppiumDriver } from "nativescript-dev-appium"; - -let driver: AppiumDriver; -before("start server", async () => { - await startServer(); - driver = await createDriver(); -}); - -afterEach(async function () { - if (this.currentTest.state === "failed") { - const fullName = await this.currentTest.fullTitle(); - await driver.logScreenshot(fullName); - await driver.logPageSource(fullName); - } -}); - -after("stop server", async () => { - await driver.quit(); - await stopServer(); -}); diff --git a/tests/e2e/single-page-routing.ts b/tests/e2e/single-page-routing.ts deleted file mode 100644 index dc0a75694..000000000 --- a/tests/e2e/single-page-routing.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { AppiumDriver, createDriver } from "nativescript-dev-appium"; -import { assert } from "chai"; -import { ImageHelper } from "./helpers/image-helper"; - - -describe("single page routing", function () { - let driver: AppiumDriver; - let imageHelper: ImageHelper; - - before(async () => { - driver = await createDriver(); - await driver.resetApp(); - imageHelper = new ImageHelper(driver); - }); - - afterEach("clear image results", () => { - imageHelper.reset(); - }); - - it("navigates and returns", async () => { - let btn = (await driver.findElementByAccessibilityId("first-navigate-single-page")); - await btn.tap(); - await imageHelper.compareScreen("first-single-page-screen"); - - btn = await driver.findElementByAccessibilityId("second-navigate-back-single-page"); - await btn.tap(); - await imageHelper.compareScreen("second-navigate-back-single-page-screen"); - - imageHelper.assertImages(); - }); - - it("navigates and returns with clear history", async () => { - let btn = (await driver.findElementByAccessibilityId("first-navigate-clear-history-single-page")); - await btn.click(); - await imageHelper.compareScreen("first-navigate-clear-history-single-page-screen"); - - await driver.navBack(); - await imageHelper.compareScreen("second-navigate-back-single-page-screen"); - - imageHelper.assertImages(); - }); -}); diff --git a/tests/e2e/tsconfig.json b/tests/e2e/tsconfig.json deleted file mode 100644 index 99f58b8e6..000000000 --- a/tests/e2e/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es5", - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "importHelpers": true, - "sourceMap": true, - "types": [ - "node", - "mocha", - "chai" - ], - "lib": [ - "es6", - "dom" - ] - } -} \ No newline at end of file diff --git a/tests/hooks/before-prepare/nativescript-dev-typescript.js b/tests/hooks/before-prepare/nativescript-dev-typescript.js deleted file mode 100644 index 7116ebdb4..000000000 --- a/tests/hooks/before-prepare/nativescript-dev-typescript.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("nativescript-dev-typescript/lib/before-prepare.js"); diff --git a/tests/hooks/before-watch/nativescript-dev-typescript.js b/tests/hooks/before-watch/nativescript-dev-typescript.js deleted file mode 100644 index 9a6ef6600..000000000 --- a/tests/hooks/before-watch/nativescript-dev-typescript.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("nativescript-dev-typescript/lib/watch.js"); diff --git a/tests/karma.conf.js b/tests/karma.conf.js index b3addd839..288e702e8 100644 --- a/tests/karma.conf.js +++ b/tests/karma.conf.js @@ -49,7 +49,7 @@ module.exports = function(config) { // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, + autoWatch: false, // start these browsers diff --git a/tests/package.json b/tests/package.json index 30973dd1b..40e880253 100644 --- a/tests/package.json +++ b/tests/package.json @@ -42,36 +42,26 @@ "zone.js": "^0.8.4" }, "devDependencies": { - "@types/chai": "^4.0.2", - "@types/mocha": "^2.2.41", - "@types/node": "^7.0.5", + "@types/chai": "^4.1.4", + "@types/mocha": "^5.2.4", + "chai": "4.1.2", + "karma": "2.0.4", + "karma-chai": "0.1.0", + "karma-mocha": "1.3.0", + "karma-mocha-reporter": "2.2.5", + "karma-nativescript-launcher": "0.4.0", + "mocha": "5.2.0", + "nativescript-dev-typescript": "~0.7.0", "babel-traverse": "6.8.0", "babel-types": "6.8.1", "babylon": "6.8.0", - "chai": "^3.5.0", - "chai-as-promised": "^5.3.0", - "filewalker": "0.1.2", - "grunt-cli": "^1.2.0", - "karma": "^0.13.19", - "karma-chai": "^0.1.0", - "karma-mocha": "^0.2.1", - "karma-mocha-reporter": "^1.2.0", - "karma-nativescript-launcher": "^0.4.0", "lazy": "1.0.11", - "mocha-junit-reporter": "^1.13.0", - "mocha-multi": "^0.11.0", - "nativescript-dev-appium": "next", - "nativescript-dev-typescript": "^0.4.0", - "socket.io": "1.4.8", - "socket.io-client": "1.4.8", - "tslib": "^1.7.1", "tslint": "^4.5.1", - "typescript": "~2.7.2", - "mocha": "~3.5.0" + "typescript": "~2.7.2" }, "scripts": { "e2e": "tsc -p e2e && mocha --opts ../e2e/config/mocha.opts --recursive e2e --appiumCapsLocation ../e2e/config/appium.capabilities.json", "compile-tests-w": "tsc -p e2e --watch", "update-app-ng-deps": "update-app-ng-deps" } -} +} \ No newline at end of file diff --git a/tests/tsconfig.json b/tests/tsconfig.json index abbc8d5f9..67688d919 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -16,6 +16,9 @@ "*": [ "./node_modules/tns-core-modules/*", "./node_modules/*" + ], + "~/*": [ + "app/*" ] } },