express-htaccess-middleware
Version:
An express middleware that interprets .htaccess rewrite rules.
52 lines (40 loc) • 1.36 kB
JavaScript
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('20-url-params', function() {
before(function (done) {
var file = path.resolve(__dirname, 'htaccess_files', '20-url-params.htaccess');
express(0, {file: file}, function(err, server) {
app = server;
done();
});
});
after(function (done) {
app.close();
done();
});
it('RewriteRule ^source1/([0-9]+)/([0-9]+)$ /dest1.php?a=$1&b=$2 [R]', function (done) {
this.request = supertest(app)
.get('/source1/123/456')
.end(function (err, res) {
expect(res.statusCode).to.equal(302);
expect(res.header).to.have.property('location');
expect(res.header.location).to.equal('/dest1.php?a=123&b=456');
done();
});
});
it('RewriteRule ^source2/([a-z]+)/([\\w]+)$ /dest2.php?a=$1&b=$2&c=$2 [R]', function (done) {
this.request = supertest(app)
.get('/source2/abc/xYZ')
.end(function (err, res) {
expect(res.statusCode).to.equal(302);
expect(res.header).to.have.property('location');
expect(res.header.location).to.equal('/dest2.php?a=abc&b=xYZ&c=xYZ');
done();
});
});
});