FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

test: update livesync tests · NativeScript/NativeScript@6d702da · GitHub

Commit 6d702da

Browse files
committed
test: update livesync tests
1 parent 4c47780 commit 6d702da

8 files changed

Lines changed: 110 additions & 63 deletions

‎tests/app/app/button-page.xml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<Page loaded="onLoaded">
2+
<StackLayout>
3+
<Button id="button" text="button"></Button>
4+
</StackLayout>
5+
</Page>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function onLoaded() {
2+
console.log("Button page loaded!");
3+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<Page loaded="onLoaded">
2+
<StackLayout>
3+
<Button id="button" text="button"></Button>
4+
</StackLayout>
5+
</Page>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function onLoaded() {
2+
console.log("Label page loaded!");
3+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<Page loaded="onLoaded">
2+
<StackLayout>
3+
<Label id="label" text="label"></Label>
4+
</StackLayout>
5+
</Page>
Lines changed: 85 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,110 @@
1-
import * as app from "tns-core-modules/application/application";
2-
import * as frame from "tns-core-modules/ui/frame";
31
import * as helper from "../ui/helper";
42
import * as TKUnit from "../TKUnit";
3+
4+
import * as app from "tns-core-modules/application/application";
5+
import * as frame from "tns-core-modules/ui/frame";
6+
57
import { Color } from "tns-core-modules/color";
6-
import { parse } from "tns-core-modules/ui/builder";
8+
import { isAndroid } from "tns-core-modules/platform";
9+
import { createViewFromEntry } from "tns-core-modules/ui/builder";
710
import { Page } from "tns-core-modules/ui/page";
11+
import { Frame } from "tns-core-modules/ui/frame";
812

913
const appCssFileName = "./app/application.css";
1014
const appNewCssFileName = "./app/app-new.css";
1115
const appNewScssFileName = "./app/app-new.scss";
12-
const appJsFileName = "./app/app.js";
13-
const appTsFileName = "./app/app.ts";
14-
const mainPageCssFileName = "./app/main-page.css";
15-
const mainPageHtmlFileName = "./app/main-page.html";
16-
const mainPageXmlFileName = "./app/main-page.xml";
17-
18-
const black = new Color("black");
19-
const green = new Color("green");
16+
const buttonCssFileName = "./app/button-page.css";
2017

21-
const mainPageTemplate = `
22-
<Page>
23-
<StackLayout>
24-
<Label id="label" text="label"></Label>
25-
</StackLayout>
26-
</Page>`;
18+
const buttonPageModuleName = "livesync/livesync-button-page";
19+
const buttonHtmlPageFileName = "./livesync/livesync-button-page.html";
20+
const buttonXmlPageFileName = "./livesync/livesync-button-page.xml";
21+
const buttonJsPageFileName = "./livesync/livesync-button-page.js";
22+
const buttonTsPageFileName = "./livesync/livesync-button-page.ts";
23+
const labelPageModuleName = "livesync/livesync-label-page";
2724

28-
const pageTemplate = `
29-
<Page>
30-
<StackLayout>
31-
<Button id="button" text="button"></Button>
32-
</StackLayout>
33-
</Page>`;
25+
const green = new Color("green");
3426

3527
export function test_onLiveSync_ModuleContext_AppStyle_AppNewCss() {
28+
debugger;
3629
_test_onLiveSync_ModuleContext_AppStyle(appNewCssFileName);
3730
}
3831

3932
export function test_onLiveSync_ModuleContext_AppStyle_AppNewScss() {
33+
debugger;
4034
_test_onLiveSync_ModuleContext_AppStyle(appNewScssFileName);
4135
}
4236

4337
export function test_onLiveSync_ModuleContext_ContextUndefined() {
38+
debugger;
4439
_test_onLiveSync_ModuleContext({ type: undefined, path: undefined });
4540
}
4641

4742
export function test_onLiveSync_ModuleContext_ModuleUndefined() {
43+
debugger;
4844
_test_onLiveSync_ModuleContext({ type: "script", path: undefined });
4945
}
5046

51-
export function test_onLiveSync_ModuleContext_Script_AppJs() {
52-
_test_onLiveSync_ModuleContext({ type: "script", path: appJsFileName });
47+
export function test_onLiveSync_ModuleContext_Script_JsFile() {
48+
debugger;
49+
_test_onLiveSync_ModuleReplace({ type: "script", path: buttonJsPageFileName });
5350
}
5451

55-
export function test_onLiveSync_ModuleContext_Script_AppTs() {
56-
_test_onLiveSync_ModuleContext({ type: "script", path: appTsFileName });
52+
export function test_onLiveSync_ModuleContext_Script_TsFile() {
53+
debugger;
54+
_test_onLiveSync_ModuleReplace({ type: "script", path: buttonTsPageFileName });
5755
}
5856

59-
export function test_onLiveSync_ModuleContext_Style_MainPageCss() {
60-
_test_onLiveSync_ModuleContext_TypeStyle({ type: "style", path: mainPageCssFileName });
57+
export function test_onLiveSync_ModuleContext_Style_CssFile() {
58+
debugger;
59+
_test_onLiveSync_ModuleContext_TypeStyle({ type: "style", path: buttonCssFileName });
6160
}
6261

63-
export function test_onLiveSync_ModuleContext_Markup_MainPageHtml() {
64-
_test_onLiveSync_ModuleContext({ type: "markup", path: mainPageHtmlFileName });
62+
export function test_onLiveSync_ModuleContext_Markup_HtmlFile() {
63+
debugger;
64+
_test_onLiveSync_ModuleReplace({ type: "markup", path: buttonHtmlPageFileName });
6565
}
6666

67-
export function test_onLiveSync_ModuleContext_Markup_MainPageXml() {
68-
_test_onLiveSync_ModuleContext({ type: "markup", path: mainPageXmlFileName });
67+
export function test_onLiveSync_ModuleContext_Markup_XmlFile() {
68+
debugger;
69+
_test_onLiveSync_ModuleReplace({ type: "markup", path: buttonXmlPageFileName });
6970
}
7071

71-
export function setUpModule() {
72-
const mainPage = <Page>parse(mainPageTemplate);
73-
helper.navigate(() => mainPage);
72+
export function setUp() {
73+
debugger;
74+
const labelPage = <Page>createViewFromEntry(({ moduleName: labelPageModuleName }));
75+
helper.navigate(() => labelPage);
7476
}
7577

7678
export function tearDown() {
79+
debugger;
7780
app.setCssFileName(appCssFileName);
7881
}
7982

8083
function _test_onLiveSync_ModuleContext_AppStyle(styleFileName: string) {
8184
const pageBeforeNavigation = helper.getCurrentPage();
85+
const buttonPage = <Page>createViewFromEntry(({ moduleName: buttonPageModuleName }));
86+
helper.navigateWithHistory(() => buttonPage);
8287

83-
const page = <Page>parse(pageTemplate);
84-
helper.navigateWithHistory(() => page);
8588
app.setCssFileName(styleFileName);
86-
8789
const pageBeforeLiveSync = helper.getCurrentPage();
8890
global.__onLiveSync({ type: "style", path: styleFileName });
8991

9092
const pageAfterLiveSync = helper.getCurrentPage();
9193
TKUnit.waitUntilReady(() => pageAfterLiveSync.getViewById("button").style.color.toString() === green.toString());
92-
93-
TKUnit.assertTrue(pageAfterLiveSync.frame.canGoBack(), "App styles NOT applied - livesync navigation executed!");
94-
TKUnit.assertEqual(pageAfterLiveSync, pageBeforeLiveSync, "Pages are different - livesync navigation executed!");
95-
TKUnit.assertTrue(pageAfterLiveSync._cssState.isSelectorsLatestVersionApplied(), "Latest selectors version NOT applied!");
94+
TKUnit.assertTrue(pageAfterLiveSync.frame.canGoBack(), "Can NOT go back!");
95+
TKUnit.assertEqual(pageAfterLiveSync, pageBeforeLiveSync, "Pages are different!");
96+
TKUnit.assertTrue(pageAfterLiveSync._cssState.isSelectorsLatestVersionApplied(), "Latest selectors version is NOT applied!");
9697

9798
helper.goBack();
98-
9999
const pageAfterNavigationBack = helper.getCurrentPage();
100100
TKUnit.assertEqual(pageAfterNavigationBack.getViewById("label").style.color, green, "App styles NOT applied on back navigation!");
101-
TKUnit.assertEqual(pageBeforeNavigation, pageAfterNavigationBack, "Pages are different - livesync navigation executed!");
101+
TKUnit.assertEqual(pageBeforeNavigation, pageAfterNavigationBack, "Pages are different");
102102
TKUnit.assertTrue(pageAfterNavigationBack._cssState.isSelectorsLatestVersionApplied(), "Latest selectors version is NOT applied!");
103103
}
104104

105105
function _test_onLiveSync_ModuleContext(context: { type, path }) {
106-
const page = <Page>parse(pageTemplate);
107-
helper.navigateWithHistory(() => page);
106+
const buttonPage = <Page>createViewFromEntry(({ moduleName: buttonPageModuleName }));
107+
helper.navigateWithHistory(() => buttonPage);
108108
global.__onLiveSync({ type: context.type, path: context.path });
109109

110110
TKUnit.waitUntilReady(() => !!frame.topmost());
@@ -113,27 +113,53 @@ function _test_onLiveSync_ModuleContext(context: { type, path }) {
113113
TKUnit.assertTrue(topmostFrame.currentPage.getViewById("label").isLoaded);
114114
}
115115

116-
function _test_onLiveSync_ModuleContext_TypeStyle(context: { type, path }) {
116+
function _test_onLiveSync_ModuleReplace(context: { type, path }) {
117117
const pageBeforeNavigation = helper.getCurrentPage();
118+
const buttonPage = <Page>createViewFromEntry(({ moduleName: buttonPageModuleName }));
119+
helper.navigateWithHistory(() => buttonPage);
120+
121+
global.__onLiveSync({ type: context.type, path: context.path });
122+
const topmostFrame = frame.topmost();
123+
waitUntilLivesyncComplete(topmostFrame);
124+
TKUnit.assertTrue(topmostFrame.currentPage.getViewById("button").isLoaded, "Button page is NOT loaded!");
125+
TKUnit.assertEqual(topmostFrame.backStack.length, 1, "Backstack is clean!");
126+
TKUnit.assertTrue(topmostFrame.canGoBack(), "Can NOT go back!");
118127

119-
const page = <Page>parse(pageTemplate);
120-
helper.navigateWithHistory(() => page);
128+
helper.goBack();
129+
const pageAfterBackNavigation = helper.getCurrentPage();
130+
TKUnit.assertTrue(topmostFrame.currentPage.getViewById("label").isLoaded, "Label page is NOT loaded!");
131+
TKUnit.assertEqual(topmostFrame.backStack.length, 0, "Backstack is NOT clean!");
132+
TKUnit.assertEqual(pageBeforeNavigation, pageAfterBackNavigation, "Pages are different!");
133+
}
134+
135+
function _test_onLiveSync_ModuleContext_TypeStyle(context: { type, path }) {
136+
const pageBeforeNavigation = helper.getCurrentPage();
137+
const buttonPage = <Page>createViewFromEntry(({ moduleName: buttonPageModuleName }));
138+
helper.navigateWithHistory(() => buttonPage);
121139

122140
const pageBeforeLiveSync = helper.getCurrentPage();
123-
pageBeforeLiveSync._moduleName = "main-page";
141+
pageBeforeLiveSync._moduleName = "button-page";
142+
124143
global.__onLiveSync({ type: context.type, path: context.path });
144+
const topmostFrame = frame.topmost();
145+
waitUntilLivesyncComplete(topmostFrame);
125146

126147
const pageAfterLiveSync = helper.getCurrentPage();
127148
TKUnit.waitUntilReady(() => pageAfterLiveSync.getViewById("button").style.color.toString() === green.toString());
128-
129-
TKUnit.assertTrue(pageAfterLiveSync.frame.canGoBack(), "Local styles NOT applied - livesync navigation executed!");
130-
TKUnit.assertEqual(pageAfterLiveSync, pageBeforeLiveSync, "Pages are different - livesync navigation executed!");
131-
TKUnit.assertTrue(pageAfterLiveSync._cssState.isSelectorsLatestVersionApplied(), "Latest selectors version NOT applied!");
149+
TKUnit.assertTrue(pageAfterLiveSync.frame.canGoBack(), "Can NOT go back!");
150+
TKUnit.assertEqual(topmostFrame.backStack.length, 1, "Backstack is clean!");
151+
TKUnit.assertTrue(pageAfterLiveSync._cssState.isSelectorsLatestVersionApplied(), "Latest selectors version is NOT applied!");
132152

133153
helper.goBack();
134-
135154
const pageAfterNavigationBack = helper.getCurrentPage();
136-
TKUnit.assertEqual(pageAfterNavigationBack.getViewById("label").style.color, black, "App styles applied on back navigation!");
137-
TKUnit.assertEqual(pageBeforeNavigation, pageAfterNavigationBack, "Pages are different - livesync navigation executed!");
155+
TKUnit.assertEqual(pageBeforeNavigation, pageAfterNavigationBack, "Pages are different!");
138156
TKUnit.assertTrue(pageAfterNavigationBack._cssState.isSelectorsLatestVersionApplied(), "Latest selectors version is NOT applied!");
139-
}
157+
}
158+
159+
function waitUntilLivesyncComplete(frame: Frame) {
160+
if (isAndroid) {
161+
TKUnit.waitUntilReady(() => frame._executingEntry === null);
162+
} else {
163+
TKUnit.waitUntilReady(() => frame.currentPage.isLoaded);
164+
}
165+
}

‎tests/package.json‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
"repository": "<fill-your-repository-here>",
66
"nativescript": {
77
"id": "org.nativescript.UnitTestApp",
8-
"tns-ios": {
9-
"version": "5.2.0"
10-
},
118
"tns-android": {
12-
"version": "5.2.1"
9+
"version": "5.3.1"
10+
},
11+
"tns-ios": {
12+
"version": "5.3.1"
1313
}
1414
},
1515
"dependencies": {

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL