Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- **testmongoapp/src/backend/index.js**
- 'use strict';
- var Percolator = require('percolator').Percolator;
- var dbSession = require('../../src/backend/dbSession.js');
- var port = 8080;
- var server = Percolator({'port':port, 'autoLink':false});
- server.route('/api/widgets',
- {
- GET: function(req, res) {
- var collection = dbSession.collection('widgets');
- collection.find().each(function(err, document) {
- if (document === null) {
- callback();
- } else {
- console.dir(document);
- res.collection(document).send();
- }
- });
- }
- }
- );
- server.listen( function() {
- console.log('Server started and listening on port:',port);
- });
- **testmongoapp/src/backend/dbSessionjs**
- 'use strict';
- var DBWrapper = require('mongodb').MongoClient;
- var dbWrapper = new DBWrapper;
- dbWrapper.connect("mongodb://localhost:27017/test", function(err, db) {
- if (!err) {
- console.log("Database connection successful");
- dbWrapper = db;
- }
- });
- module.exports = dbWrapper;
- **testmongoapp/spec/resetDatabase.js**
- 'use strict';
- var async = require('async');
- var resetDatabase = function (dbSession, callback) {
- var collection = dbSession.collection('widgets');
- async.series(
- [
- function (callback) {
- collection.remove({}, function (err, numberRemoved) {
- callback(err);
- });
- }
- ],
- function (err, results) {
- callback(err);
- }
- );
- };
- module.exports = resetDatabase;
- **testmongoapp/spec/e2e/apiSpec.js**
- 'use strict';
- var request = require('request');
- var dbSession = require('../../src/backend/dbSession.js');
- var resetDatabase = require('../resetDatabase.js');
- var async = require('async');
- describe('The API', function() {
- it('should respond to a GET request at /api/widgets/', function(done) {
- var expected = {
- "_items": [
- { "name" : "widget1", "location" : "Canada", "ddn" : "a11", "hw_model" : "HPzl"},
- { "name" : "widget2", "location" : "Canada", "ddn" : "12a", "hw_model" : "HPzl"},
- { "name" : "widget3", "location" : "Canada", "ddn" : "98", "hw_model" : "HPzl"}
- ]
- };
- async.series(
- [
- function(callback) {
- resetDatabase(dbSession, callback);
- },
- function(callback) {
- var collection = dbSession.collection('widgets');
- collection.insert(
- { "name" : "widget1", "location" : "Canada", "ddn" : "a11", "hw_model" : "HPzl"},{w:1},
- function(err) { callback(err)});
- },
- function(callback) {
- var collection = dbSession.collection('widgets');
- collection.insert(
- { "name" : "widget2", "location" : "Canada", "ddn" : "12a", "hw_model" : "HPzl"},{w:1},
- function(err) {callback(err) });
- },
- function(callback) {
- var collection = dbSession.collection('widgets');
- collection.insert(
- { "name" : "widget3", "location" : "Canada", "ddn" : "98", "hw_model" : "HPzl"},{w:1},
- function(err) {callback(err) });
- }
- ],
- function (err, results) {
- request.get(
- {
- 'url': 'http://localhost:8080/api/widgets/',
- 'json': true
- },
- function (err, res, body) {
- expect(res.statusCode).toBe(200);
- expect(body).toEqual(expected);
- done();
- }
- );
- }
- ); //end async.series
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement