express-htaccess-middleware
Version:
An express middleware that interprets .htaccess rewrite rules.
38 lines (25 loc) • 1.44 kB
JavaScript
var RewriteRule = require('../lib/RewriteRule');
var expect = require('chai').expect;
describe('01-url-patterns', function() {
it('simple', function (done) {
var rule = new RewriteRule({pattern: '^foo.html$', substitution: 'test.html', flags: ''});
expect(rule.matches('test.html')).to.be.null;
expect(rule.matches('/foo.html?a=1')).to.be.null;
expect(rule.matches('foo.html?a=1')).to.be.null;
expect(rule.matches('foo.html').dest).to.be.equal('test.html');
done();
});
it('with variables', function (done) {
var rule = new RewriteRule({pattern: '^article-([0-9]+)-([0-9]+)\\.html$', substitution: '/articles/article.php?id=$1&cat=$2', flags: ''});
expect(rule.matches('article-a-a.html')).to.be.null;
expect(rule.matches('article-1-2.html').dest).to.be.equal('/articles/article.php?id=1&cat=2');
expect(rule.matches('article-34567-987654.html').dest).to.be.equal('/articles/article.php?id=34567&cat=987654');
done();
});
it('with variables #2', function (done) {
var rule = new RewriteRule({pattern: '^article-([0-9]+)-([0-9]+)\\.html$', substitution: '/articles/article.php?id=$1&cat=$2&catid=$2', flags: ''});
expect(rule.matches('article-1-2.html').dest).to.be.equal('/articles/article.php?id=1&cat=2&catid=2');
expect(rule.matches('article-34567-987654.html').dest).to.be.equal('/articles/article.php?id=34567&cat=987654&catid=987654');
done();
});
});