Skip to content

Instantly share code, notes, and snippets.

@jennifer-shehane
Created July 1, 2016 20:27
Show Gist options
  • Save jennifer-shehane/4034a7d06ff1a7f8a307b0f0d6c499b4 to your computer and use it in GitHub Desktop.
Save jennifer-shehane/4034a7d06ff1a7f8a307b0f0d6c499b4 to your computer and use it in GitHub Desktop.
config fixture is being aliased on click
describe "Specs List", ->
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("config").as("config")
it "navigates to project specs page", ->
cy
.fixture("browsers").then (@browsers) ->
@config.browsers = @browsers
@ipc.handle("open:project", null, @config)
.location().its("hash").should("include", "specs")
it "triggers get:specs", ->
cy
.fixture("browsers").then (@browsers) ->
@config.browsers = @browsers
@ipc.handle("open:project", null, @config)
.then ->
expect(@App.ipc).to.be.calledWith("get:specs")
describe "no specs", ->
describe "first time onboarding specs", ->
beforeEach ->
cy
.fixture("browsers").then (@browsers) ->
@config.browsers = @browsers
@config.isNewProject = true
@ipc.handle("open:project", null, @config)
.fixture("specs").then (@specs) ->
@ipc.handle("get:specs", null, @specs)
it "displays modal", ->
cy.contains("integration")
describe "lists specs", ->
beforeEach ->
cy
.fixture("browsers").then (@browsers) ->
@config.browsers = @browsers
@ipc.handle("open:project", null, @config)
.fixture("specs").then (@specs) ->
@ipc.handle("get:specs", null, @specs)
it "lists specs", ->
cy.contains("integration")
describe "server error", ->
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"
}
it "displays normal error message", ->
@ipc.handle("open:project", @err, {})
cy
.get(".error")
.should("contain", @err.message)
it.skip "word wraps long error message plus update bar", ->
@longErrMessage = "Morbileorisus,portaacconsecteturac,vestibulumateros.Nullamquisrisusegeturnamollis ornare vel eu leo. Donec sed odio dui. Nullam quis risus eget urna mollis ornare vel eu leo. Etiam porta sem malesuada magna mollis euismod. Maecenas faucibus mollis interdum. Nullam id dolor id nibh ultricies vehicula ut id elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id dolor id nibh ultricies vehicula ut id elit. Vestibulum id ligula porta felis euismod semper. Vestibulum id ligula porta felis euismod semper.Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec id elit non mi porta gravida at eget metus. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras justo odio, dapibus ac facilisis in, egestas eget quam.Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Maecenas faucibus mollis interdum. Etiam porta sem malesuada magna mollis euismod."
@ipc.handle("updater:check", null, "1.3.4")
@ipc.handle("open:project", {name: @err.name, message: @longErrMessage}, null)
cy.get("#updates-available").should("be.visible")
cy.contains("New updates are available")
cy
.get(".error")
.should("contain", @err.name)
.and("contain", @longErrMessage)
it "displays Port in Use instructions on err", ->
@ipc.handle("open:project", @err, {})
cy
.get(".error")
.and("contain", @err.message)
.and("contain", "To fix")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment