UNPKG

express-htaccess-middleware

Version:

An express middleware that interprets .htaccess rewrite rules.

97 lines (71 loc) 2.26 kB
var RewriteMiddleware = require('../lib/middleware'); var express = require('./helpers/express'); var expect = require('chai').expect; var path = require('path'); var supertest = require('supertest'); var async = require('async'); var app = null; describe('11-simple-redirections', function() { before(function (done) { var file = path.resolve(__dirname, 'htaccess_files', '11-simple-redirections.htaccess'); express(0, {file: file}, function(err, server, expressInstance) { app = server; expressInstance.get('/dest1.html', function (req, res) { res.send('content of dest1.html'); }); done(); }); }); after(function (done) { app.close(); done(); }); it('1st set of rules', function (done) { this.request = supertest(app) .get('/source1.html') .end(function (err, res) { expect(res.statusCode).to.equal(200); expect(res.text).to.equal('content of dest1.html'); done(); }); }); it('2nd set of rules', function (done) { this.request = supertest(app) .get('/source2.html') .end(function (err, res) { expect(res.statusCode).to.equal(302); expect(res.header).to.have.property('location'); expect(res.header.location).to.equal('/destA3.html'); done(); }); }); it('3rd set of rules', function (done) { this.request = supertest(app) .get('/source3.html') .end(function (err, res) { expect(res.statusCode).to.equal(200); expect(res.text).to.equal('content of dest1.html'); done(); }); }); it('4th set of rules', function (done) { this.request = supertest(app) .get('/source4.html') .end(function (err, res) { expect(res.statusCode).to.equal(302); expect(res.header).to.have.property('location'); expect(res.header.location).to.equal('/destA3.html'); done(); }); }); it('5th set of rules', function (done) { this.request = supertest(app) .get('/source5.html') .end(function (err, res) { expect(res.statusCode).to.equal(302); expect(res.header).to.have.property('location'); expect(res.header.location).to.equal('/destB1.html'); done(); }); }); });