exports.test2 = function(callback) { api_easy.describe('mognoose-resource test2') .use('localhost',80) .discuss('when using the api') .path('/api/') .discuss(' , the user resource') .path('/users/') .discuss(' and index request') .get() .expect(200,{meta:{offset:0,limit:20,total_count:1},objects:[{username:"******",credits:34}]}) .undiscuss() .unpath() // /users/ .undiscuss() // user resource .unpath() // api .undiscuss() // using the api .run(callback); };
exports.test3 = function(callback) { api_easy.describe('mognoose-resource validation') .use('localhost',80) .discuss('when using the api again') .path('/api/') .discuss(' , the user resource') .path('/users/') .discuss(' and post without permissions') .post('',{username:"******",password:"******",credits:-2}) .expect(400,{credits:'must be equal or greater than 1'}) .undiscuss() // adding a user .unpath() // /users/ .undiscuss() // user resource .unpath() // api .undiscuss() // using the api .run(callback); };
suite: function(description) { var suite = APIeasy.describe(description); var port = this.PORT; suite.url = function(path) { return 'http://localhost:' + port + path; }; suite.expectRedirectTo = function(path) { var url = this.url(path); return this.expect(303) .expect('redirects to ' + path, function(err, res) { assert.equal(res.headers['location'], url); }); }; suite._requestFormData = function(method, data) { data = data || {}; if (!('_csrf' in data)) data._csrf = module.exports.FAKE_UID; this.setHeader('Content-Type', 'application/x-www-form-urlencoded') [method](data); return this; }; suite.delFormData = function(data) { return this._requestFormData('del', data); }; suite.postFormData = function(data) { return this._requestFormData('post', data); }; suite.postBackpackAuthentication = function(options) { options = options || {}; var csrf = options.csrf || module.exports.FAKE_UID; var assertion = options.assertion || module.exports.FAKE_ASSERTION; return this.path('/backpack/authenticate') .postFormData({'_csrf': csrf, 'assertion': assertion}); }; suite.login = function() { return this.postBackpackAuthentication() .expect('sets a session cookie', function(err, res, body) { assert.ok('set-cookie' in res.headers); }).next().unpath(); }; suite.use('localhost', port).followRedirect(false); return suite; }
exports.test1 = function(callback) { var t = api_easy.describe('mognoose-resource test1') .use('localhost',80) .discuss('when using the api') .path('/api/') .discuss(' , the user resource') .path('/users/') .discuss(' and index request before any elements exists') .get().expect(200,{meta:{offset:0,limit:20,total_count:0},objects:[]}) .undiscuss() // index request .discuss(' and post without permissions') .post('',{username:"******",password:"******",credits:34}) .expect(201) .undiscuss() // adding a user .unpath() // /users/ .undiscuss() // user resource .unpath() // api .undiscuss() // using the api .run(callback); };
/* * * Copyright (C) 2011, The Locker Project * All rights reserved. * * Please see the LICENSE file for more information. * */ require.paths.push(__dirname + "/../Common/node"); var assert = require('assert'); var vows = require('vows'); var events = require('events'); var RESTeasy = require('api-easy'); var suite = RESTeasy.describe('Locker Search'); var lconfig = require('lconfig'); var lsearch = require('lsearch'); lconfig.load('Config/config.json'); lsearch.setEngine(lsearch.engines.CLucene); lsearch.setIndexPath(__dirname + "/" + lconfig.me + "/search.index"); suite.next().suite.addBatch({ "Can pick the CLucene engine":{ topic:function() { try { var search = lsearch.setEngine(lsearch.engines.CLucene); return true; } catch(E) { return false; }
* */ var assert = require("assert"); var vows = require("vows"); var RESTeasy = require("api-easy"); var http = require("http"); var request = require('request'); var querystring = require("querystring"); var events = require("events"); var fs = require("fs"); var lconfig = require('../Common/node/lconfig.js'); lconfig.load('Config/config.json'); var tests = RESTeasy.describe("Locker core API"); tests.use(lconfig.lockerHost, lconfig.lockerPort) .discuss("Core can") .discuss("map existing services with") .path("/map") .get() .expect(200) .expect("has an available and installed attribute", function(err, res, body) { assert.isNull(err); var map = JSON.parse(body); assert.include(map, "available"); assert.include(map, "installed"); serviceMap = map; }) // These tests don't scale as we develop more parts, test for actual known contents
* restful-api-test.js: Tests for purely `restful` routes * * (C) 2012, Nodejitsu Inc. * */ var vows = require('vows'), assert = require('assert'), APIeasy = require('api-easy'), restful = require('../lib/restful'), resourceful = require('resourceful'), http = require('http'), fixtures = require('./fixtures'), macros = require('./macros'); var suite = APIeasy.describe('restful/restful-api-test'); macros.createServer(fixtures.Creature, { strict: true }).listen(8000); suite.use('localhost', 8000) .setHeader('Content-Type', 'application/json') .followRedirect(false) .next() macros.resourceTest('Creature', { _id: null }, suite) .next() macros.resourceTest('Creature', { _id: 2 }, suite) .next() macros.resourceTest('Creature', { _id: "bob" }, suite) .next() .export(module);
var APIeasy = require('api-easy'), assert = require('assert'), sys = require("sys"); var testContext = {}; var initialDocument = {"prop1":"asdasdsad","prop3":"88.1","prop2":"88"}; var updateDocumentData = {"prop1":"1111111"}; var updatedDocument = {"prop1":"1111111","prop3":"88.1","prop2":"88"}; var endpoint = "/test-db-crud-flex/test-collection"; var suite = APIeasy.describe('mongodb-rest post test'); suite.discuss('When using mongodb-rest API create/retrieve') .use('localhost', 3000) .setHeader('Content-Type', 'application/json') .post(endpoint, initialDocument) .expect(200) .expect('should respond with created document containing ID', function(err, res, body){ var result = JSON.parse(body); assert.isObject(result.data); assert.isString(result.data._id); for(var i in initialDocument) assert.equal(initialDocument[i], result.data[i]); testContext.id = result.data._id; suite.before('getID', function(outgoing){ outgoing.uri += "/"+result.data._id; return outgoing; }); }) .next() .get(endpoint)
var APIeasy = require('api-easy'), assert = require('assert'); var suite = APIeasy.describe('localhost:3000/Team'); suite.discuss('When adding points to team') .use('localhost', 3000) .setHeader('Content-Type', 'application/json') .del("/Team").expect(200).next() .post("/Team", {_id: "teamID", achievements: [], totalPoints: 0}) .expect(200).next() .get("/Team/teamID") .expect(200).next() .put("/Team/teamID/points", { points: 100 }) .expect(200) .expect('should respond with points added to the team', function(req, res, body) { var response = JSON.parse(body); assert.equal(response.data.totalPoints, 100); }).next() .export(module);
var fakeweb = require(__dirname + '/fakeweb.js'); var photos = require('../Connectors/Flickr/photos'); var contacts = require('../Connectors/Flickr/contacts'); var assert = require("assert"); var RESTeasy = require('api-easy'); var vows = require("vows"); var suite = RESTeasy.describe("Flickr Synclet"); var fs = require('fs'); var curDir = process.cwd(); process.setMaxListeners(0); process.on('uncaughtException',function(error){ console.dir(error.stack); }); var mePath = '/Data/flickr'; var pinfo = JSON.parse(fs.readFileSync(__dirname + mePath + '/me.json')); suite.next().suite.addBatch({ "Can get contacts" : { topic: function() { process.chdir(curDir + mePath); fakeweb.allowNetConnect = false; fakeweb.registerUri({ uri : 'http://api.flickr.com:80/services/rest/?api_sig=6094c6b15bb5e02db2d76efe471b2480&api_key=sdf&auth_token=qwert&format=json&method=flickr.contacts.getList&nojsoncallback=1&page=1&per_page=10', file : __dirname + '/fixtures/flickr/contacts_1.json' }); contacts.sync(pinfo, this.callback) }, "successfully" : function(err, response) { assert.isNull(err); assert.equal(response.data.contact.length, 3);
var apiEasy = require('api-easy'), assert = require('assert'); var bigBlusterApi = apiEasy.describe('http://bigbluster.jit.su/api'); bigBlusterApi.discuss('When using the BigBluster API\'s find operation (GET)') .use('bigbluster.jit.su', 80) .get('/api/find?userName=grales@gmail.com') .expect('should follow the User contract', function (err, res, body) { var userObject = JSON.parse(body); assert.equal(userObject.userName, '*****@*****.**'); }) .export(module);
//@see http://blog.nodejitsu.com/rest-easy-test-any-api-in-nodejs var APIeasy = require('api-easy'), assert = require('assert'); // // Create a APIeasy test suite for our API // var suite = APIeasy.describe('procrastinator'); // Create a tokenization function so we can use resource ids. var replacements = new Object; suite.before('replaceTokens', function (outgoing) { for(replacementIndex in replacements) { var replacement = replacements[replacementIndex]; var token = '$' + replacementIndex; outgoing.uri = outgoing.uri.replace(token, replacement); } return outgoing; }); // // Here we will configure our tests to use // http://127.0.0.1:8000 as the remote address // and to always send 'Content-Type': 'application/json' // suite.use('127.0.0.1', 8000) .setHeader('Content-Type', 'application/json') .discuss('When using the API') .discuss('and posting a new item')
var fakeweb = require(__dirname + '/fakeweb.js'); var friends = require('../Connectors/Facebook/friends'); var home = require('../Connectors/Facebook/home'); var photos = require('../Connectors/Facebook/photos'); var assert = require("assert"); var RESTeasy = require('api-easy'); var vows = require("vows"); var suite = RESTeasy.describe("Facebook Synclets"); var fs = require('fs'); var curDir = process.cwd(); process.setMaxListeners(0); process.on('uncaughtException',function(error){ console.dir(error.stack); }); var mePath = '/Data/facebook-1'; var pinfo = JSON.parse(fs.readFileSync(__dirname + mePath + '/me.json')); suite.next().suite.addBatch({ "Can get users" : { topic: function() { fakeweb.allowNetConnect = false; fakeweb.registerUri({uri : 'https://graph.facebook.com/me/friends?access_token=foo&date_format=U', file : __dirname + '/fixtures/facebook/friends2.json' }); fakeweb.registerUri({uri : 'https://graph.facebook.com/1234?access_token=foo&date_format=U&fields=id,name,first_name,middle_name,last_name,gender,locale,languages,link,username,third_party_id,timezone,updated_time,verified,bio,birthday,education,email,hometown,interested_in,location,political,favorite_athletes,favorite_teams,quotes,relationship_status,religion,significant_other,video_upload_limits,website,work', file : __dirname + '/fixtures/facebook/1234.json' }); fakeweb.registerUri({uri : 'https://graph.facebook.com/1234/picture?access_token=foo', file : __dirname + '/fixtures/facebook/1234.jpg', contentType : 'image/jpeg' }); process.chdir("." + mePath);
/* * accept-test.js: Tests for `content-type`-based routing * * (C) 2012, Nodejitsu Inc. * MIT LICENSE * */ var assert = require('assert'), apiEasy = require('api-easy'), director = require('../../../lib/director'), helpers = require('../helpers'), macros = helpers.macros, handlers = helpers.handlers; var PORT = 9067; apiEasy.describe('director/http/accept').addBatch({ "An instance of `director.http.Router`":{ "with routes set up":{ topic:function () { var router = new director.http.Router(); router.get('/json', { accept:'application/json' }, handlers.respondWithOk()); router.get('/txt', { accept:'text/plain' }, handlers.respondWithOk()); router.get('/both', { accept:['text/plain', 'application/json'] }, handlers.respondWithOk()); router.get('/regex', { accept:/.+\/x\-.+/ }, handlers.respondWithOk()); router.get('/weird', { accept:'application/json' }, function () { this.res.writeHead(400); this.res.end(); }); router.get('/weird', handlers.respondWithOk()); helpers.createServer(router).listen(PORT, this.callback); },
'use strict'; // apieasy usage : http://blog.nodejitsu.com/rest-easy-test-any-api-in-nodejs require('../lib/gitification.js'); var APIeasy = require('api-easy'); //assert = require('assert'); var suite = APIeasy.describe('leaderboard'); suite.discuss('When asking our API') .discuss('to send us the leaderboard') .use('localhost', 8080) .setHeader('Content-Type', 'application/json') .get('applications/1/leaderboard') .expect(200) .export(module);
var APIeasy = require('api-easy'), assert = require('assert'); var suite = APIeasy.describe('Badges api validation'); suite.use('localhost', 8888) .discuss('When getting all the badges') .get('/badges') .expect(200) .expect([]) .undiscuss() .next() .discuss('When adding a badge') .setHeader('Content-Type', 'application/json') .post('/badges', { name: 'badge1', icon: './icon/badge1.png' }) .expect(200) .expect('should respond the badge itself', function (err, res, body){ var badge = JSON.parse(body); assert.isNotNull(badge._id); assert.equal(badge.name, 'badge1'); assert.equal(badge.icon, './icon/badge1.png'); assert.equal(badge.url, '/badges/' + badge._id); }) .undiscuss() .next() .discuss('When getting all the badges') .removeHeader('Content-Type', 'application/json') .get('/badges') .expect(200) .expect('should respond with an array of one badge', function(err, res, body){ var badges = JSON.parse(body);
* * (C) 2012, Nodejitsu Inc. * MIT LICENSE * */ var assert = require('assert'), apiEasy = require('api-easy'), director = require('../../../lib/director'), helpers = require('../helpers'), macros = helpers.macros, handlers = helpers.handlers; var PORT = 9067; apiEasy.describe('director/http/accept') .addBatch({ "An instance of `director.http.Router`": { "with routes set up": { topic: function () { var router = new director.http.Router(); router.get('/json', { accept: 'application/json' }, handlers.respondWithOk()); router.get('/txt', { accept: 'text/plain' }, handlers.respondWithOk()); router.get('/both', { accept: ['text/plain', 'application/json'] }, handlers.respondWithOk()); router.get('/regex', { accept: /.+\/x\-.+/ }, handlers.respondWithOk()); router.get('/weird', { accept: 'application/json' }, function () { this.res.writeHead(400); this.res.end(); });
const PORT = 3000; // should we use the configured port? var config = require ('../config.js'); var app = require ('../app.js'), assert = require ('assert'), APIeasy = require ('api-easy'); app.listen(PORT); var newId; APIeasy.describe('/dwellers') .use('localhost', PORT) .path('/dwellers') .setHeader('Content-Type', 'application/json') .discuss('With no dwellers') .get().expect(200, {}) .next() .undiscuss() .put({'a': {foo: 'bar'}, 'b': {foo: 'baz'}}).expect(200) .next() .discuss('To verify PUT') .get().expect(200, {'a': {foo: 'bar'}, 'b': {foo: 'baz'}}) .next() .undiscuss() .post({foo: 'new'}).expect(201).expect('returns id', function(err, req, body){ newId = JSON.parse(body); }) .next()
// apieasy usage : http://blog.nodejitsu.com/rest-easy-test-any-api-in-nodejs var server = require('../lib/gitification.js'); var APIeasy = require('api-easy'); //assert = require('assert'); ////////////////////////////// // TODO tests // * delete non-existing // * update non-existing // * get badges // * add messages in replies ////////////////////////////// var suite = APIeasy.describe('users'); suite.discuss('When asking our API') //// GET //// .discuss('to send us') .discuss('the list of users') .use('localhost', 8080) .setHeader('Content-Type', 'application/json') .get(server.prefix + '/applications/1/users/') .expect(200) .undiscuss() .discuss('the details of an existing user') .use('localhost', 8080) .setHeader('Content-Type', 'application/json') .get(server.prefix + '/applications/1/users/1') .expect(200)
'use strict'; // apieasy usage : http://blog.nodejitsu.com/rest-easy-test-any-api-in-nodejs require('../lib/gitification.js'); var APIeasy = require('api-easy'); //assert = require('assert'); var suite = APIeasy.describe('events'); suite.discuss('When asking our API') //// GET //// .discuss('to send us') .discuss('the list of events') .use('localhost', 8080) .setHeader('Content-Type', 'application/json') .get('applications/1/events') .expect(200) .undiscuss() .discuss('a specific event') .use('localhost', 8080) .setHeader('Content-Type', 'application/json') .get('applications/1/events/1') .expect(200) .undiscuss() .discuss('a specific event but with invalid id value') .use('localhost', 8080)
//tests for IMAP connector var assert = require('assert'); var vows = require('vows'); var RESTeasy = require('api-easy'); var http = require('http'); var querystring = require('querystring'); var events = require('events'); var fs = require('fs'); var request = require('request'); var lfs = require('../Common/node/lfs.js'); var locker = require('../Common/node/locker.js'); var path = require('path'); var testUtils = require(__dirname + "/test-utils.js"); var suite = RESTeasy.describe('IMAP Connector') var id = 'imap-test'; //requires that the credentials be stored in a file in tests/Me/imap-auth.json //in the form of {"username":"******", "password":"******", "server":"imap.gmail.com"} try { var credstr = fs.readFileSync('Me/' + id + '/secrets.json'); if(credstr) var auth = JSON.parse(credstr); } catch (E) { var auth = undefined; } if(auth && auth.username && auth.password && auth.server) {
var contacts = require('../Collections/Contacts/sync.js'); var dataStore = require('../Collections/Contacts/dataStore.js'); var assert = require("assert"); var vows = require("vows"); var currentDir = process.cwd(); var fakeweb = require(__dirname + '/fakeweb.js'); var mongoCollections; var svcId = 'contacts'; var lconfig = require('lconfig'); lconfig.load('config.json'); var request = require('request'); var RESTeasy = require('api-easy'); var suite = RESTeasy.describe("Contacts Collection"); var friend; var thecollections = ['contacts']; var lconfig = require('../Common/node/lconfig'); lconfig.load("config.json"); var lmongoclient = require('../Common/node/lmongoclient.js')(lconfig.mongo.host, lconfig.mongo.port, svcId, thecollections); var events = 0; var fs = require('fs'); var foursquareEvent1 = fs.readFileSync('fixtures/events/contacts/foursquare_contact_1.json'); var foursquareEvent2 = fs.readFileSync('fixtures/events/contacts/foursquare_contact_2.json'); var foursquareEvent3 = fs.readFileSync('fixtures/events/contacts/foursquare_contact_3.json');
var APIeasy = require('api-easy'), assert = require('assert'), surveys = require('../../../../fixtures/Surveys').surveys, users = require('../../../../fixtures/Users').users, surveyKey, Configuration = require('../../../../app/helpers/Configuration'), loginHelper = require('../../../helpers/login'), fixturesLoader = require('../../../helpers/fixturesLoader').addToSuite, sendSurveySuite = fixturesLoader(APIeasy.describe('Send Survey Controller')); function sendSurveyTestsForUser (user) { surveyKey = 'surveyToSend_' + user; loginHelper.login(sendSurveySuite, user) .next() .discuss('When ' + user) .discuss(' tries to send unpublished survey') .post('/sendSurvey/' + surveys[surveyKey]._id, { users: [users.superAdmin._id, users.fieldWorker._id] }) .expect(204) .next() .get('/surveys/' + surveys[surveyKey]._id) .expect('should make this survey published', function (err, resp, body) { var survey = JSON.parse(body); assert.equal(survey.published, true); }) .next()
fs = require('fs'), path = require('path'), users = require('../../../../fixtures/Users').users, surveys = require('../../../../fixtures/Surveys').surveys, loginHelper = require('../../../helpers/login'), Configuration = require('../../../../app/helpers/Configuration'), JXON = require('../../../../app/helpers/JXON'), testXMLPath = '../../../../resources/xml/survey.xml', testXML = fs.readFileSync(path.resolve(__dirname + testXMLPath), 'utf8'), fixturesLoader = require('../../../helpers/fixturesLoader').addToSuite, xmlSuite = fixturesLoader(APIeasy.describe('XML Controller')); function xmlTestsForUser (user) { loginHelper.login(xmlSuite, user) .next() .discuss('When ' + user) .discuss('tries to post survey as xml') .post('/xml', { xml: testXML }) .expect(200) .expect('should respond with new survey id', function (err, resp, body) { var id = JSON.parse(body).id.toString(); assert.equal(id.length, 24); xmlSuite.before('setSurveyId', function (outgoing) { outgoing.uri = outgoing.uri.replace('SURVEY_ID', id);
var fakeweb = require('node-fakeweb'); var dataStore = require('../Collections/Links/dataStore'); var dataIn = require('../Collections/Links/dataIn'); var util = require('../Collections/Links/util'); var search = require('../Collections/Links/search'); var assert = require("assert"); var RESTeasy = require('api-easy'); var vows = require("vows"); var suite = RESTeasy.describe("Links Collection"); var fs = require('fs'); var request = require('request'); var twitterEvent = JSON.parse(fs.readFileSync('fixtures/events/links/twitter_event_2.json','ascii')); var facebookEvent = JSON.parse(fs.readFileSync('fixtures/events/links/facebook_event_1.json','ascii')); process.setMaxListeners(0); process.on('uncaughtException',function(error){ console.dir(error.stack); }); var mePath = '/Data/links'; var pinfo = JSON.parse(fs.readFileSync(__dirname + mePath + '/me.json')); var thecollections = ['link','encounter','queue']; var lconfig = require('../Common/node/lconfig'); lconfig.load("Config/config.json"); var locker = {}; locker.event = function(){}; util.expandUrl = function(a,b,c){b(a.url);c();} // fakeweb doesn't support HEAD reqs AFAICT :( var lmongo = require('../Common/node/lmongo.js');
var lconfig = require('lconfig'); lconfig.load('Config/config.json'); var locker = require('locker'); var assert = require('assert'); var RESTeasy = require('api-easy'); var suite = RESTeasy.describe('Search Collection'); var fakeweb = require(__dirname + '/fakeweb.js'); var lsearch = require('lsearch'); var search = require('../Collections/Search/search'); var fs = require('fs'); search.lockerInfo.lockerUrl = 'http://localhost:8042'; locker.lockerBase = search.lockerInfo.lockerUrl; var contactAddEvent = JSON.parse(fs.readFileSync('fixtures/events/contacts/contacts_collection_contact_1.json','ascii')); var contactUpdateEvent = JSON.parse(fs.readFileSync('fixtures/events/contacts/contacts_collection_contact_1_updated.json','ascii')); var contactAddEvent2 = JSON.parse(fs.readFileSync('fixtures/events/contacts/contacts_collection_contact_2.json','ascii')); var twitterEvent = JSON.parse(fs.readFileSync('fixtures/events/timeline_twitter/twitter_tweet_1.json','ascii')); fakeweb.allowNetConnect = false; fakeweb.registerUri({uri : 'http://localhost:8042/Me/twitter/timeline/4e604465cec3a369b34a3126', body:JSON.stringify(twitterEvent.obj.data), contentType:"application/json"}); fakeweb.registerUri({uri : 'http://localhost:8042/Me/contacts/4e5e9731e4884f5600595b28', body:JSON.stringify(contactAddEvent.obj.data), contentType:"application/json"}); fakeweb.registerUri({uri : 'http://localhost:8042/Me/contacts/4e5e9731e4884f5600595b29', body:JSON.stringify(contactAddEvent.obj.data), contentType:"application/json"}); var req = {}; req.headers = {}; req.headers['content-type'] = 'application/json'; req.params = {}; req.param = function(n) { return this.params[n];}; lsearch.setEngine(lsearch.engines.CLucene);
var mongoCollections; var currentDir = process.cwd(); var svcId = 'facebook'; var mePath = '/Me/' + svcId; var thecollections = ['friends', 'newsfeed', 'wall']; process.on('uncaughtException',function(error){ sys.puts(error.stack); }); require.paths.push(__dirname + "/Common/node"); var fakeweb = require(__dirname + '/fakeweb.js'); var sync = require('../Connectors/Facebook/sync'); var dataStore = require('../Common/node/connector/dataStore'); var assert = require('assert'); var RESTeasy = require('api-easy'); var suite = RESTeasy.describe('Facebook Connector'); var vows = require('vows'); var lconfig = require('../Common/node/lconfig'); lconfig.load('config.json'); var utils = require('./test-utils'); var lmongoclient = require('../Common/node/lmongoclient.js')(lconfig.mongo.host, lconfig.mongo.port, svcId, thecollections); var locker = require('../Common/node/locker'); var levents = require('../Common/node/levents'); var emittedEvents = []; sync.eventEmitter.on('contact/facebook', function(eventObj) { levents.fireEvent('contact/facebook', 'facebook-test', eventObj); }); sync.eventEmitter.on('link/facebook', function(eventObj) { levents.fireEvent('link/facebook', 'facebook-test', eventObj);
var APIeasy = require('api-easy'), assert = require('assert'); APIeasy .describe('application') .use('localhost', 8080) .discuss('When using the api') .discuss('with no url in the db') .get('/url/all').expect(200,{result: true, data: null}) .get('/url/new') .expect('should return an html form', function(err, res, body){ assert.equal(err, null); assert.equal(res.statusCode, 200); }) .export(module);
var APIeasy = require('api-easy'); // // Create a APIeasy test suite for our API // var suite = APIeasy.describe('api'); // // Add some discussion around the vowsjs tests. // Not familiar with vows? Checkout: // http://vowsjs.org // suite.discuss('When using the API') .discuss('the Ping resource'); // // Here we will configure our tests to use // http://localhost:8109 as the remote address // and to always send 'Content-Type': 'application/json' // suite.use('localhost', 80).setHeader('Content-Type', 'application/json') .discuss('When using the activiti rest api login POST') .post('/enricher/login', {"userId": "kermit","password": "******"}) .expect(200, {"success": true}) .discuss('When querying the user kermit') .get('/enricher/user/kermit').expect(200,{"id":"kermit","firstName":"Kermit","lastName":"the Frog","email":"kermit@localhost"}) .discuss('When querying kermits groups') .get('/enricher/user/kermit/groups') .expect(200,{"data":[ {"id":"accountancy","name":"Accountancy","type":"assignment"},
var fakeweb = require(__dirname + '/fakeweb.js'); var twitter = require('../Connectors/Twitter/sync'); var dataStore = require('../Common/node/connector/dataStore'); var RESTeasy = require('api-easy'); var assert = require("assert"); var vows = require("vows"); var fs = require("fs"); var currentDir = process.cwd(); var request = require('request'); var locker = require('../Common/node/locker'); var suite = RESTeasy.describe("Twitter Connector") var utils = require('./test-utils'); process.on('uncaughtException',function(error){ sys.puts(error.stack); }); var svcId = "twitter"; var mePath = '/Me/' + svcId; var thecollections = ['friends', 'followers', 'home_timeline', 'user_timeline', 'mentions']; var lconfig = require('../Common/node/lconfig'); lconfig.load("config.json"); var lmongoclient = require('../Common/node/lmongoclient.js')(lconfig.mongo.host, lconfig.mongo.port, svcId, thecollections); var mongoCollections; var emittedEvents = []; var levents = require('../Common/node/levents.js'); twitter.eventEmitter.on('contact/twitter', function(eventObj) { levents.fireEvent('contact/twitter', 'twitter-test', eventObj);