TidGi-Desktop/features/stepDefinitions/electron.ts
2021-04-23 00:50:53 +08:00

47 lines
1.8 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-unused-expressions */
import { setWorldConstructor, Given, Then, When } from '@cucumber/cucumber';
import { delay } from 'bluebird';
import { expect } from 'chai';
import { TiddlyGitWorld } from '../supports/world';
setWorldConstructor(TiddlyGitWorld);
Given('the app is launched', async function (this: TiddlyGitWorld) {
await this.start();
const windowCount = await this.app?.client?.getWindowCount();
expect(windowCount).equal(1);
});
Then('the element {string} is on the page', async function (this: TiddlyGitWorld, elementSelector: string) {
const result = await this.getElement(elementSelector);
expect(result).to.not.be.undefined;
this.updateContext({ previousElement: result });
});
Then('click on this element', async function (this: TiddlyGitWorld) {
expect(this.context?.previousElement).to.not.be.undefined;
if (this.context?.previousElement !== undefined) {
await this.context.previousElement.click();
}
});
Then('click on {string} element', async function (this: TiddlyGitWorld, elementSelector: string) {
const result = await this.getElement(elementSelector);
expect(result).to.not.be.undefined;
if (result !== undefined) {
this.updateContext({ previousElement: result });
await result.click();
}
});
Then('{string} window show up', async function (this: TiddlyGitWorld, windowName: string) {
// await delay(1000);
const windowCount = await this.app?.client?.getWindowCount();
expect(windowCount).equal(2);
const handles = await this.app?.client?.getWindowHandles();
expect(handles).to.not.be.undefined;
if (handles !== undefined) {
await this.app?.client?.switchToWindow(handles[1]);
await this.waitReactReady();
const currentTitle = await this.app?.client?.getTitle();
expect(currentTitle).to.be.equal(windowName);
}
});