浏览代码

Fix so that sequelize.sync({ force: true}) is used in test but not prod or dev

sbkwgh 8 年之前
父节点
当前提交
83a34dab54
共有 2 个文件被更改,包括 15 次插入7 次删除
  1. 1 1
      package.json
  2. 14 6
      server.js

+ 1 - 1
package.json

@@ -4,7 +4,7 @@
   "description": "Backend for forum",
   "main": "server.js",
   "scripts": {
-    "test": "cross-env NODE_ENV=test && sequelize db:migrate --env test && node ./node_modules/mocha/bin/mocha  --harmony --timeout 30000",
+    "test": "cross-env NODE_ENV=test && node ./node_modules/mocha/bin/mocha  --harmony --timeout 30000",
     "start": "cross-env NODE_ENV=development && sequelize db:migrate && node --harmony server.js"
   },
   "author": "",

+ 14 - 6
server.js

@@ -1,6 +1,7 @@
 let express = require('express')
 let app = express()
 
+let sequelize = require('./models').sequelize
 let sockets = require('./lib/sockets')
 
 let config = require('./config/server.js')
@@ -42,14 +43,21 @@ app.use('/api/v1/log', require('./routes/log'))
 app.use('/api/v1/poll', require('./routes/poll'))
 app.use('/api/v1/backup', require('./routes/backup'))
 
+function main () {
+	let server = app.listen(config.port, () => {
+		console.log('Listening on ' + config.port)
 
-let server = app.listen(config.port, () => {
-	console.log('Listening on ' + config.port)
+		app.locals.appStarted = true
+		app.emit('appStarted')
+	})
 
-	app.locals.appStarted = true
-	app.emit('appStarted')
-})
+	sockets.init(app, server, session)
+}
 
-sockets.init(app, server, session)
+if(process.env.NODE_ENV === 'test') {
+	sequelize.sync({ force: true }).then(main)
+} else {
+	main()
+}
 
 module.exports = app