assaf / node-replay

When API testing slows you down: record and replay HTTP responses like a boss
http://documentup.com/assaf/node-replay
MIT License
522 stars 107 forks source link

regex in catalog.js chokes on CRLF replay files when .slice() invoked #153

Open ggb667 opened 6 years ago

ggb667 commented 6 years ago

I know its GIT screwing these up, but headers are defined as CRLF in the standard, so the file ought to be able to handle either format. But it does not. This leads to people checking things out and tests failing that ran locally and run on the remote jenkins, but fail locally.

Sometimes you get a warning that the method .slice() was invoked on null, if you are in a debugger, but when running mocha from the command like you get an unhelpful message:

(node:11932) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: POST http://uso12degx03:3051/ refused: not recording and no network access

It was choking on the first value "accept: text/xml" when it tried to match ^(.?)\:\s+(.)$

Line 59 (and others if you fix this one). var _line$match$slice = line.match(/^(.?)\:\s+(.)$/).slice(1),

line.match(/^(.?)\:\s+(.)$/) is null so the method invocation explodes.

Work around:

  1. Add to a .gitattributes file /*/replay text eol=lf

  2. Change the files to LF

  3. Run git config --global core.autocrlf input

ggb667 commented 6 years ago

Temporary work around:

Without a proper .gitattributes file (e.g. /*/replay text eol=lf), or if generated and/or edited without .gitconfig being set properly (e.g. git config --global core.autocrlf input) they will fail when tests are run locally.