Skip to content

Commit e0b3497

Browse files
Fix tests
1 parent 4e8aeca commit e0b3497

18 files changed

+95
-499
lines changed

tests/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ typings
66
.tscache
77

88
app/**/*.js
9+
e2e/**/*.js
910
app/**/*.map
11+
e2e/**/*.map
12+
e2e/reports
13+
test-results.xml
1014
platforms
1115
lib

tests/e2e/const.js

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/e2e/const.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const initialDisplayName = "initialdisplay";

tests/e2e/lazy-load-routing.ts

Lines changed: 46 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,58 @@
1-
"use strict";
2-
var nsAppium = require("nativescript-dev-appium");
1+
import { AppiumDriver, createDriver } from "nativescript-dev-appium";
2+
import { assert } from "chai";
3+
import { initialDisplayName } from "./const";
34

4-
describe("lazy load routing", function () {
5-
this.timeout(360000);
6-
var driver;
5+
describe("lazy load routing", async function () {
6+
let driver: AppiumDriver;
7+
const imagesResults = new Map<string, boolean>();
8+
const lazyLoadedDisplay = "lazyLoadedDisplay";
79

8-
before(function () {
9-
driver = nsAppium.createDriver();
10+
before(async () => {
11+
driver = await createDriver();
12+
await driver.resetApp();
1013
});
1114

12-
after(function () {
13-
return driver
14-
.quit()
15-
.finally(function () {
16-
console.log("Driver quit successfully");
17-
});
15+
afterEach("clear image results", () => {
16+
imagesResults.clear();
1817
});
1918

20-
it("loads default path", function () {
21-
return driver
22-
.waitForElementByAccessibilityId("first-lazy-load", 300000)
23-
.elementByAccessibilityId("first-lazy-load")
24-
.should.eventually.exist
25-
.text().should.eventually.equal("First: lazy-load")
19+
const loadFirstLazyLoadPage = async () => {
20+
await (await driver.findElementByAccessibilityId("first-navigate-lazy-load")).tap();
21+
}
22+
23+
it("loads default path", async () => {
24+
const initDisplay = await driver.compareScreen(initialDisplayName, 1, 0.01);
25+
assert.isTrue(initDisplay);
2626
});
2727

28-
it("navigates and returns", function () {
29-
var expectedHookLog = [
30-
"first.init", // <-- load
31-
"second.init", // <-- forward (first component is not destroyed)
32-
"second.destroy"] // <-- back (first component is reused)
33-
.join(",");
34-
return driver
35-
.waitForElementByAccessibilityId("first-navigate-lazy-load", 300000)
36-
.elementByAccessibilityId("first-navigate-lazy-load")
37-
.should.eventually.exist
38-
.tap()
39-
.elementByAccessibilityId("second-lazy-load")
40-
.should.eventually.exist
41-
.text().should.eventually.equal("Second: lazy-load")
42-
.elementByAccessibilityId("router-location-strategy-states-lazy-load")
43-
.text().should.eventually.equal("/first/lazy-load,/second/lazy-load")
44-
.elementByAccessibilityId("second-navigate-back-lazy-load")
45-
.should.eventually.exist
46-
.tap()
47-
.elementByAccessibilityId("first-lazy-load")
48-
.should.eventually.exist
49-
.text().should.eventually.equal("First: lazy-load")
50-
.elementByAccessibilityId("hooks-log-lazy-load")
51-
.text().should.eventually.equal(expectedHookLog)
28+
it("navigates and returns", async () => {
29+
await loadFirstLazyLoadPage();
30+
compareScreen(lazyLoadedDisplay);
31+
32+
const btn = await driver.findElementByAccessibilityId("second-navigate-back-lazy-load");
33+
btn.tap();
34+
compareScreen(initialDisplayName);
35+
36+
assertImages();
5237
});
5338

54-
it("navigates and clear history", function() {
55-
return driver
56-
.waitForElementByAccessibilityId("first-navigate-lazy-load", 300000)
57-
.elementByAccessibilityId("first-navigate-clear-history-lazy-load")
58-
.should.eventually.exist
59-
.tap()
60-
.elementByAccessibilityId("second-lazy-load")
61-
.should.eventually.exist
62-
.text().should.eventually.equal("Second: lazy-load")
63-
.elementByAccessibilityId("router-location-strategy-states-lazy-load")
64-
.text().should.eventually.equal("/second/lazy-load")
39+
it("navigates and clear history", async () => {
40+
await loadFirstLazyLoadPage();
41+
compareScreen(lazyLoadedDisplay);
42+
43+
await driver.navBack();
44+
compareScreen(initialDisplayName);
45+
46+
assertImages();
6547
});
48+
49+
async function compareScreen(imageName){
50+
imagesResults.set(lazyLoadedDisplay, await driver.compareScreen("lazyLoaded", 1, 0.01));
51+
}
52+
53+
function assertImages(){
54+
for (let key in imagesResults) {
55+
assert.isTrue(imagesResults.get(key), `Image is not correct ${key}`);
56+
}
57+
}
6658
});

tests/e2e/multi-page-routing.ts

Lines changed: 17 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,24 @@
1-
"use strict";
2-
var nsAppium = require("nativescript-dev-appium");
1+
import { AppiumDriver, createDriver } from "nativescript-dev-appium";
2+
import { assert } from "chai";
3+
import { initialDisplayName } from "./const";
34

4-
describe("multi page routing", function () {
5-
this.timeout(360000);
6-
var driver;
5+
describe("multi page routing", async () => {
6+
let driver: AppiumDriver;
77

8-
before(function () {
9-
driver = nsAppium.createDriver();
8+
before(async () => {
9+
driver = await createDriver();
10+
await driver.resetApp();
1011
});
1112

12-
after(function () {
13-
return driver
14-
.quit()
15-
.finally(function () {
16-
console.log("Driver quit successfully");
17-
});
18-
});
19-
20-
it("loads default path", function () {
21-
return driver
22-
.waitForElementByAccessibilityId("first-multi-page", 300000)
23-
.elementByAccessibilityId("first-multi-page")
24-
.should.eventually.exist
25-
.text().should.eventually.equal("First: multi-page")
26-
});
13+
it("navigates and returns", async () => {
14+
let btn = await driver.findElementByAccessibilityId("first-navigate-multi-page");
15+
await btn.tap();
16+
let result = await driver.compareScreen("multiPage", 1, 0.01);
17+
assert.isTrue(result, `Multi page screen is not correct!`);
2718

28-
it("navigates and returns", function () {
29-
var expectedHookLog = [
30-
"first.init", // <-- load
31-
"second.init", // <-- forward (first component is not destroyed)
32-
"second.destroy"] // <-- back (first component is reused)
33-
.join(",");
34-
return driver
35-
.waitForElementByAccessibilityId("first-navigate-multi-page", 300000)
36-
.elementByAccessibilityId("first-navigate-multi-page")
37-
.should.eventually.exist
38-
.tap()
39-
.elementByAccessibilityId("second-multi-page")
40-
.should.eventually.exist
41-
.text().should.eventually.equal("Second: multi-page")
42-
.elementByAccessibilityId("second-navigate-back-multi-page")
43-
.should.eventually.exist
44-
.tap()
45-
.elementByAccessibilityId("first-multi-page")
46-
.should.eventually.exist
47-
.text().should.eventually.equal("First: multi-page")
48-
.elementByAccessibilityId("hooks-log-multi-page")
49-
.text().should.eventually.equal(expectedHookLog)
19+
btn = await driver.findElementByAccessibilityId("second-navigate-back-multi-page");
20+
await btn.tap();
21+
result = await driver.compareScreen("multiPageInitialDisplay",1,0.01);
22+
assert.isTrue(result, `Init screen is not correct!!!`);
5023
});
5124
});
Loading
Loading
Loading
Loading
Loading
Loading

tests/e2e/setup.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ before("start server", async () => {
88

99
afterEach(async function () {
1010
if (this.currentTest.state === "failed") {
11-
await driver.logScreenshot(this.currentTest.title);
11+
const fullName = await this.currentTest.fullTitle();
12+
await driver.logScreenshot(fullName);
13+
await driver.logPageSource(fullName);
1214
}
1315
});
1416

tests/e2e/single-page-routing.ts

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { AppiumDriver, createDriver } from "nativescript-dev-appium";
22
import { assert } from "chai";
33

44
describe("single page routing", function () {
5-
this.timeout(360000);
65
let driver: AppiumDriver;
76

87
before(async () => {
98
driver = await createDriver();
9+
await driver.resetApp();
1010
});
1111

1212
it("loads default path", async function () {
@@ -15,30 +15,19 @@ describe("single page routing", function () {
1515
});
1616

1717
it("navigates and returns", async function () {
18-
var expectedHookLog = [
19-
"first.init", // <--load
20-
"first.destroy", // <--forward
21-
"second.init",
22-
"second.destroy", // <--back
23-
"first.init"].join(",");
18+
let btn = (await driver.findElementByAccessibilityId("first-single-page"));
19+
await btn.tap();
20+
let result = await driver.compareScreen("first-single-page", 1, 0.01);
21+
assert.isTrue(result, `First-single-page page screen is not correct!`);
2422

25-
await driver.click("first-single-page");
23+
btn = await driver.findElementByAccessibilityId("Single-page router");
24+
await btn.tap();
25+
result = await driver.compareScreen("second-navigate-back-single-page", 1, 0.01);
26+
assert.isTrue(result, `Second-navigate-back-single-page screen is not correct!!!`);
2627

27-
return driver
28-
.waitForElementByAccessibilityId("first-single-page", 300000)
29-
.elementByAccessibilityId("first-navigate-single-page")
30-
.should.eventually.exist
31-
.tap()
32-
.elementByAccessibilityId("second-single-page")
33-
.should.eventually.exist
34-
.text().should.eventually.equal("Second: single-page")
35-
.elementByAccessibilityId("second-navigate-back-single-page")
36-
.should.eventually.exist
37-
.tap()
38-
.elementByAccessibilityId("first-single-page")
39-
.should.eventually.exist
40-
.text().should.eventually.equal("First: single-page")
41-
.elementByAccessibilityId("hooks-log-single-page")
42-
.text().should.eventually.equal(expectedHookLog)
28+
btn = await driver.findElementByAccessibilityId("first-single-page");
29+
await btn.tap();
30+
result = await driver.compareScreen("first-single-page-after-nav", 1, 0.01);
31+
assert.isTrue(result, `First-single-page screen is not correct!!!`);
4332
});
4433
});

tests/e2e/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"experimentalDecorators": true,
66
"emitDecoratorMetadata": true,
77
"importHelpers": true,
8+
"sourceMap": true,
89
"types": [
910
"node",
1011
"mocha",

tests/package.json

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,19 @@
5858
"karma-mocha-reporter": "^1.2.0",
5959
"karma-nativescript-launcher": "^0.4.0",
6060
"lazy": "1.0.11",
61-
"mocha": "^2.4.5",
6261
"mocha-junit-reporter": "^1.13.0",
6362
"mocha-multi": "^0.11.0",
64-
"nativescript-dev-appium": "file:../../nativescript-dev-appium/nativescript-dev-appium-3.0.0.tgz",
63+
"nativescript-dev-appium": "next",
6564
"nativescript-dev-typescript": "^0.4.0",
6665
"socket.io": "1.4.8",
6766
"socket.io-client": "1.4.8",
6867
"tslib": "^1.7.1",
6968
"tslint": "^4.5.1",
70-
"typescript": "~2.2.0",
71-
"wd": "^1.2.0"
69+
"typescript": "~2.5.0",
70+
"mocha": "~3.5.0"
7271
},
7372
"scripts": {
74-
"appium": "nativescript-dev-appium",
7573
"e2e": "tsc -p e2e && mocha --opts ./e2e/config/mocha.opts",
76-
"compile-tests": "tsc -p e2e --watch"
74+
"compile-tests-w": "tsc -p e2e --watch"
7775
}
7876
}

tests/tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"exclude": [
2323
"node_modules",
2424
"platforms",
25-
"**/*.aot"
25+
"**/*.aot",
26+
"app/tests"
2627
]
2728
}

0 commit comments

Comments
 (0)