UNPKG

lpio

Version:

The last dashboard app you'll ever need

111 lines (97 loc) 3.88 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('CRUD 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 retrieve the widget',function(done){ agent.get(base_url+'/v1/widget/'+test_widget_id) .then(function(response){ log.info({res:response.body}); assert.isObject(response.body); assert.isArray(response.body.dashboards); assert.equal(response.body._id,test_widget_id); done(); }) .catch(function(err){ done(err); }) }); it('should be able to update the widget',function(done){ agent.put(base_url+'/v1/widget/'+test_widget_id,{ name:"Another name", 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"); 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.equal(response.body.name,"Another name"); done(); }) .catch(function(err){ done(err); }) }); it('should be able to delete the widget',function(done){ agent.del(base_url+'/v1/widget/'+test_widget_id) .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){ done(new Error("Should not be found")); }) .catch(function(err){ if(err.status == 404){ done(); } else { done(err); } }); }); }); });