Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ugrade lolex to v5 and don't detect globals #108

Merged
merged 1 commit into from
Oct 14, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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.