refactor: update e2e tests for CI (#6722)

This commit is contained in:
Manol Donev
2019-01-08 15:23:35 +02:00
committed by GitHub
parent 46c9de020e
commit a6d561e549
29 changed files with 295 additions and 73 deletions

View File

@@ -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"];

View File

@@ -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);

View File

@@ -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);

View File

@@ -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

View File

@@ -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!");
}

View File

@@ -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();
}

View File

@@ -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 () => {