server: pass through project path so state gets saved per-project

This commit is contained in:
Chris Breiding
2017-06-29 16:45:20 -04:00
parent e2f4f5745b
commit 143d5ac990
6 changed files with 12 additions and 12 deletions

View File

@@ -85,7 +85,7 @@ module.exports = {
}, resolve)
open: (browserName, url, options = {}, automation) ->
savedState().get()
savedState(options.projectPath).get()
.then (state) =>
@_render(url, state, options)
.then (win) =>

View File

@@ -3,7 +3,6 @@ fs = require("fs-extra")
path = require("path")
Promise = require("bluebird")
log = require("debug")("cypress:server:browsers")
savedState = require("../saved_state")
utils = require("./utils")
errors = require("../errors")

View File

@@ -86,6 +86,7 @@ handleEvent = (options, bus, event, id, type, arg) ->
when "launch:browser"
# headless.createWindows(arg, true)
openProject.launch(arg.browser, arg.spec, {
projectPath: options.projectPath
onBrowserOpen: ->
send({browserOpened: true})
onBrowserClose: ->

View File

@@ -171,7 +171,7 @@ module.exports = {
options.onNewWindow.apply(win, arguments)
if ts = options.trackState
@trackState(win, ts)
@trackState(options.projectPath, win, ts)
## open dev tools if they're true
if options.devTools
@@ -281,7 +281,7 @@ module.exports = {
else
Promise.resolve(win)
trackState: (win, keys) ->
trackState: (projectPath, win, keys) ->
isDestroyed = ->
win.isDestroyed()
@@ -295,7 +295,7 @@ module.exports = {
newState[keys.height] = height
newState[keys.x] = x
newState[keys.y] = y
savedState().set(newState)
savedState(projectPath).set(newState)
, 500
win.on "moved", _.debounce ->
@@ -305,17 +305,17 @@ module.exports = {
newState = {}
newState[keys.x] = x
newState[keys.y] = y
savedState().set(newState)
savedState(projectPath).set(newState)
, 500
win.webContents.on "devtools-opened", ->
newState = {}
newState[keys.devTools] = true
savedState().set(newState)
savedState(projectPath).set(newState)
win.webContents.on "devtools-closed", ->
newState = {}
newState[keys.devTools] = false
savedState().set(newState)
savedState(projectPath).set(newState)
}

View File

@@ -21,7 +21,7 @@ module.exports = {
isMac: ->
os.platform() is "darwin"
getWindowArgs: (state) ->
getWindowArgs: (state, options = {}) ->
common = {
backgroundColor: "#dfe2e4"
width: state.appWidth or 800
@@ -39,6 +39,7 @@ module.exports = {
y: "appY"
devTools: "isAppDevToolsOpen"
}
projectPath: options.projectPath
onBlur: ->
return if @webContents.isDevToolsOpened()
@@ -81,9 +82,9 @@ module.exports = {
bus.emit("menu:item:clicked", "log:out")
})
savedState().get()
savedState(options.projectPath).get()
.then (state) =>
Windows.open(@getWindowArgs(state))
Windows.open(@getWindowArgs(state, options))
.then (win) =>
Events.start(_.extend({}, options, {
env: process.env["CYPRESS_ENV"]

View File

@@ -14,7 +14,6 @@ errors = require("./errors")
logger = require("./logger")
browsers = require("./browsers")
automation = require("./automation")
savedState = require("./saved_state")
log = require('debug')('cypress:server:socket')
existingState = null