Skip to content

Commit

Permalink
adding test for delete route
Browse files Browse the repository at this point in the history
  • Loading branch information
esatterwhite committed Dec 30, 2016
1 parent caad8e9 commit 5f5e927
Show file tree
Hide file tree
Showing 2 changed files with 137 additions and 4 deletions.
121 changes: 121 additions & 0 deletions test/integration/delete-timer.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
'use strict';
const os = require('os')
, http = require('http')
, assert = require('assert')
, uuid = require('uuid')
, supertest = require('supertest')
, Server = require('../../lib')
;

describe('skyring:api', function() {
let server, request, hostname;
this.timeout(4000);
before(( done ) => {
const HOST = process.env.TEST_HOST
hostname = HOST ? HOST : os.hostname();
server = new Server();
request = supertest('http://localhost:4444')
server.load().listen(4444, null, null, done);
});

after(( done ) => {
server.close(done);
});

describe('#DELETE /timer/:id', function(){
let url, callback_server;
beforeEach(( done ) => {
request
.post('/timer')
.send({
timeout: 1000
, data: 'hello'
, callback: {
uri: `http://${hostname}:9999`
, method: 'post'
, transport: 'http'
}
})
.expect(201)
.end(( err, res ) => {
assert.ifError(err);
assert.ok(res.headers.location);
url = res.headers.location;
done(err)
})
});

afterEach(( done ) => {
if( callback_server ){
return callback_server.close(() => {
callback_server = null
done()
})
};
done()
});

it('Should cancel an existing timer -202', (done) => {
callback_server = http.createServer((req, res) => {
res.writeHead(500);
res.end();
const err = new Error('timer should be deleted')
done(err);
}).listen(9999);

request
.delete(url)
.expect(202)
.end((err, res) => {
assert.ifError(err);
err && console.log(res.headers['x-skyring-reason'])
setTimeout(() => {
done()
}, 1200);
});
}); // end 202

it('should 404 on a time that was previously canceled', ( done ) => {
callback_server = http.createServer((req, res) => {
res.writeHead(500);
res.end();
const err = new Error('timer should be deleted')
done(err);
}).listen(9999);

request
.delete(url)
.expect(202)
.end((err, res) => {
err && console.log(res.headers['x-skyring-reason'])
assert.ifError(err);
request
.delete(url)
.expect(404)
.end((err, res) => {
setTimeout(() => {
done()
}, 1200);
});
});
}); // end 404

it('should 404 on a timer that doesn not exist', ( done ) => {
request
.delete(`/timer/${uuid.v4()}`)
.expect(404)
.end((err, res) => {
err && console.log(res.headers['x-skyring-reason'])
assert.ifError(err);
request
.delete(url)
.expect(404)
.end((err, res) => {
setTimeout(() => {
done()
}, 1200);
});
});
})
});
});
20 changes: 16 additions & 4 deletions test/integration/post-timer.spec.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
'user strict'
'user strict';
const http = require('http')
, assert = require('assert')
, supertest = require('supertest')
Expand Down Expand Up @@ -106,7 +106,7 @@ describe('skyring:api', function() {
.expect(400)
.end((err, res) => {
assert.equal(typeof res.headers['x-skyring-reason'], 'string')
done()
done()
});
});

Expand All @@ -124,7 +124,7 @@ describe('skyring:api', function() {
.expect(400)
.end((err, res) => {
assert.equal(typeof res.headers['x-skyring-reason'], 'string')
done()
done()
});
});

Expand All @@ -141,7 +141,19 @@ describe('skyring:api', function() {
.expect(400)
.end((err, res) => {
assert.equal(typeof res.headers['x-skyring-reason'], 'string')
done()
done()
});
});
it('should not allow request with no callback - (400)', (done) => {
request
.post('/timer')
.send({
timeout:1000
, data: 'hello'
})
.expect(400)
.end((err, res) => {
done()
});
});

Expand Down

0 comments on commit 5f5e927

Please sign in to comment.