lpio
Version:
The last dashboard app you'll ever need
77 lines (67 loc) • 2.6 kB
JavaScript
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);
})
});
});
});