149 lines
3.7 KiB
JavaScript
149 lines
3.7 KiB
JavaScript
let Express = require('express')
|
|
let request = require('../index');
|
|
let assert = require('assert');
|
|
let bodyParser = require('body-parser')
|
|
|
|
const app = Express();
|
|
const port = 3006;
|
|
|
|
let server;
|
|
|
|
|
|
describe('/POST-Express', function() {
|
|
before(function() {
|
|
server = app.listen(port, () => {
|
|
app.use(bodyParser.json())
|
|
app.use(bodyParser.urlencoded({ extended: false }))
|
|
console.log("Test are running on port : " + port);
|
|
app.post("/", function(req, res) {
|
|
res.append('Content-Type', 'text/html');
|
|
res.append('authorization', req.headers.authorization || "");
|
|
res.send(req.body)
|
|
})
|
|
|
|
app.post('/redirect', function(req, res) {
|
|
res.redirect('/')
|
|
})
|
|
app.post('/redirect1', function(req, res) {
|
|
res.redirect('/redirect')
|
|
})
|
|
});
|
|
});
|
|
|
|
|
|
describe('/', function() {
|
|
it('should return 200', function(done) {
|
|
request.post('http://localhost:3006/', function(err, data, status) {
|
|
assert.ifError(err);
|
|
assert.equal(200, status);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should say "Hello, world!" inside a JSON object', function(done) {
|
|
request.post("http://localhost:3006", { hello: 'Hello, world!' }, function(err, data) {
|
|
assert.ifError(err);
|
|
assert.deepEqual({ hello: 'Hello, world!' }, JSON.parse(data));
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("should have content-type to 'text/html'", function(done) {
|
|
request.post("http://localhost:3006", function(err, data, status, headers) {
|
|
assert.ifError(err);
|
|
assert.equal('text/html; charset=utf-8', headers['content-type']);
|
|
done();
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
describe('/redirect', function() {
|
|
it("should be redirected correctly'", function(done) {
|
|
request.post("http://localhost:3006/redirect", function(err, data, status, headers) {
|
|
assert.equal(status, 200);
|
|
assert.equal('text/html; charset=utf-8', headers['content-type']);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("should throw an error'", function(done) {
|
|
request.request({ url: "http://localhost:3006/redirect",
|
|
method: 'POST',
|
|
requestOptions: { followRedirect: false }
|
|
|
|
}
|
|
, function(err, data, status, headers) {
|
|
assert.equal(JSON.parse(err).code, 0)
|
|
assert.equal(302, status);
|
|
done();
|
|
});
|
|
});
|
|
it("should not throw an error'", function(done) {
|
|
request.request({ url: "http://localhost:3006/redirect",
|
|
method: 'POST',
|
|
requestOptions: { followRedirect: true }
|
|
|
|
}
|
|
, function(err, data, status, headers) {
|
|
assert.equal(200, status);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("should keep headers", function(done) {
|
|
request.request({ url: "http://localhost:3006/redirect",
|
|
method: 'POST',
|
|
requestOptions: { },
|
|
headers: {
|
|
authorization: "Yo Zaral !"
|
|
}
|
|
|
|
}
|
|
, function(err, data, status, headers) {
|
|
assert.equal(headers.authorization, "Yo Zaral !")
|
|
assert.equal(200, status);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("should not keep headers", function(done) {
|
|
request.request({ url: "http://localhost:3006/redirect",
|
|
method: 'POST',
|
|
requestOptions: { trustRedirect: false },
|
|
headers: {
|
|
authorization: "Yo Zaral !"
|
|
}
|
|
|
|
}
|
|
, function(err, data, status, headers) {
|
|
assert.equal(headers.authorization, "")
|
|
assert.equal(200, status);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
describe('/redirect x2', function() {
|
|
|
|
it("should throw an error'", function(done) {
|
|
request.request({ url: "http://localhost:3006/redirect1",
|
|
method: 'POST',
|
|
requestOptions: { maxRedirect: 1 }
|
|
|
|
}
|
|
, function(err, data, status, headers) {
|
|
assert.equal(JSON.parse(err).code, 1)
|
|
assert.equal(302, status);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
|
|
after(function() {
|
|
server.close();
|
|
});
|
|
});
|
|
|