UNPKG

@cypress/core-desktop-gui

Version:
123 lines (96 loc) 6.84 kB
describe "Config", -> beforeEach -> @firstProjectName = "My-Fake-Project" cy .visit("/") .window().then (win) -> {@ipc, @App} = win @agents = cy.agents() @ipc.handle("get:options", null, {}) @agents.spy(@App, "ipc") .fixture("user").then (@user) -> @ipc.handle("get:current:user", null, @user) .fixture("projects").then (@projects) -> @ipc.handle("get:project:paths", null, @projects) .get(".projects-list a") .contains("My-Fake-Project").click() .fixture("browsers").as("browsers") .fixture("config").then (@config) -> @ipc.handle("open:project", null, @config) .get(".navbar-default") .get("a").contains("Config").click() context "displays page", -> it "navigates to config page", -> cy .location().its("hash").should("include", "config") it "highlight config nav", -> cy .contains("a", "Config").should("have.class", "active") context "display legend", -> it "has legend in table", -> cy.contains("Legend") cy.get("table>tbody>tr").should("have.length", 5) context "displays config", -> it "wraps config line in proper classes", -> cy .get(".line").first().within -> cy .contains("animationDistanceThreshold").should("have.class", "key").end() .contains(":").should("have.class", "colon").end() .contains("5").should("have.class", "default").end() .contains(",").should("have.class", "comma") it "displays 'true' values", -> cy.get(".line").contains("true") it "displays 'null' values", -> cy.get(".line").contains("null") it "opens help link on click", -> cy .get(".fa-question-circle").click().then -> expect(@App.ipc).to.be.calledWith("external:open", "https://on.cypress.io/guides/configuration") context "on config changes", -> beforeEach -> cy .then -> @config.clientUrl = "http://localhost:8888" @config.clientUrlDisplay = "http://localhost:8888" @config.browsers = @browsers @ipc.handle("open:project", null, @config) cy.contains("Config") it "displays updated config", -> @config.resolved.baseUrl.value = "http://localhost:7777" @ipc.handle("open:project", null, @config) cy.contains("http://localhost:7777") describe "errors", -> beforeEach -> @err = { message: "Port '2020' is already in use." name: "Error" port: 2020 portInUse: true stack: "[object Object]↵ at Object.API.get (/Users/jennifer/Dev/Projects/cypress-app/lib/errors.coffee:55:15)↵ at Object.wrapper [as get] (/Users/jennifer/Dev/Projects/cypress-app/node_modules/lodash/lodash.js:4414:19)↵ at Server.portInUseErr (/Users/jennifer/Dev/Projects/cypress-app/lib/server.coffee:58:16)↵ at Server.onError (/Users/jennifer/Dev/Projects/cypress-app/lib/server.coffee:86:19)↵ at Server.g (events.js:273:16)↵ at emitOne (events.js:90:13)↵ at Server.emit (events.js:182:7)↵ at emitErrorNT (net.js:1253:8)↵ at _combinedTickCallback (internal/process/next_tick.js:74:11)↵ at process._tickDomainCallback (internal/process/next_tick.js:122:9)↵From previous event:↵ at fn (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:57919:14)↵ at Object.appIpc [as ipc] (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:57939:10)↵ at openProject (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:59135:24)↵ at new Project (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:58848:34)↵ at ReactCompositeComponentMixin._constructComponentWithoutOwner (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:44052:27)↵ at ReactCompositeComponentMixin._constructComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:44034:21)↵ at ReactCompositeComponentMixin.mountComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:43953:21)↵ at Object.ReactReconciler.mountComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:51315:35)↵ at ReactCompositeComponentMixin.performInitialMount (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:44129:34)↵ at ReactCompositeComponentMixin.mountComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:44016:21)↵ at Object.ReactReconciler.mountComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:51315:35)↵ at ReactDOMComponent.ReactMultiChild.Mixin._mountChildAtIndex (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:50247:40)↵ at ReactDOMComponent.ReactMultiChild.Mixin._updateChildren (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:50163:43)↵ at ReactDOMComponent.ReactMultiChild.Mixin.updateChildren (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:50123:12)↵ at ReactDOMComponent.Mixin._updateDOMChildren (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:45742:12)↵ at ReactDOMComponent.Mixin.updateComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:45571:10)↵ at ReactDOMComponent.Mixin.receiveComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:45527:10)↵ at Object.ReactReconciler.receiveComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:51396:22)↵ at ReactCompositeComponentMixin._updateRenderedComponent (file:///Users/jennifer/Dev/Projects/cypress-core-desktop-gui/dist/app.js:44547:23)" type: "PORT_IN_USE_SHORT" } @config.resolved.baseUrl.value = "http://localhost:7777" @ipc.handle("open:project", null, @config) cy .contains("http://localhost:7777") .then -> @ipc.handle("open:project", @err, {}) it "displays errors", -> cy.contains("Can't start server") it "displays config after error is fixed.", -> cy .contains("Can't start server").then -> @ipc.handle("open:project", null, @config) cy.contains("Config") context "on:focus:tests clicked", -> beforeEach -> cy .contains("Config") it "routes to specs page", -> @ipc.handle("on:focus:tests") cy .location().then (location) -> expect(location.href).to.include("projects") expect(location.href).to.include("e40991dc055454a2f3598752dec39abc") expect(location.href).to.include("specs")