tests: fix-nested-frame-tests (#7696)

This commit is contained in:
Svetoslav
2019-08-20 00:55:40 +03:00
committed by GitHub
parent 9877b202cd
commit 4b5e6e6c36
13 changed files with 100 additions and 58 deletions

View File

@@ -3,6 +3,7 @@ import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescrip
import { Screen, playersData, teamsData } from "./screen";
import * as shared from "./shared.e2e-spec";
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
import { TabNavigationScreen } from "./tab-navigation-screen";
const roots = ["BottomNavigation"];
@@ -15,7 +16,7 @@ describe(rootType, async function () {
nsCapabilities.testReporter.context = this;
logWarn(`====== ${rootType} ========`);
driver = await createDriver();
screen = new Screen(driver);
screen = new TabNavigationScreen(driver);
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);
}

View File

@@ -3,6 +3,7 @@ import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescrip
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "./screen";
import * as shared from "./shared.e2e-spec";
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
import { TabNavigationScreen } from "./tab-navigation-screen";
const roots = ["BottomNavigation"];
@@ -11,11 +12,11 @@ describe(rootType, async function () {
let driver: AppiumDriver;
let screen: Screen;
before(async () => {
before(async function () {
nsCapabilities.testReporter.context = this;
logWarn(`====== ${rootType} ========`);
driver = await createDriver();
screen = new Screen(driver);
screen = new TabNavigationScreen(driver);
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);
}
@@ -23,7 +24,7 @@ describe(rootType, async function () {
driver.defaultWaitTime = driverDefaultWaitTime;
});
after(async () => {
after(async function () {
if (dontKeepActivities) {
await driver.setDontKeepActivities(false);
}
@@ -63,20 +64,20 @@ describe(rootType, async function () {
}
});
it("loaded home page", async () => {
it("loaded home page", async function () {
await screen.loadedHome();
});
it(`loaded frame ${root} root with nested frames`, async () => {
it(`loaded frame ${root} root with nested frames`, async function () {
await screen[`navigateToPage${root}WithFrames`]();
await screen[`loadedPage${root}WithFrames`]();
});
it("loaded players list", async () => {
it("loaded players list", async function () {
await screen.loadedPlayersList();
});
it("loaded player details and go back twice", async () => {
it("loaded player details and go back twice", async function () {
await shared.testPlayerNavigated(playerTwo, screen);
if (appSuspendResume) {
@@ -95,7 +96,7 @@ describe(rootType, async function () {
await shared.testPlayerNavigatedBack(screen, driver);
});
it("navigate parent frame and go back", async () => {
it("navigate parent frame and go back", async function () {
await shared[`testSomePageNavigated${transition}`](screen);
if (appSuspendResume) {
@@ -112,7 +113,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("loaded player details and navigate parent frame and go back", async () => {
it("loaded player details and navigate parent frame and go back", async function () {
await shared.testPlayerNavigated(playerTwo, screen);
if (appSuspendResume) {
@@ -139,7 +140,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("toggle teams tab", async () => {
it("toggle teams tab", async function () {
await screen.toggleTeamsTab();
if (appSuspendResume) {
@@ -148,11 +149,11 @@ describe(rootType, async function () {
}
});
it("loaded teams list", async () => {
it("loaded teams list", async function () {
await screen.loadedTeamsList();
});
it("mix player and team list actions and go back", async () => {
it("mix player and team list actions and go back", async function () {
await screen.togglePlayersTab();
if (appSuspendResume) {
@@ -253,7 +254,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("loaded home page again", async () => {
it("loaded home page again", async function () {
await screen[`goBackFrom${root}Page`]();
await screen.loadedHome();
});

View File

@@ -3,6 +3,7 @@ import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescrip
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item, stillOtherPage } from "./screen";
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
import * as shared from "./shared.e2e-spec";
import { TabNavigationScreen } from "./tab-navigation-screen";
const rootType = "frame-root";
describe(rootType, async function () {
@@ -12,7 +13,7 @@ describe(rootType, async function () {
before(async function () {
nsCapabilities.testReporter.context = this;
driver = await createDriver();
screen = new Screen(driver);
screen = new TabNavigationScreen(driver);
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);
}

View File

@@ -3,6 +3,7 @@ import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescrip
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "./screen";
import * as shared from "./shared.e2e-spec";
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
import { TabViewNavigationScreen } from "./tabview-navigation-screen";
// NOTE: TabViewTop is Android only scenario (for iOS we will essentially execute 2x TabViewBottom)
const roots = ["TabViewTop", "TabViewBottom"];
@@ -12,11 +13,12 @@ describe(rootType, async function () {
let driver: AppiumDriver;
let screen: Screen;
before(async () => {
before(async function () {
nsCapabilities.testReporter.context = this;
logWarn(`====== ${rootType} ========`);
driver = await createDriver();
screen = new Screen(driver);
await driver.restartApp();
screen = new TabViewNavigationScreen(driver);
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);
}
@@ -24,7 +26,7 @@ describe(rootType, async function () {
driver.defaultWaitTime = driverDefaultWaitTime;
});
after(async () => {
after(async function () {
if (dontKeepActivities) {
await driver.setDontKeepActivities(false);
}
@@ -64,20 +66,20 @@ describe(rootType, async function () {
}
});
it("loaded home page", async () => {
it("loaded home page", async function () {
await screen.loadedHome();
});
it(`loaded frame ${root} root with nested frames`, async () => {
it(`loaded frame ${root} root with nested frames`, async function () {
await screen[`navigateToPage${root}WithFrames`]();
await screen[`loadedPage${root}WithFrames`]();
});
it("loaded players list", async () => {
it("loaded players list", async function () {
await screen.loadedPlayersList();
});
it("loaded player details and go back twice", async () => {
it("loaded player details and go back twice", async function () {
await shared.testPlayerNavigated(playerTwo, screen);
if (appSuspendResume) {
@@ -96,7 +98,7 @@ describe(rootType, async function () {
await shared.testPlayerNavigatedBack(screen, driver);
});
it("navigate parent frame and go back", async () => {
it("navigate parent frame and go back", async function () {
await shared[`testSomePageNavigated${transition}`](screen);
if (appSuspendResume) {
@@ -113,7 +115,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("loaded player details and navigate parent frame and go back", async () => {
it("loaded player details and navigate parent frame and go back", async function () {
await shared.testPlayerNavigated(playerTwo, screen);
if (appSuspendResume) {
@@ -140,7 +142,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("toggle teams tab", async () => {
it("toggle teams tab", async function () {
await screen.toggleTeamsTab();
if (appSuspendResume) {
@@ -149,11 +151,11 @@ describe(rootType, async function () {
}
});
it("loaded teams list", async () => {
it("loaded teams list", async function () {
await screen.loadedTeamsList();
});
it("mix player and team list actions and go back", async () => {
it("mix player and team list actions and go back", async function () {
await screen.togglePlayersTab();
if (appSuspendResume) {
@@ -254,7 +256,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("loaded home page again", async () => {
it("loaded home page again", async function () {
await screen[`goBackFrom${root}Page`]();
await screen.loadedHome();
});

View File

@@ -3,6 +3,7 @@ import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescrip
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "./screen";
import * as shared from "./shared.e2e-spec";
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
import { TabNavigationScreen } from "./tab-navigation-screen";
const roots = ["TabsTop", "TabsBottom"];
@@ -11,11 +12,11 @@ describe(rootType, async function () {
let driver: AppiumDriver;
let screen: Screen;
before(async () => {
before(async function () {
nsCapabilities.testReporter.context = this;
logWarn(`====== ${rootType} ========`);
driver = await createDriver();
screen = new Screen(driver);
screen = new TabNavigationScreen(driver);
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);
}
@@ -23,7 +24,7 @@ describe(rootType, async function () {
driver.defaultWaitTime = driverDefaultWaitTime;
});
after(async () => {
after(async function () {
if (dontKeepActivities) {
await driver.setDontKeepActivities(false);
}
@@ -63,20 +64,20 @@ describe(rootType, async function () {
}
});
it("loaded home page", async () => {
it("loaded home page", async function () {
await screen.loadedHome();
});
it(`loaded frame ${root} root with nested frames`, async () => {
it(`loaded frame ${root} root with nested frames`, async function () {
await screen[`navigateToPage${root}WithFrames`]();
await screen[`loadedPage${root}WithFrames`]();
});
it("loaded players list", async () => {
it("loaded players list", async function () {
await screen.loadedPlayersList();
});
it("loaded player details and go back twice", async () => {
it("loaded player details and go back twice", async function () {
await shared.testPlayerNavigated(playerTwo, screen);
if (appSuspendResume) {
@@ -95,7 +96,7 @@ describe(rootType, async function () {
await shared.testPlayerNavigatedBack(screen, driver);
});
it("navigate parent frame and go back", async () => {
it("navigate parent frame and go back", async function () {
await shared[`testSomePageNavigated${transition}`](screen);
if (appSuspendResume) {
@@ -112,7 +113,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("loaded player details and navigate parent frame and go back", async () => {
it("loaded player details and navigate parent frame and go back", async function () {
await shared.testPlayerNavigated(playerTwo, screen);
if (appSuspendResume) {
@@ -139,7 +140,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("toggle teams tab", async () => {
it("toggle teams tab", async function () {
await screen.toggleTeamsTab();
if (appSuspendResume) {
@@ -148,11 +149,11 @@ describe(rootType, async function () {
}
});
it("loaded teams list", async () => {
it("loaded teams list", async function () {
await screen.loadedTeamsList();
});
it("mix player and team list actions and go back", async () => {
it("mix player and team list actions and go back", async function () {
await screen.togglePlayersTab();
if (appSuspendResume) {
@@ -253,7 +254,7 @@ describe(rootType, async function () {
await screen.loadedPlayersList();
});
it("loaded home page again", async () => {
it("loaded home page again", async function () {
await screen[`goBackFrom${root}Page`]();
await screen.loadedHome();
});

View File

@@ -1,6 +1,7 @@
import { AppiumDriver, createDriver, nsCapabilities } from "nativescript-dev-appium";
import { Screen } from "./screen";
import { suspendTime, dontKeepActivities } from "./config";
import { TabViewNavigationScreen } from "./tabview-navigation-screen";
describe("issues", async function () {
let driver: AppiumDriver;
@@ -9,7 +10,7 @@ describe("issues", async function () {
before(async function () {
nsCapabilities.testReporter.context = this;
driver = await createDriver();
screen = new Screen(driver);
screen = new TabViewNavigationScreen(driver);
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);
}

View File

@@ -3,6 +3,7 @@ import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescrip
import { Screen, playersData, home, somePage, otherPage, teamsData, driverDefaultWaitTime } from "./screen";
import * as shared from "./shared.e2e-spec";
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
import { TabNavigationScreen } from "./tab-navigation-screen";
const rootType = "layout-root";
describe(rootType, async function () {
@@ -12,7 +13,7 @@ describe(rootType, async function () {
before(async function () {
nsCapabilities.testReporter.context = this;
driver = await createDriver();
screen = new Screen(driver);
screen = new TabNavigationScreen(driver);
logWarn("====== layout-root ========");
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);

View File

@@ -39,10 +39,6 @@ const navigateToOtherPageDefault = "navigate to other page (default transition)"
const navigateToOtherPageNone = "navigate to other page (no transition)";
const navigateToOtherPageSlide = "navigate to other page (slide transition)";
const navigateToOtherPageFlip = "navigate to other page (flip transition)";
const players = "Players";
const teams = "Teams";
const playersTab = "playersTabNavigation";
const teamsTab = "teamsTabNavigation";
const dummyTab = "dummyTabNavigation";
const playerBack = "playerBack";
const stillOtherPageBack = "stillOtherPageBack";
@@ -153,9 +149,14 @@ export interface Item {
description: string;
}
export class Screen {
export abstract class Screen {
private _driver: AppiumDriver;
protected _driver: AppiumDriver;
protected abstract players;
protected abstract teams;
protected abstract playersTab;
protected abstract teamsTab;
public currentAnimation: string;
@@ -319,14 +320,14 @@ export class Screen {
}
togglePlayersTab = async () => {
const lblPlayers = await this._driver.waitForElement(playersTab);
logInfo(`====== Navigate to "${players}"`);
const lblPlayers = await this._driver.waitForElement(this.playersTab);
logInfo(`====== Navigate to "${this.players}"`);
await lblPlayers.tap();
}
toggleTeamsTab = async () => {
const lblTeams = await this._driver.waitForElement(teamsTab);
logInfo(`====== Navigate to "${teams}"`);
const lblTeams = await this._driver.waitForElement(this.teamsTab);
logInfo(`====== Navigate to "${this.teams}"`);
await lblTeams.tap();
}
@@ -392,7 +393,7 @@ export class Screen {
loadedBottomNavigationRootWithFrames = async () => {
await this.loadedPage(bottomNavigationRootHome);
}
loadedStillOtherPage = async () => {
await this.loadedPage(stillOtherPage);
}
@@ -408,7 +409,7 @@ export class Screen {
loadedPlayersList = async () => {
const lblPlayerOne = await this._driver.waitForElement(playersData["playerOneDefault"].name);
assert.isDefined(lblPlayerOne);
console.log(players + " loaded!");
console.log(this.players + " loaded!");
}
loadedPlayerDetails = async (player: Item) => {
@@ -418,7 +419,7 @@ export class Screen {
loadedTeamsList = async () => {
const lblTeamOne = await this._driver.waitForElement(teamsData["teamOneDefault"].name);
assert.isDefined(lblTeamOne);
console.log(teams + " loaded!");
console.log(this.teams + " loaded!");
}
loadedTeamDetails = async (team: Item) => {

View File

@@ -0,0 +1,14 @@
import { AppiumDriver } from "nativescript-dev-appium";
import { Screen } from "./screen";
export class TabNavigationScreen extends Screen {
protected readonly players = "Players";
protected readonly teams = "Teams";
protected readonly playersTab = "playersTabNavigation";
protected readonly teamsTab = "teamsTabNavigation";
constructor(driver: AppiumDriver) {
super(driver);
}
}

View File

@@ -3,6 +3,7 @@ import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescrip
import { Screen, playersData, teamsData } from "./screen";
import * as shared from "./shared.e2e-spec";
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
import { TabViewNavigationScreen } from "./tabview-navigation-screen";
// NOTE: TabViewTop is Android only scenario (for iOS we will essentially execute 2x TabViewBottom)
const roots = ["TabViewTop", "TabViewBottom"];
@@ -16,7 +17,7 @@ describe(rootType, async function () {
nsCapabilities.testReporter.context = this;
logWarn(`====== ${rootType} ========`);
driver = await createDriver();
screen = new Screen(driver);
screen = new TabViewNavigationScreen(driver);
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);
}

View File

@@ -3,6 +3,7 @@ import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescrip
import { Screen, playersData, teamsData } from "./screen";
import * as shared from "./shared.e2e-spec";
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
import { TabNavigationScreen } from "./tab-navigation-screen";
const roots = ["TabsTop", "TabsBottom"];
@@ -15,7 +16,7 @@ describe(rootType, async function () {
nsCapabilities.testReporter.context = this;
logWarn(`====== ${rootType} ========`);
driver = await createDriver();
screen = new Screen(driver);
screen = new TabNavigationScreen(driver);
if (dontKeepActivities) {
await driver.setDontKeepActivities(true);
}

View File

@@ -0,0 +1,14 @@
import { AppiumDriver } from "nativescript-dev-appium";
import { Screen } from "./screen";
export class TabViewNavigationScreen extends Screen {
protected readonly players = "Players";
protected readonly teams = "Teams";
protected readonly playersTab = "Players";
protected readonly teamsTab = "Teams";
constructor(driver: AppiumDriver) {
super(driver);
}
}

View File

@@ -19,6 +19,7 @@
"devDependencies": {
"@types/chai": "~4.1.7",
"@types/mocha": "~5.2.5",
"@types/node": "^12.7.2",
"mocha": "~5.2.0",
"mochawesome": "~3.1.2",
"nativescript-dev-appium": "next",
@@ -29,6 +30,8 @@
"scripts": {
"e2e": "npm run clean-e2e && tsc -p e2e && mocha --opts ../config/mocha.opts --recursive e2e --appiumCapsLocation ../config/appium.capabilities.json",
"e2e-watch": "tsc -p e2e --watch",
"e2e-debug": "./node_modules/.bin/ns-dev-appium --startSession",
"e2e-tsc": "tsc -p e2e",
"clean-e2e": "rimraf 'e2e/**/*.js' 'e2e/**/*.js.map' 'e2e/**/*.map'"
}
}