Skip to content

Commit c025e80

Browse files
committed
fix(rmWhitespace): normalize line endings and improve whitespace handling in tests
1 parent 15f8ccb commit c025e80

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

test/ejs.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ var assert = require('assert');
1111
var path = require('path');
1212
var { LRUCache: LRU } = require('lru-cache');
1313
const { test, suite, teardown } = require('mocha');
14-
let lf = process.platform !== 'win32' ? '\n' : '\r\n';
14+
// Use LF consistently - .gitattributes enforces LF line endings for all files
15+
let lf = '\n';
1516

1617
try {
1718
fs.mkdirSync(__dirname + '/tmp');
@@ -851,8 +852,6 @@ suite('exceptions', function () {
851852
catch (err) {
852853
assert.equal(err.path, 'error.ejs');
853854
var errstck = err.stack.split('\n').slice(0, 8).join('\n');
854-
errstck = errstck.replace(/\n/g,lf);
855-
errstck = errstck.replace(/\r\r\n/g,lf);
856855
assert.equal(errstck, fixture('error.out'));
857856
return;
858857
}
@@ -869,8 +868,6 @@ suite('exceptions', function () {
869868
catch (err) {
870869
assert.ok(!err.path);
871870
var errstck = err.stack.split('\n').slice(0, 8).join('\n');
872-
errstck = errstck.replace(/\n/g,lf);
873-
errstck = errstck.replace(/\r\r\n/g,lf);
874871
assert.notEqual(errstck, fixture('error.out'));
875872
return;
876873
}
@@ -923,7 +920,20 @@ suite('exceptions', function () {
923920
suite('rmWhitespace', function () {
924921
test('works', function () {
925922
var outp = ejs.render(fixture('rmWhitespace.ejs'), {}, {rmWhitespace: true});
926-
assert.equal(outp.replace(/\n/g,lf), fixture('rmWhitespace.html'));
923+
assert.equal(outp, fixture('rmWhitespace.html'));
924+
});
925+
926+
test('normalizes CRLF to LF', function () {
927+
// rmWhitespace intentionally normalizes all line endings to LF
928+
var input = '<p>\r\n <%= name %>\r\n</p>';
929+
var outp = ejs.render(input, {name: 'test'}, {rmWhitespace: true});
930+
assert.equal(outp, '<p>\ntest\n</p>');
931+
});
932+
933+
test('strips leading/trailing whitespace from lines', function () {
934+
var input = '<p>\n <%= name %> \n</p>';
935+
var outp = ejs.render(input, {name: 'test'}, {rmWhitespace: true});
936+
assert.equal(outp, '<p>\ntest\n</p>');
927937
});
928938
});
929939

0 commit comments

Comments
 (0)