@@ -11,7 +11,8 @@ var assert = require('assert');
1111var path = require ( 'path' ) ;
1212var { LRUCache : LRU } = require ( 'lru-cache' ) ;
1313const { 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
1617try {
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 () {
923920suite ( '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