diff --git a/server/routes/db.coffee b/server/routes/db.coffee index de2a18372..195a0d92c 100644 --- a/server/routes/db.coffee +++ b/server/routes/db.coffee @@ -19,9 +19,24 @@ handlers = 'level_feedback': '../../server/levels/feedbacks/level_feedback_handler' 'level_session': '../../server/levels/sessions/level_session_handler' 'level_system': '../../server/levels/systems/level_system_handler' - 'level_thang_type': '../../server/levels/thangs/level_thangType_handler' + 'thang_type': '../../server/levels/thangs/thang_type_handler' 'user': '../../server/users/user_handler' +schemas = + 'article': '../../server/articles/article_schema' + 'common': '../../server/commons/schemas' + #'file': '../../server/files/file_schema' + 'i18n': '../../server/commons/i18n_schema' + 'level': '../../server/levels/level_schema' + 'level_component': '../../server/levels/components/level_component_schema' + 'level_feedback': '../../server/levels/feedbacks/level_feedback_schema' + 'level_session': '../../server/levels/sessions/level_session_schema' + 'level_system': '../../server/levels/systems/level_system_schema' + 'metaschema': '../../server/commons/metaschema' + 'thang_component': '../../server/levels/thangs/thang_component_schema' + 'thang_type': '../../server/levels/thangs/thang_type_schema' + 'user': '../../server/users/user_schema' + module.exports.connectDatabase = () -> dbName = config.mongo.db @@ -64,8 +79,9 @@ module.exports.setupRoutes = (app) -> getSchema = (req, res, moduleName) -> try - name = "./schemas/#{moduleName.replace '.', '_'}" + name = schemas[moduleName.replace '.', '_'] schema = require(name) + res.send(schema) res.end() diff --git a/test/server/handlers/article.spec.coffee b/test/server/handlers/article.spec.coffee index 7ebf176e3..377907180 100644 --- a/test/server/handlers/article.spec.coffee +++ b/test/server/handlers/article.spec.coffee @@ -77,3 +77,10 @@ describe '/db/article', -> expect(res.statusCode).toBe(200) expect(body.name).toBe(new_article.name) done() + + it 'get schema', (done) -> + request.get {uri:url+'/schema'}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() diff --git a/test/server/handlers/level.spec.coffee b/test/server/handlers/level.spec.coffee index a93baa668..13dc6425a 100644 --- a/test/server/handlers/level.spec.coffee +++ b/test/server/handlers/level.spec.coffee @@ -7,7 +7,7 @@ describe 'Level', -> description: 'Climb a mountain.' permissions: simplePermissions - url = getURL('/db/level') + urlLevel = '/db/level' it 'clears things first', (done) -> clearModels [Level], (err) -> @@ -16,6 +16,13 @@ describe 'Level', -> it 'can make a Level.', (done) -> loginJoe -> - request.post {uri:url, json:level}, (err, res, body) -> + request.post {uri:getURL(urlLevel), json:level}, (err, res, body) -> expect(res.statusCode).toBe(200) - done() \ No newline at end of file + done() + + it 'get schema', (done) -> + request.get {uri:getURL(urlLevel+'/schema')}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() diff --git a/test/server/handlers/level_component.spec.coffee b/test/server/handlers/level_component.spec.coffee index 3b2133c79..4850d834c 100644 --- a/test/server/handlers/level_component.spec.coffee +++ b/test/server/handlers/level_component.spec.coffee @@ -139,3 +139,10 @@ describe 'LevelComponent', -> request.del {uri:url+'/'+components[0]._id}, (err, res) -> expect(res.statusCode).toBe(404) done() + + it 'get schema', (done) -> + request.get {uri:url+'/schema'}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() diff --git a/test/server/handlers/level_feedback.spec.coffee b/test/server/handlers/level_feedback.spec.coffee new file mode 100644 index 000000000..95f4b6eb0 --- /dev/null +++ b/test/server/handlers/level_feedback.spec.coffee @@ -0,0 +1,12 @@ +require '../common' + +describe 'LevelFeedback', -> + + url = getURL('/db/level.feedback') + + it 'get schema', (done) -> + request.get {uri:url+'/schema'}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() diff --git a/test/server/handlers/level_session.spec.coffee b/test/server/handlers/level_session.spec.coffee new file mode 100644 index 000000000..aa8d99c7b --- /dev/null +++ b/test/server/handlers/level_session.spec.coffee @@ -0,0 +1,12 @@ +require '../common' + +describe 'LevelFeedback', -> + + url = getURL('/db/level.session') + + it 'get schema', (done) -> + request.get {uri:url+'/schema'}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() diff --git a/test/server/handlers/level_system.spec.coffee b/test/server/handlers/level_system.spec.coffee index 91f7b28db..32ca61df1 100644 --- a/test/server/handlers/level_system.spec.coffee +++ b/test/server/handlers/level_system.spec.coffee @@ -128,3 +128,10 @@ describe 'LevelSystem', -> request.del {uri:url+'/'+systems[0]._id}, (err, res) -> expect(res.statusCode).toBe(404) done() + + it 'get schema', (done) -> + request.get {uri:url+'/schema'}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() diff --git a/test/server/handlers/level_thang_component.spec.coffee b/test/server/handlers/level_thang_component.spec.coffee new file mode 100644 index 000000000..75e334a7a --- /dev/null +++ b/test/server/handlers/level_thang_component.spec.coffee @@ -0,0 +1,12 @@ +require '../common' + +describe 'Level Thang Component', -> + + url = getURL('/db/thang.component') + + it 'get schema', (done) -> + request.get {uri:url+'/schema'}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() diff --git a/test/server/handlers/level_thang_type.spec.coffee b/test/server/handlers/level_thang_type.spec.coffee new file mode 100644 index 000000000..152514951 --- /dev/null +++ b/test/server/handlers/level_thang_type.spec.coffee @@ -0,0 +1,12 @@ +require '../common' + +describe 'Level Thang Type', -> + + url = getURL('/db/thang.type') + + it 'get schema', (done) -> + request.get {uri:url+'/schema'}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() diff --git a/test/server/handlers/user.spec.coffee b/test/server/handlers/user.spec.coffee index dd3631841..4bb616ba2 100644 --- a/test/server/handlers/user.spec.coffee +++ b/test/server/handlers/user.spec.coffee @@ -136,6 +136,13 @@ describe 'GET /db/user', -> form.append('username', 'admin@afc.com') form.append('password', '80yqxpb38j') + it 'get schema', (done) -> + request.get {uri:getURL(urlUser+'/schema')}, (err, res, body) -> + expect(res.statusCode).toBe(200) + body = JSON.parse(body) + expect(body.type).toBeDefined() + done() + it 'is able to do a sweet query', (done) -> conditions = [ ['limit', 20]