mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
refactor: update e2e tests for CI (#6722)
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
export const suspendTime = 1;
|
||||
export const appSuspendResume = true;
|
||||
export const dontKeepActivities = true;
|
||||
export const transitions = ["Default", "None", "Slide", "Flip"];
|
||||
// TODO: restore "slide" when https://github.com/NativeScript/NativeScript/issues/6728 is fixed
|
||||
export const transitions = ["Default", "None", /*"Slide", */"Flip"];
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { AppiumDriver, createDriver } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, home, somePage, teamsData } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
@@ -13,6 +14,8 @@ describe("frame-root:", () => {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
driver.defaultWaitTime = 8000;
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
@@ -76,7 +79,12 @@ describe("frame-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
@@ -95,7 +103,12 @@ describe("frame-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
@@ -152,7 +165,12 @@ describe("frame-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
@@ -171,7 +189,12 @@ describe("frame-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
await screen.loadedTeamsList(); // assert visible & no changes
|
||||
|
||||
@@ -206,7 +229,11 @@ describe("frame-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
@@ -230,7 +257,12 @@ describe("frame-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo); // assert no changes after back navigation
|
||||
await screen.loadedTeamDetails(teamTwo);
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { AppiumDriver, createDriver } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, somePage, teamsData } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
|
||||
// NOTE: TabTop is Android only scenario (for iOS we will essentially execute 2x TabBottom)
|
||||
const roots = ["TabTop", "TabBottom"];
|
||||
|
||||
function hyphenate(s: string) {
|
||||
@@ -19,6 +21,8 @@ describe("frame-tab-root:", () => {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
driver.defaultWaitTime = 8000;
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
@@ -88,7 +92,12 @@ describe("frame-tab-root:", () => {
|
||||
await driver.waitForElement(somePage) // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack();
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
@@ -107,7 +116,12 @@ describe("frame-tab-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack();
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
@@ -151,7 +165,11 @@ describe("frame-tab-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack();
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
@@ -183,7 +201,11 @@ describe("frame-tab-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack();
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
|
||||
@@ -14,6 +14,8 @@ describe("layout-root:", () => {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
driver.defaultWaitTime = 8000;
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
@@ -77,7 +79,12 @@ describe("layout-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
@@ -96,7 +103,12 @@ describe("layout-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
@@ -153,7 +165,12 @@ describe("layout-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
@@ -172,7 +189,12 @@ describe("layout-root:", () => {
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
@@ -208,7 +230,11 @@ describe("layout-root:", () => {
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo); // assert no changes in the sibling frame
|
||||
|
||||
await driver.navBack(); // other page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // other page back navigation
|
||||
} else {
|
||||
await screen.goBackFromOtherPage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
@@ -234,7 +260,12 @@ describe("layout-root:", () => {
|
||||
|
||||
await screen.loadedOtherPage(); // assert no changes in the sibling frame
|
||||
|
||||
await driver.navBack(); // some page back navigation
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
@@ -262,6 +293,7 @@ describe("layout-root:", () => {
|
||||
});
|
||||
});
|
||||
|
||||
// TODO: uncomment when https://github.com/NativeScript/NativeScript/issues/6630 is fixed
|
||||
// describe("players list slide transition with parent frame default transition:", () => {
|
||||
// const playerOne = playersData["playerOneSlide"];
|
||||
// const playerTwo = playersData["playerTwoSlide"];
|
||||
@@ -292,7 +324,11 @@ describe("layout-root:", () => {
|
||||
// await driver.waitForElement(somePage); // wait for some page
|
||||
// }
|
||||
|
||||
// await driver.navBack(); // some page back navigation
|
||||
// if (driver.isAndroid) {
|
||||
// await driver.navBack(); // some page back navigation
|
||||
// } else {
|
||||
// await screen.goBackFromSomePage();
|
||||
// }
|
||||
|
||||
// if (appSuspendResume) {
|
||||
// await driver.backgroundApp(suspendTime);
|
||||
@@ -347,7 +383,11 @@ describe("layout-root:", () => {
|
||||
// await driver.waitForElement(somePage); // wait for some page
|
||||
// }
|
||||
|
||||
// await driver.navBack(); // some page back navigation
|
||||
// if (driver.isAndroid) {
|
||||
// await driver.navBack(); // some page back navigation
|
||||
// } else {
|
||||
// await screen.goBackFromSomePage();
|
||||
// }
|
||||
|
||||
// if (appSuspendResume) {
|
||||
// await driver.backgroundApp(suspendTime);
|
||||
@@ -402,7 +442,11 @@ describe("layout-root:", () => {
|
||||
// await driver.waitForElement(somePage); // wait for some page
|
||||
// }
|
||||
|
||||
// await driver.navBack(); // some page back navigation
|
||||
// if (driver.isAndroid) {
|
||||
// await driver.navBack(); // some page back navigation
|
||||
// } else {
|
||||
// await screen.goBackFromSomePage();
|
||||
// }
|
||||
|
||||
// if (appSuspendResume) {
|
||||
// await driver.backgroundApp(suspendTime);
|
||||
@@ -457,8 +501,12 @@ describe("layout-root:", () => {
|
||||
// await driver.waitForElement(somePage); // wait for some page
|
||||
// }
|
||||
|
||||
// await driver.navBack(); // some page back navigation
|
||||
|
||||
// if (driver.isAndroid) {
|
||||
// await driver.navBack(); // some page back navigation
|
||||
// } else {
|
||||
// await screen.goBackFromSomePage();
|
||||
// }
|
||||
|
||||
// if (appSuspendResume) {
|
||||
// await driver.backgroundApp(suspendTime);
|
||||
// await driver.waitForElement(playerTwo.name); // wait for player
|
||||
|
||||
@@ -256,8 +256,8 @@ export class Screen {
|
||||
}
|
||||
|
||||
loadedHome = async () => {
|
||||
const lblHome = await this._driver.findElementByAutomationText(home);
|
||||
assert.isTrue(await lblHome.isDisplayed());
|
||||
const lblHome = await this._driver.waitForElement(home);
|
||||
assert.isNotNull(lblHome);
|
||||
console.log(home + " loaded!");
|
||||
};
|
||||
|
||||
@@ -303,8 +303,8 @@ export class Screen {
|
||||
}
|
||||
|
||||
loadedPlayersList = async () => {
|
||||
const lblPlayerOne = await this._driver.findElementByAutomationText(playersData["playerOneDefault"].name);
|
||||
assert.isTrue(await lblPlayerOne.isDisplayed());
|
||||
const lblPlayerOne = await this._driver.waitForElement(playersData["playerOneDefault"].name);
|
||||
assert.isNotNull(lblPlayerOne);
|
||||
console.log(players + " loaded!");
|
||||
}
|
||||
|
||||
@@ -313,8 +313,8 @@ export class Screen {
|
||||
}
|
||||
|
||||
loadedTeamsList = async () => {
|
||||
const lblTeamOne = await this._driver.findElementByAutomationText(teamsData["teamOneDefault"].name);
|
||||
assert.isTrue(await lblTeamOne.isDisplayed());
|
||||
const lblTeamOne = await this._driver.waitForElement(teamsData["teamOneDefault"].name);
|
||||
assert.isNotNull(lblTeamOne);
|
||||
console.log(teams + " loaded!");
|
||||
}
|
||||
|
||||
@@ -328,8 +328,8 @@ export class Screen {
|
||||
};
|
||||
|
||||
private loadedPage = async (page: string) => {
|
||||
const lblPage = await this._driver.findElementByAutomationText(page);
|
||||
assert.isTrue(await lblPage.isDisplayed());
|
||||
const lblPage = await this._driver.waitForElement(page);
|
||||
assert.isNotNull(lblPage);
|
||||
console.log(page + " loaded!");
|
||||
};
|
||||
|
||||
@@ -339,11 +339,11 @@ export class Screen {
|
||||
}
|
||||
|
||||
private loadedItem = async (item: Item) => {
|
||||
const lblItemName = await this._driver.findElementByAutomationText(item.name);
|
||||
assert.isTrue(await lblItemName.isDisplayed());
|
||||
const lblItemName = await this._driver.waitForElement(item.name);
|
||||
assert.isNotNull(lblItemName);
|
||||
|
||||
const lblItemDescription = await this._driver.findElementByAutomationText(item.description);
|
||||
assert.isTrue(await lblItemDescription.isDisplayed());
|
||||
const lblItemDescription = await this._driver.waitForElement(item.description);
|
||||
assert.isNotNull(lblItemDescription);
|
||||
|
||||
console.log(item.name + " loaded!");
|
||||
}
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
import { Screen, Item } from "./screen";
|
||||
import { AppiumDriver } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, Item } from "./screen";
|
||||
|
||||
export async function testPlayerNavigated(player: Item, screen: Screen) {
|
||||
await screen.navigateToPlayerDetails(player);
|
||||
await screen.loadedPlayerDetails(player);
|
||||
}
|
||||
|
||||
export async function testPlayerNavigatedBack(screen: Screen, driver: AppiumDriver) {
|
||||
await driver.navBack();
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackToPlayersList();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
}
|
||||
|
||||
@@ -37,7 +43,12 @@ export async function testTeamNavigated(team: Item, screen: Screen) {
|
||||
}
|
||||
|
||||
export async function testTeamNavigatedBack(screen: Screen, driver: AppiumDriver) {
|
||||
await driver.navBack();
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackToTeamsList();
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { AppiumDriver, createDriver } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, teamsData } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
|
||||
// NOTE: TabTop is Android only scenario (for iOS we will essentially execute 2x TabBottom)
|
||||
const roots = ["TabTop", "TabBottom"];
|
||||
|
||||
function hyphenate(s: string) {
|
||||
@@ -19,6 +21,8 @@ describe("tab-root:", () => {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
driver.defaultWaitTime = 8000;
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
||||
Reference in New Issue
Block a user