mirror of
https://github.com/cypress-io/cypress.git
synced 2026-05-07 07:20:42 -05:00
Issue 281 - add @packages/root (#282)
* link: create fake @packages/root * server: switch to loading @packages/root * server: update tests after using @packages/root * load root package in other places * load root package in build using @packages/root * update tests that mock root package * server: fix server start whenever loading root package in updater * fix updater test * uncomment code
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "@packages/root",
|
||||
"version": "0.0.0",
|
||||
"description": "dummy package pointing at the root package",
|
||||
"main": "../../package.json"
|
||||
}
|
||||
@@ -4,8 +4,8 @@ getos = require("getos")
|
||||
request = require("request-promise")
|
||||
errors = require("request-promise/errors")
|
||||
Promise = require("bluebird")
|
||||
pkg = require("@packages/root")
|
||||
Routes = require("./util/routes")
|
||||
pkg = require("../package.json")
|
||||
|
||||
getos = Promise.promisify(getos)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
_ = require("lodash")
|
||||
send = require("send")
|
||||
runner = require("@packages/runner")
|
||||
pkg = require("../../package.json")
|
||||
pkg = require("@packages/root")
|
||||
|
||||
module.exports = {
|
||||
serve: (req, res, config, getRemoteState) ->
|
||||
|
||||
@@ -13,7 +13,7 @@ Error.stackTraceLimit = Infinity
|
||||
## cannot use relative require statement
|
||||
## here because when obfuscated package
|
||||
## would not be available
|
||||
pkg = cwd("package.json")
|
||||
pkg = require("@packages/root")
|
||||
|
||||
try
|
||||
## i wish we didn't have to do this but we have to append
|
||||
@@ -32,6 +32,6 @@ getEnv = ->
|
||||
|
||||
## use env from package first
|
||||
## or development as default
|
||||
process.env["CYPRESS_ENV"] or= fs.readJsonSync(pkg).env ? "development"
|
||||
process.env["CYPRESS_ENV"] or= pkg.env ? "development"
|
||||
|
||||
module.exports = getEnv()
|
||||
|
||||
@@ -6,6 +6,7 @@ user = require("./user")
|
||||
cache = require("./cache")
|
||||
logger = require("./logger")
|
||||
Settings = require("./util/settings")
|
||||
pkg = require("@packages/root")
|
||||
|
||||
## POST https://api.cypress.io/exceptions
|
||||
## sets request body
|
||||
@@ -31,7 +32,7 @@ module.exports = {
|
||||
}
|
||||
|
||||
getVersion: ->
|
||||
fs.readJsonAsync("./package.json").get("version")
|
||||
Promise.resolve(pkg.version)
|
||||
|
||||
getBody: (err, settings) ->
|
||||
body = {err: @getErr(err)}
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
_ = require("lodash")
|
||||
fs = require("fs-extra")
|
||||
path = require("path")
|
||||
Promise = require("bluebird")
|
||||
cwd = require("../cwd")
|
||||
|
||||
fs = Promise.promisifyAll(fs)
|
||||
pathToPkg = cwd("package.json")
|
||||
json = require("@packages/root")
|
||||
|
||||
module.exports = (options) ->
|
||||
fs.readJsonAsync(pathToPkg)
|
||||
.then (json) ->
|
||||
Promise.resolve(
|
||||
## TODO: omit anything from options which is a function
|
||||
_.extend {}, options, _.pick(json, "version")
|
||||
)
|
||||
|
||||
@@ -6,6 +6,7 @@ chalk = require("chalk")
|
||||
human = require("human-interval")
|
||||
Promise = require("bluebird")
|
||||
random = require("randomstring")
|
||||
pkg = require("@packages/root")
|
||||
ss = require("../screenshots")
|
||||
user = require("../user")
|
||||
stats = require("../stats")
|
||||
@@ -20,7 +21,6 @@ trash = require("../util/trash")
|
||||
terminal = require("../util/terminal")
|
||||
humanTime = require("../util/human_time")
|
||||
Windows = require("../gui/windows")
|
||||
pkg = require("../../package.json")
|
||||
log = require("../log")
|
||||
|
||||
fs = Promise.promisifyAll(fs)
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
fs = require("fs-extra")
|
||||
path = require("path")
|
||||
Promise = require("bluebird")
|
||||
cwd = require("../cwd")
|
||||
|
||||
fs = Promise.promisifyAll(fs)
|
||||
pkg = require("@packages/root")
|
||||
|
||||
module.exports = ->
|
||||
fs.readJsonAsync cwd("package.json")
|
||||
Promise.resolve(pkg)
|
||||
|
||||
@@ -3,6 +3,8 @@ nmi = require("node-machine-id")
|
||||
semver = require("semver")
|
||||
request = require("request")
|
||||
NwUpdater = require("node-webkit-updater")
|
||||
_ = require("lodash")
|
||||
pkg = require("@packages/root")
|
||||
cwd = require("./cwd")
|
||||
konfig = require("./konfig")
|
||||
logger = require("./logger")
|
||||
@@ -65,9 +67,7 @@ class Updater
|
||||
@getClient().getAppPath = -> cwd()
|
||||
|
||||
getPackage: ->
|
||||
pkg = fs.readJsonSync cwd("package.json")
|
||||
pkg.manifestUrl = konfig("desktop_manifest_url")
|
||||
pkg
|
||||
_.extend({}, pkg, {manifestUrl: konfig("desktop_manifest_url")})
|
||||
|
||||
getClient: ->
|
||||
## requiring inline due to easier testability
|
||||
|
||||
@@ -3,13 +3,16 @@ path = require("path")
|
||||
ospath = require("ospath")
|
||||
Promise = require("bluebird")
|
||||
log = require("debug")("cypress:server:appdata")
|
||||
pkg = require("@packages/root")
|
||||
cwd = require("../cwd")
|
||||
pkg = require("../../package.json")
|
||||
|
||||
fs = Promise.promisifyAll(fs)
|
||||
name = pkg.productName or pkg.name
|
||||
data = ospath.data()
|
||||
|
||||
if not name
|
||||
throw new Error("Root package is missing name")
|
||||
|
||||
isProduction = ->
|
||||
process.env.CYPRESS_ENV is "production"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ require("../spec_helper")
|
||||
_ = require("lodash")
|
||||
cp = require("child_process")
|
||||
pr = require("../support/helpers/process")
|
||||
pkg = require("#{root}package.json")
|
||||
pkg = require("@packages/root")
|
||||
|
||||
anyLineWithCaret = (str) ->
|
||||
str[0] is ">"
|
||||
|
||||
@@ -11,7 +11,7 @@ Promise = require("bluebird")
|
||||
electron = require("electron")
|
||||
Fixtures = require("../support/helpers/fixtures")
|
||||
extension = require("@packages/extension")
|
||||
pkg = require("#{root}package.json")
|
||||
pkg = require("@packages/root")
|
||||
git = require("#{root}lib/util/git")
|
||||
bundle = require("#{root}lib/util/bundle")
|
||||
connect = require("#{root}lib/util/connect")
|
||||
|
||||
@@ -17,7 +17,7 @@ streamToPromise = require("stream-to-promise")
|
||||
evilDns = require("evil-dns")
|
||||
Promise = require("bluebird")
|
||||
httpsServer = require("#{root}../https-proxy/test/helpers/https_server")
|
||||
pkg = require("#{root}package.json")
|
||||
pkg = require("@packages/root")
|
||||
config = require("#{root}lib/config")
|
||||
Server = require("#{root}lib/server")
|
||||
Watchers = require("#{root}lib/watchers")
|
||||
|
||||
@@ -3,7 +3,7 @@ require("../spec_helper")
|
||||
_ = require("lodash")
|
||||
rp = require("request-promise")
|
||||
os = require("os")
|
||||
pkg = require("#{root}package.json")
|
||||
pkg = require("@packages/root")
|
||||
api = require("#{root}lib/api")
|
||||
Promise = require("bluebird")
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
require("../spec_helper")
|
||||
|
||||
pkg = require("@packages/root")
|
||||
|
||||
describe "lib/environment", ->
|
||||
before ->
|
||||
@env = process.env["CYPRESS_ENV"]
|
||||
@@ -34,9 +36,12 @@ describe "lib/environment", ->
|
||||
context "uses package.json env", ->
|
||||
beforeEach ->
|
||||
@setEnv = (env) =>
|
||||
@sandbox.stub(fs, "readJsonSync").returns({env: env})
|
||||
pkg.env = env
|
||||
@expectedEnv(env)
|
||||
|
||||
afterEach ->
|
||||
delete pkg.env
|
||||
|
||||
it "is production", ->
|
||||
@setEnv("production")
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ cache = require("#{root}lib/cache")
|
||||
exception = require("#{root}lib/exception")
|
||||
Routes = require("#{root}lib/util/routes")
|
||||
Settings = require("#{root}lib/util/settings")
|
||||
pkg = require("@packages/root")
|
||||
|
||||
describe "lib/exceptions", ->
|
||||
context ".getAuthToken", ->
|
||||
@@ -58,9 +59,7 @@ describe "lib/exceptions", ->
|
||||
|
||||
context ".getVersion", ->
|
||||
it "returns version from package.json", ->
|
||||
@sandbox.stub(fs, "readJsonAsync")
|
||||
.withArgs("./package.json")
|
||||
.resolves({version: "0.1.2"})
|
||||
@sandbox.stub(pkg, "version", "0.1.2")
|
||||
|
||||
exception.getVersion().then (v) ->
|
||||
expect(v).to.eq("0.1.2")
|
||||
@@ -70,10 +69,7 @@ describe "lib/exceptions", ->
|
||||
@sandbox.stub(cache, "read").resolves({foo: "foo"})
|
||||
@sandbox.stub(logger, "getLogs").resolves([])
|
||||
@err = new Error()
|
||||
|
||||
@sandbox.stub(fs, "readJsonAsync")
|
||||
.withArgs("./package.json")
|
||||
.resolves({version: "0.1.2"})
|
||||
@sandbox.stub(pkg, "version", "0.1.2")
|
||||
|
||||
it "sets err", ->
|
||||
exception.getBody(@err).then (body) ->
|
||||
|
||||
@@ -6,6 +6,8 @@ nmi = require("node-machine-id")
|
||||
cwd = require("#{root}lib/cwd")
|
||||
request = require("request")
|
||||
Updater = require("#{root}lib/updater")
|
||||
pkg = require("@packages/root")
|
||||
_ = require("lodash")
|
||||
|
||||
describe "lib/updater", ->
|
||||
context "interface", ->
|
||||
@@ -15,15 +17,17 @@ describe "lib/updater", ->
|
||||
|
||||
context "#getPackage", ->
|
||||
beforeEach ->
|
||||
@sandbox.stub(fs, "readJsonSync").returns({foo: "bar"})
|
||||
|
||||
pkg.foo = "bar"
|
||||
@updater = Updater({})
|
||||
afterEach ->
|
||||
delete pkg.foo
|
||||
|
||||
it "inserts manifestUrl to package.json", ->
|
||||
expect(@updater.getPackage()).to.deep.eq {
|
||||
expected = _.extend({}, pkg, {
|
||||
foo: "bar"
|
||||
manifestUrl: "https://download.cypress.io/desktop.json"
|
||||
}
|
||||
})
|
||||
expect(@updater.getPackage()).to.deep.eq expected
|
||||
|
||||
context "#getClient", ->
|
||||
it "sets .client to new Updater", ->
|
||||
|
||||
@@ -23,6 +23,8 @@ packages = require("./util/packages")
|
||||
Darwin = require("./darwin")
|
||||
Linux = require("./linux")
|
||||
|
||||
rootPackage = require("@packages/root")
|
||||
|
||||
sign = Promise.promisify(signOsxApp)
|
||||
fs = Promise.promisifyAll(fse)
|
||||
|
||||
@@ -105,6 +107,7 @@ buildCypressApp = (platform, version, options = {}) ->
|
||||
fs.outputJsonAsync(distDir("package.json"), {
|
||||
name: "cypress"
|
||||
productName: "Cypress",
|
||||
description: rootPackage.description
|
||||
version: version
|
||||
main: "index.js"
|
||||
scripts: {}
|
||||
@@ -248,11 +251,6 @@ buildCypressApp = (platform, version, options = {}) ->
|
||||
.then(removeDevElectronApp)
|
||||
.then(copyPackageProxies(buildAppDir))
|
||||
.then(runSmokeTest)
|
||||
|
||||
# older build steps
|
||||
# .then(@runProjectTest) # if run larger tests need to cleanup symlinks
|
||||
# .then(@runFailingProjectTest)
|
||||
# .then(@cleanupCy)
|
||||
.then(codeSign) ## codesign after running smoke tests due to changing .cy
|
||||
.then(verifyAppCanOpen)
|
||||
.return({
|
||||
|
||||
@@ -32,7 +32,7 @@ function proxyModule (name, pathToMain, pathToBrowser) {
|
||||
const pkg = {
|
||||
name,
|
||||
version: '0.0.0',
|
||||
description: `fake proxy module to packages/${name}`,
|
||||
description: `fake proxy module ${name}`,
|
||||
main: pathToMain,
|
||||
}
|
||||
if (pathToBrowser) {
|
||||
|
||||
Reference in New Issue
Block a user