Skip to content

Commit

Permalink
reproducing issue expressjs#2
Browse files Browse the repository at this point in the history
  • Loading branch information
troygoode committed Apr 28, 2013
1 parent e6297eb commit b2c49ca
Show file tree
Hide file tree
Showing 3 changed files with 141 additions and 3 deletions.
9 changes: 6 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,14 @@
}
, "dependencies": {}
, "devDependencies": {
"mocha": "latest"
, "should": "latest"
"express": "*"
, "lint": "*"
, "mocha": "*"
, "should": "*"
, "supertest": "*"
}
, "scripts": {
"test": "mocha"
, "lint": "node-lint lib test"
, "lint": "./node_modules/lint/bin/node-lint lib test"
}
}
95 changes: 95 additions & 0 deletions test/example-app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
/*jslint nodejs: true*/
/*global describe: true, it: true*/

'use strict';

var should = require('should'),
express = require('express'),
supertest = require('supertest'),
cors = require('../lib');

/* -------------------------------------------------------------------------- */

var simpleApp = express();
simpleApp.get('/', cors(), function(req, res){
res.send('Hello World (Get)');
});
simpleApp.head('/', cors(), function(req, res){
res.send(204);
});
simpleApp.post('/', cors(), function(req, res){
res.send('Hello World (Post)');
});

/* -------------------------------------------------------------------------- */

var complexApp = express();
complexApp.all('/', cors(), function(req, res, next){
next();
});
complexApp.del('/', cors(), function(req, res){
res.send('Hello World (Delete)');
});

/* -------------------------------------------------------------------------- */

describe('example app(s)', function(){
describe('simple methods', function(){
it('GET works', function(done){
supertest(simpleApp)
.get('/')
.expect(200)
.end(function(err, res){
should.not.exist(err);
res.headers['access-control-allow-origin'].should.eql('*');
res.text.should.eql('Hello World (Get)');
done();
});
});
it('HEAD works', function(done){
supertest(simpleApp)
.head('/')
.expect(204)
.end(function(err, res){
should.not.exist(err);
res.headers['access-control-allow-origin'].should.eql('*');
done();
});
});
it('POST works', function(done){
supertest(simpleApp)
.post('/')
.expect(200)
.end(function(err, res){
should.not.exist(err);
res.headers['access-control-allow-origin'].should.eql('*');
res.text.should.eql('Hello World (Post)');
done();
});
});
});

describe('complex methods', function(){
it('OPTIONS works', function(done){
supertest(complexApp)
.options('/')
.expect(204)
.end(function(err, res){
should.not.exist(err);
res.headers['access-control-allow-origin'].should.eql('*');
done();
});
});
it('DELETE works', function(done){
supertest(complexApp)
.del('/')
.expect(200)
.end(function(err, res){
should.not.exist(err);
res.headers['access-control-allow-origin'].should.eql('*');
res.text.should.eql('Hello World (Delete)');
done();
});
});
});
});
40 changes: 40 additions & 0 deletions test/issue-2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*jslint nodejs: true*/
/*global describe: true, it: true*/

'use strict';

var should = require('should'),
express = require('express'),
supertest = require('supertest'),
cors = require('../lib');

/* -------------------------------------------------------------------------- */

var app = express(),
corsOptions = {
origin: true,
methods: ['POST'],
credentials: true,
maxAge: 3600,
enablePreflight: true
};
app.post('/api/login', cors(corsOptions), function(req, res){
res.send('LOGIN');
});

/* -------------------------------------------------------------------------- */

describe('issue #2', function(){
it('is fixed', function(done){
supertest(app)
.post('/api/login')
.expect(200)
.end(function(err, res){
should.not.exist(err);
console.log(res.headers);
res.headers['access-control-allow-origin'].should.eql('*');
res.text.should.eql('LOGIN');
done();
});
});
});

0 comments on commit b2c49ca

Please sign in to comment.