UNPKG

lpio

Version:

The last dashboard app you'll ever need

77 lines (67 loc) 2.6 kB
var assert = require("chai").assert; var Q = require('q'); var request = require('superagent'); var Promise = require('promise'); var agent = require('superagent-promise')(require('superagent'), Promise); var log = require('../log'); var config = require('../config'); var server = require('../server'); var base_url = "http://localhost:"+config.app_settings.port; var test_widget_id = null; describe('LinchPin API',function(){ before(function(done){ server.start() .then(function(){ done(); }); }); describe('SEND value to widget',function(){ it('should be able to create a new widget',function(done){ agent.post(base_url+'/v1/widget',{ name: 'My first widget', dashboards:[], html:'', js:'', css:'' }) .then(function(response){ log.info({res:response.body}); assert.isObject(response.body); assert.equal(response.body.status,"ok","Status should be ok"); test_widget_id = response.body.data.id; assert.isAbove(test_widget_id.length,5,"id should be at least 5 chars:"+test_widget_id); done(); }) .catch(function(err){ done(err); }) }); it('should be able to update value on the widget',function(done){ var value = { "item": [ { "text": "Visitors", "value": 4223 }, { "text": "", "value": 238 } ] }; agent.post(base_url+'/v1/send/'+test_widget_id,{ "data": value }) .then(function(response){ log.info({res:response.body}); assert.isObject(response.body); assert.equal(response.body.status,"ok","Status should be ok"); return agent.get(base_url+'/v1/widget/'+test_widget_id) }) .then(function(response){ assert.isObject(response.body); assert.isArray(response.body.dashboards); assert.equal(response.body._id,test_widget_id); assert.deepEqual(response.body.value,value); done(); }) .catch(function(err){ done(err); }) }); }); });