mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-13 09:11:22 -05:00
Merge branch 'master' into production
This commit is contained in:
commit
df571c6d11
6 changed files with 28 additions and 4 deletions
|
@ -34,7 +34,7 @@ block content
|
||||||
.col-md-4.col-sm-6
|
.col-md-4.col-sm-6
|
||||||
#email-form-group.form-group
|
#email-form-group.form-group
|
||||||
label.control-label(data-i18n="general.email")
|
label.control-label(data-i18n="general.email")
|
||||||
input.form-control(disabled=true value=me.get('email'))
|
input.form-control(name='email' disabled=true value=me.get('email'))
|
||||||
|
|
||||||
.row.m-y-2
|
.row.m-y-2
|
||||||
.col-md-offset-2.col-md-4.col-sm-6
|
.col-md-offset-2.col-md-4.col-sm-6
|
||||||
|
|
|
@ -40,7 +40,8 @@
|
||||||
"nodemon": "nodemon",
|
"nodemon": "nodemon",
|
||||||
"jasmine-node": "jasmine-node",
|
"jasmine-node": "jasmine-node",
|
||||||
"multicore": "coffee multicore.coffee",
|
"multicore": "coffee multicore.coffee",
|
||||||
"jasmine": "jasmine"
|
"jasmine": "jasmine",
|
||||||
|
"proxy": "COCO_PROXY='true' nodemon"
|
||||||
},
|
},
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
@ -99,6 +100,7 @@
|
||||||
"compressible": "~1.0.1",
|
"compressible": "~1.0.1",
|
||||||
"css-brunch": "^1.7.0",
|
"css-brunch": "^1.7.0",
|
||||||
"fs-extra": "^0.26.2",
|
"fs-extra": "^0.26.2",
|
||||||
|
"http-proxy": "^1.13.2",
|
||||||
"jade-brunch": "1.7.5",
|
"jade-brunch": "1.7.5",
|
||||||
"jasmine": "^2.4.1",
|
"jasmine": "^2.4.1",
|
||||||
"javascript-brunch": "> 1.0 < 1.8",
|
"javascript-brunch": "> 1.0 < 1.8",
|
||||||
|
|
|
@ -140,7 +140,7 @@ class MongoQueueClient
|
||||||
|
|
||||||
_createMongoConnection: ->
|
_createMongoConnection: ->
|
||||||
@mongooseConnection = mongoose.createConnection @databaseAddress
|
@mongooseConnection = mongoose.createConnection @databaseAddress
|
||||||
@mongooseConnection.on 'error', -> log.error 'There was an error connecting to the queue in MongoDB'
|
@mongooseConnection.on 'error', -> log.error 'There was an error connecting to the queue in MongoDB' unless config.proxy
|
||||||
@mongooseConnection.once 'open', -> log.info 'Successfully connected to MongoDB queue!'
|
@mongooseConnection.once 'open', -> log.info 'Successfully connected to MongoDB queue!'
|
||||||
|
|
||||||
_generateMessageModel: ->
|
_generateMessageModel: ->
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
config = {}
|
config = {}
|
||||||
|
|
||||||
config.unittest = global.testing
|
config.unittest = global.testing
|
||||||
|
config.proxy = process.env.COCO_PROXY
|
||||||
|
|
||||||
config.tokyo = process.env.TOKYO or false
|
config.tokyo = process.env.TOKYO or false
|
||||||
config.saoPaulo = process.env.SAOPAULO or false
|
config.saoPaulo = process.env.SAOPAULO or false
|
||||||
|
|
|
@ -48,7 +48,9 @@ developmentLogging = (tokens, req, res) ->
|
||||||
else if status >= 300 then color = 36
|
else if status >= 300 then color = 36
|
||||||
elapsed = (new Date()) - req._startTime
|
elapsed = (new Date()) - req._startTime
|
||||||
elapsedColor = if elapsed < 500 then 90 else 31
|
elapsedColor = if elapsed < 500 then 90 else 31
|
||||||
"\x1b[90m#{req.method} #{req.originalUrl} \x1b[#{color}m#{res.statusCode} \x1b[#{elapsedColor}m#{elapsed}ms\x1b[0m"
|
s = "\x1b[90m#{req.method} #{req.originalUrl} \x1b[#{color}m#{res.statusCode} \x1b[#{elapsedColor}m#{elapsed}ms\x1b[0m"
|
||||||
|
s += ' (proxied)' if req.proxied
|
||||||
|
return s
|
||||||
|
|
||||||
setupErrorMiddleware = (app) ->
|
setupErrorMiddleware = (app) ->
|
||||||
app.use (err, req, res, next) ->
|
app.use (err, req, res, next) ->
|
||||||
|
@ -86,6 +88,8 @@ setupExpressMiddleware = (app) ->
|
||||||
express.logger.format('dev', developmentLogging)
|
express.logger.format('dev', developmentLogging)
|
||||||
app.use(express.logger('dev'))
|
app.use(express.logger('dev'))
|
||||||
app.use(express.static(path.join(__dirname, 'public'), maxAge: 0)) # CloudFlare overrides maxAge, and we don't want local development caching.
|
app.use(express.static(path.join(__dirname, 'public'), maxAge: 0)) # CloudFlare overrides maxAge, and we don't want local development caching.
|
||||||
|
|
||||||
|
setupProxyMiddleware app # TODO: Flatten setup into one function. This doesn't fit its function name.
|
||||||
app.use(useragent.express())
|
app.use(useragent.express())
|
||||||
|
|
||||||
app.use(express.favicon())
|
app.use(express.favicon())
|
||||||
|
@ -216,6 +220,7 @@ exports.setupLogging = ->
|
||||||
logging.setup()
|
logging.setup()
|
||||||
|
|
||||||
exports.connectToDatabase = ->
|
exports.connectToDatabase = ->
|
||||||
|
return if config.proxy
|
||||||
database.connect()
|
database.connect()
|
||||||
|
|
||||||
exports.setupMailchimp = ->
|
exports.setupMailchimp = ->
|
||||||
|
@ -230,3 +235,18 @@ exports.setExpressConfigurationOptions = (app) ->
|
||||||
app.set('view options', { layout: false })
|
app.set('view options', { layout: false })
|
||||||
app.set('env', if config.isProduction then 'production' else 'development')
|
app.set('env', if config.isProduction then 'production' else 'development')
|
||||||
app.set('json spaces', 0) if config.isProduction
|
app.set('json spaces', 0) if config.isProduction
|
||||||
|
|
||||||
|
setupProxyMiddleware = (app) ->
|
||||||
|
return if config.isProduction
|
||||||
|
return unless config.proxy
|
||||||
|
httpProxy = require 'http-proxy'
|
||||||
|
proxy = httpProxy.createProxyServer({
|
||||||
|
target: 'https://direct.codecombat.com'
|
||||||
|
secure: false
|
||||||
|
})
|
||||||
|
log.info 'Using dev proxy server'
|
||||||
|
app.use (req, res, next) ->
|
||||||
|
req.proxied = true
|
||||||
|
proxy.web req, res, (e) ->
|
||||||
|
console.warn("Failed to proxy: ", e)
|
||||||
|
next()
|
||||||
|
|
|
@ -136,6 +136,7 @@ describe 'ConvertToTeacherAccountView (/teachers/update-account)', ->
|
||||||
attrs = JSON.parse(request.params)
|
attrs = JSON.parse(request.params)
|
||||||
expect(attrs.properties?.firstName).toBe('Mr')
|
expect(attrs.properties?.firstName).toBe('Mr')
|
||||||
expect(attrs.properties?.siteOrigin).toBe('convert teacher')
|
expect(attrs.properties?.siteOrigin).toBe('convert teacher')
|
||||||
|
expect(attrs.properties?.email).toBe('some@email.com')
|
||||||
|
|
||||||
it 'redirects to /teachers/classes', ->
|
it 'redirects to /teachers/classes', ->
|
||||||
request = jasmine.Ajax.requests.mostRecent()
|
request = jasmine.Ajax.requests.mostRecent()
|
||||||
|
|
Loading…
Reference in a new issue