Table of Content
- Mocha - {:.} start app and restart pattern code - {:.} Sample code
Mocha
start app and restart pattern code
let app;
const startApp = () => {
app = new Application({
path: electron,
args: [path.join(__dirname, "..")],
waitTimeout: timeout
});
return app.start().then(ret => {
setup.setupApp(ret);
});
};
const restartApp = () => {
return app.restart().then(ret => {
setup.setupApp(ret);
});
};
Sample code
- focus on
- assert chain
- describe and it position
it("checks hardcoded path for userData is correct", function() {
return app.client
.execute(() => {
return require("electron").remote.app.getPath("userData");
})
.then(result => {
return result.value;
})
.should.eventually.equal(setup.getUserDataPath());
});
it("opens a window displaying the about page", function() {
return app.client
.getWindowCount()
.should.eventually.equal(1)
.browserWindow.isMinimized()
.should.eventually.be.false.browserWindow.isDevToolsOpened()
.should.eventually.be.false.browserWindow.isVisible()
.should.eventually.be.true.browserWindow.isFocused()
.should.eventually.be.true.browserWindow.getBounds()
.should.eventually.have.property("width")
.and.be.above(0)
.browserWindow.getBounds()
.should.eventually.have.property("height")
.and.be.above(0)
.browserWindow.getTitle()
.should.eventually.equal("Electron API Demos")
.waitForVisible("#about-modal")
.should.eventually.be.true.isVisible(".js-nav")
.should.eventually.be.false.click('button[id="get-started"]')
.pause(500)
.isVisible("#about-modal")
.should.eventually.be.false.isVisible(".js-nav").should.eventually.be.true;
});
it("does not contain any accessibility warnings or errors", function() {
return app.client
.dismissAboutPage()
.auditSectionAccessibility("windows")
.auditSectionAccessibility("crash-hang")
.auditSectionAccessibility("menus")
.auditSectionAccessibility("shortcuts")
.auditSectionAccessibility("ex-links-file-manager")
.auditSectionAccessibility("notifications")
.auditSectionAccessibility("dialogs")
.auditSectionAccessibility("tray")
.auditSectionAccessibility("ipc")
.auditSectionAccessibility("app-sys-information")
.auditSectionAccessibility("clipboard")
.auditSectionAccessibility("protocol")
.auditSectionAccessibility("desktop-capturer");
});
describe("when clicking on a section from the nav bar", function() {
it("it shows the selected section in the main area", function() {
return app.client
.dismissAboutPage()
.selectSection("windows")
.isExisting('button.is-selected[data-section="windows"]')
.should.eventually.be.true.isVisible("#menus-section")
.should.eventually.be.false.selectSection("menus")
.isVisible("#windows-section")
.should.eventually.be.false.isExisting('button.is-selected[data-section="windows"]')
.should.eventually.be.false.isExisting('button.is-selected[data-section="menus"]').should.eventually.be.true;
});
});
describe("when a demo title is clicked", function() {
it("it expands the demo content", function() {
let onlyFirstVisible = Array(30).fill(false);
onlyFirstVisible[0] = true;
return app.client
.dismissAboutPage()
.collapseDemos()
.selectSection("windows")
.click(".js-container-target")
.waitForVisible(".demo-box")
.isVisible(".demo-box")
.should.eventually.deep.equal(onlyFirstVisible);
});
});
describe("when the app is restarted after use", function() {
it("it launches at last visited section & demo", function() {
let onlyFirstVisible = Array(30).fill(false);
onlyFirstVisible[0] = true;
return app.client
.waitForVisible("#windows-section")
.then(restartApp)
.then(function() {
return app.client
.waitForVisible("#windows-section")
.isVisible("#windows-section")
.should.eventually.be.true.isVisible(".demo-box")
.should.eventually.deep.equal(onlyFirstVisible);
});
});
});
Today I Learned