assaf/node-replay

Replay Needs Reset or Cleanup Function

ggb667 opened this issue · 1 comments

Replay needs a cleanup function.

I tried this at the start of index.js (for use in a before block in a mocha test):

const HTTP = require('http');
const HTTPS = require('https');
const DNS = require('dns');
const origHttpRequest = HTTP.request;
const origHttpGet = HTTP.get;
const origHttpsGet = HTTPS.get;
const originalLookup = DNS.lookup;

restore() {
HTTP.request = origHttpRequest;
HTTP.get = origHttpGet;
HTTPS.get = origHttpsGet;
DNS.lookup = originalLookup;
}

But I missed something because this still has problems when people use nock or sinon, and we would need something for the before block to undo this.

What I ended up doing for now in each test:

before(function(){
if(process.env.REPLAY) {
Replay.mode = process.env.REPLAY;
}
});

after(function(){
Replay.mode = "bloody";
});