Skip to content

Commit

Permalink
Merge pull request #108 from sinonjs/lolex-5-and-no-globals
Browse files Browse the repository at this point in the history
Ugrade lolex to v5 and don't detect globals
  • Loading branch information
fatso83 committed Oct 14, 2019
2 parents ff9b43d + 0a81369 commit 1a3eedd
Show file tree
Hide file tree
Showing 7 changed files with 109 additions and 66 deletions.
19 changes: 14 additions & 5 deletions lib/fake-server/fake-server-with-clock.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"use strict";

var JSDOM = require("jsdom").JSDOM;
var DOMParser = new JSDOM().window.DOMParser;
var referee = require("@sinonjs/referee");
var setupDOM = require("jsdom-global");
var sinon = require("sinon");
Expand All @@ -11,20 +10,30 @@ var sinonFakeServer = require("./index");

var lolex = require("lolex");
var FakeXMLHttpRequest = require("../fake-xhr").FakeXMLHttpRequest;

var JSDOMParser;
if (JSDOM) {
JSDOMParser = new JSDOM().window.DOMParser;
}

var assert = referee.assert;
var refute = referee.refute;

var globalSetTimeout = setTimeout;

describe("fakeServerWithClock", function () {
beforeEach(function () {
global.DOMParser = DOMParser;
this.cleanupDOM = setupDOM();
if (JSDOMParser) {
global.DOMParser = JSDOMParser;
this.cleanupDOM = setupDOM();
}
});

afterEach(function () {
delete global.DOMParser;
this.cleanupDOM();
if (JSDOMParser) {
delete global.DOMParser;
this.cleanupDOM();
}
});

describe("without pre-existing fake clock", function () {
Expand Down
18 changes: 13 additions & 5 deletions lib/fake-server/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,35 @@ var JSDOM = require("jsdom").JSDOM;
var sinon = require("sinon");
var sinonFakeServer = require("./index");
var fakeXhr = require("../fake-xhr/");
var DOMParser = new JSDOM().window.DOMParser;
var FakeXMLHttpRequest = fakeXhr.FakeXMLHttpRequest;

var JSDOMParser;
if (JSDOM) {
JSDOMParser = new JSDOM().window.DOMParser;
}

var assert = referee.assert;
var refute = referee.refute;

var supportsArrayBuffer = typeof ArrayBuffer !== "undefined";

describe("sinonFakeServer", function () {
beforeEach(function () {
global.DOMParser = DOMParser;
this.cleanupDOM = setupDOM();
if (JSDOMParser) {
global.DOMParser = JSDOMParser;
this.cleanupDOM = setupDOM();
}
});

afterEach(function () {
if (this.server) {
this.server.restore();
}

delete global.DOMParser;
this.cleanupDOM();
if (JSDOMParser) {
delete global.DOMParser;
this.cleanupDOM();
}
});

it("provides restore method", function () {
Expand Down
11 changes: 8 additions & 3 deletions lib/fake-xhr/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
"use strict";

var TextEncoder = require("@sinonjs/text-encoding").TextEncoder;
var GlobalTextEncoder = typeof TextEncoder !== "undefined"
? TextEncoder
: require("@sinonjs/text-encoding").TextEncoder;

var configureLogError = require("../configure-logger");
var sinonEvent = require("../event");
Expand Down Expand Up @@ -119,7 +121,7 @@ function convertToArrayBuffer(body, encoding) {
return body;
}

return new TextEncoder(encoding || "utf-8").encode(body).buffer;
return new GlobalTextEncoder(encoding || "utf-8").encode(body).buffer;
}

function isXmlContentType(contentType) {
Expand Down Expand Up @@ -777,4 +779,7 @@ function fakeXMLHttpRequestFor(globalScope) {
};
}

module.exports = extend(fakeXMLHttpRequestFor(global), { fakeXMLHttpRequestFor: fakeXMLHttpRequestFor });
var globalObject = typeof global !== "undefined" ? global : window;
module.exports = extend(fakeXMLHttpRequestFor(globalObject), {
fakeXMLHttpRequestFor: fakeXMLHttpRequestFor
});
43 changes: 29 additions & 14 deletions lib/fake-xhr/index.test.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/*global ActiveXObject*/
"use strict";

var referee = require("@sinonjs/referee");
Expand All @@ -9,12 +10,15 @@ var sinon = require("sinon");
var extend = require("just-extend");
var JSDOM = require("jsdom").JSDOM;

var TextEncoder = global.TextEncoder || require("@sinonjs/text-encoding").TextEncoder;
var DOMParser = new JSDOM().window.DOMParser;
var GlobalTextEncoder = typeof TextEncoder !== "undefined"
? TextEncoder
: require("@sinonjs/text-encoding").TextEncoder;
var assert = referee.assert;
var refute = referee.refute;

var globalActiveXObject = global.ActiveXObject;
var globalActiveXObject = typeof ActiveXObject !== "undefined"
? ActiveXObject
: undefined;

var supportsFormData = typeof FormData !== "undefined";
var supportsArrayBuffer = typeof ArrayBuffer !== "undefined";
Expand All @@ -25,7 +29,12 @@ var setupDOM = require("jsdom-global");
var globalXMLHttpRequest,
sinonFakeXhr,
FakeXMLHttpRequest,
fakeXhr;
fakeXhr,
JSDOMParser;

if (JSDOM) {
JSDOMParser = new JSDOM().window.DOMParser;
}

function fakeXhrSetUp() {
fakeXhr = sinonFakeXhr.useFakeXMLHttpRequest();
Expand Down Expand Up @@ -243,16 +252,20 @@ function loadModule() {

describe("FakeXMLHttpRequest", function () {
beforeEach(function () {
global.DOMParser = DOMParser;
this.cleanupDOM = setupDOM();
if (JSDOMParser) {
global.DOMParser = JSDOMParser;
this.cleanupDOM = setupDOM();
}
globalXMLHttpRequest = global.XMLHttpRequest;
loadModule();
});

afterEach(function () {
delete global.DOMParser;
delete FakeXMLHttpRequest.onCreate;
this.cleanupDOM();
if (JSDOMParser) {
delete global.DOMParser;
this.cleanupDOM();
}
});

it("is constructor", function () {
Expand Down Expand Up @@ -1582,7 +1595,7 @@ describe("FakeXMLHttpRequest", function () {

this.xhr.respond(200, { "Content-Type": "application/octet-stream" }, "a test buffer");

var expected = new TextEncoder("utf-8").encode("a test buffer").buffer;
var expected = new GlobalTextEncoder("utf-8").encode("a test buffer").buffer;
assertArrayBufferMatches(this.xhr.response, expected);
});

Expand All @@ -1593,7 +1606,7 @@ describe("FakeXMLHttpRequest", function () {

this.xhr.respond(200, { "Content-Type": "application/octet-stream" }, "\xFF");

var expectedBuffer = new TextEncoder("utf-8").encode("\xFF").buffer;
var expectedBuffer = new GlobalTextEncoder("utf-8").encode("\xFF").buffer;

assertArrayBufferMatches(this.xhr.response, expectedBuffer);
});
Expand Down Expand Up @@ -2561,11 +2574,13 @@ describe("FakeXMLHttpRequest", function () {
var win;

beforeEach(function () {
win = new JSDOM().window;
win.DOMParser = DOMParser;

if (JSDOM) {
win = new JSDOM().window;
win.DOMParser = JSDOMParser;
} else {
win = window;
}
var scopedSinonFakeXhr = sinonFakeXhr.fakeXMLHttpRequestFor(win);

globalXMLHttpRequest = win.XMLHttpRequest;
fakeXhr = scopedSinonFakeXhr.useFakeXMLHttpRequest();
FakeXMLHttpRequest = scopedSinonFakeXhr.FakeXMLHttpRequest;
Expand Down
66 changes: 31 additions & 35 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1a3eedd

Please sign in to comment.