add prettier and eslint

This commit is contained in:
Gregg Van Hove
2019-05-21 17:44:38 -07:00
parent cf2c5c9acc
commit b4cbe9850f
90 changed files with 6345 additions and 3647 deletions

View File

@@ -1,33 +1,35 @@
describe("SpyRegistry", function() {
describe('SpyRegistry', function() {
function createSpy(name, originalFn) {
return jasmineUnderTest.Spy(name, originalFn);
}
describe("#spyOn", function() {
it("checks for the existence of the object", function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: createSpy});
describe('#spyOn', function() {
it('checks for the existence of the object', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: createSpy
});
expect(function() {
spyRegistry.spyOn(void 0, 'pants');
}).toThrowError(/could not find an object/);
});
it("checks that a method name was passed", function() {
it('checks that a method name was passed', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry(),
subject = {};
expect(function() {
spyRegistry.spyOn(subject);
}).toThrowError(/No method name supplied/);
expect(function() {
spyRegistry.spyOn(subject);
}).toThrowError(/No method name supplied/);
});
it("checks that the object is not `null`", function() {
it('checks that the object is not `null`', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry();
expect(function() {
spyRegistry.spyOn(null, 'pants');
}).toThrowError(/could not find an object/);
});
it("checks that the method name is not `null`", function() {
it('checks that the method name is not `null`', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry(),
subject = {};
@@ -36,7 +38,7 @@ describe("SpyRegistry", function() {
}).toThrowError(/No method name supplied/);
});
it("checks for the existence of the method", function() {
it('checks for the existence of the method', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry(),
subject = {};
@@ -45,10 +47,12 @@ describe("SpyRegistry", function() {
}).toThrowError(/method does not exist/);
});
it("checks if it has already been spied upon", function() {
it('checks if it has already been spied upon', function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
currentSpies: function() {
return spies;
},
createSpy: createSpy
}),
subject = { spiedFunc: function() {} };
@@ -60,7 +64,7 @@ describe("SpyRegistry", function() {
}).toThrowError(/has already been spied upon/);
});
it("checks if it can be spied upon", function() {
it('checks if it can be spied upon', function() {
var scope = {};
function myFunc() {
@@ -74,7 +78,11 @@ describe("SpyRegistry", function() {
});
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({currentSpies: function() { return spies; }}),
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() {
return spies;
}
}),
subject = { spiedFunc: scope.myFunc };
expect(function() {
@@ -86,35 +94,43 @@ describe("SpyRegistry", function() {
}).not.toThrowError(/is not declared writable or has no setter/);
});
it("overrides the method on the object and returns the spy", function() {
it('overrides the method on the object and returns the spy', function() {
var originalFunctionWasCalled = false,
spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: createSpy}),
subject = { spiedFunc: function() { originalFunctionWasCalled = true; } };
spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: createSpy
}),
subject = {
spiedFunc: function() {
originalFunctionWasCalled = true;
}
};
var spy = spyRegistry.spyOn(subject, 'spiedFunc');
expect(subject.spiedFunc).toEqual(spy);
subject.spiedFunc();
expect(originalFunctionWasCalled).toBe(false);
});
});
describe("#spyOnProperty", function() {
it("checks for the existence of the object", function() {
describe('#spyOnProperty', function() {
it('checks for the existence of the object', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry();
expect(function() {
spyRegistry.spyOnProperty(void 0, 'pants');
}).toThrowError(/could not find an object/);
});
it("checks that a property name was passed", function() {
it('checks that a property name was passed', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry(),
subject = {};
expect(function() {
spyRegistry.spyOnProperty(subject);
}).toThrowError(/No property name supplied/);
expect(function() {
spyRegistry.spyOnProperty(subject);
}).toThrowError(/No property name supplied/);
});
it("checks for the existence of the method", function() {
it('checks for the existence of the method', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry(),
subject = {};
@@ -123,12 +139,14 @@ describe("SpyRegistry", function() {
}).toThrowError(/property does not exist/);
});
it("checks for the existence of access type", function() {
it('checks for the existence of access type', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry(),
subject = {};
Object.defineProperty(subject, 'pants', {
get: function() { return 1; },
get: function() {
return 1;
},
configurable: true
});
@@ -137,7 +155,7 @@ describe("SpyRegistry", function() {
}).toThrowError(/does not have access type/);
});
it("checks if it can be spied upon", function() {
it('checks if it can be spied upon', function() {
var subject = {};
Object.defineProperty(subject, 'myProp', {
@@ -160,50 +178,64 @@ describe("SpyRegistry", function() {
}).not.toThrowError(/is not declared configurable/);
});
it("overrides the property getter on the object and returns the spy", function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: createSpy}),
it('overrides the property getter on the object and returns the spy', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: createSpy
}),
subject = {},
returnValue = 1;
Object.defineProperty(subject, 'spiedProperty', {
get: function() { return returnValue; },
get: function() {
return returnValue;
},
configurable: true
});
expect(subject.spiedProperty).toEqual(returnValue);
var spy = spyRegistry.spyOnProperty(subject, 'spiedProperty');
var getter = Object.getOwnPropertyDescriptor(subject, 'spiedProperty').get;
var getter = Object.getOwnPropertyDescriptor(subject, 'spiedProperty')
.get;
expect(getter).toEqual(spy);
expect(subject.spiedProperty).toBeUndefined();
});
it("overrides the property setter on the object and returns the spy", function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: createSpy}),
it('overrides the property setter on the object and returns the spy', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: createSpy
}),
subject = {},
returnValue = 1;
Object.defineProperty(subject, 'spiedProperty', {
get: function() { return returnValue; },
get: function() {
return returnValue;
},
set: function() {},
configurable: true
});
var spy = spyRegistry.spyOnProperty(subject, 'spiedProperty', 'set');
var setter = Object.getOwnPropertyDescriptor(subject, 'spiedProperty').set;
var setter = Object.getOwnPropertyDescriptor(subject, 'spiedProperty')
.set;
expect(subject.spiedProperty).toEqual(returnValue);
expect(setter).toEqual(spy);
});
describe("when the property is already spied upon", function() {
it("throws an error if respy is not allowed", function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: createSpy}),
describe('when the property is already spied upon', function() {
it('throws an error if respy is not allowed', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: createSpy
}),
subject = {};
Object.defineProperty(subject, 'spiedProp', {
get: function() { return 1; },
get: function() {
return 1;
},
configurable: true
});
@@ -214,37 +246,49 @@ describe("SpyRegistry", function() {
}).toThrowError(/spiedProp#get has already been spied upon/);
});
it("returns the original spy if respy is allowed", function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: createSpy}),
it('returns the original spy if respy is allowed', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: createSpy
}),
subject = {};
spyRegistry.allowRespy(true);
Object.defineProperty(subject, 'spiedProp', {
get: function() { return 1; },
get: function() {
return 1;
},
configurable: true
});
var originalSpy = spyRegistry.spyOnProperty(subject, 'spiedProp');
expect(spyRegistry.spyOnProperty(subject, 'spiedProp')).toBe(originalSpy);
expect(spyRegistry.spyOnProperty(subject, 'spiedProp')).toBe(
originalSpy
);
});
});
});
describe("#spyOnAllFunctions", function() {
it("checks for the existence of the object", function() {
describe('#spyOnAllFunctions', function() {
it('checks for the existence of the object', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry();
expect(function() {
spyRegistry.spyOnAllFunctions(void 0);
}).toThrowError(/spyOnAllFunctions could not find an object to spy upon/);
});
it("overrides all writable and configurable functions of the object and its parents", function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: function() {
return 'I am a spy';
}});
var createNoop = function() { return function() { /**/}; };
it('overrides all writable and configurable functions of the object and its parents', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: function() {
return 'I am a spy';
}
});
var createNoop = function() {
return function() {
/**/
};
};
var noop1 = createNoop();
var noop2 = createNoop();
var noop3 = createNoop();
@@ -270,7 +314,7 @@ describe("SpyRegistry", function() {
var _spied3 = noop3;
Object.defineProperty(subject, 'spied3', {
configurable: true,
set: function (val) {
set: function(val) {
_spied3 = val;
},
get: function() {
@@ -293,7 +337,9 @@ describe("SpyRegistry", function() {
});
Object.defineProperty(subject, 'notSpied4', {
configurable: false,
set: function(val) { /**/ },
set: function(val) {
/**/
},
get: function() {
return noop4;
},
@@ -322,13 +368,15 @@ describe("SpyRegistry", function() {
expect(spiedObject).toBe(subject);
});
it("overrides prototype methods on the object", function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: function() {
return 'I am a spy';
}});
it('overrides prototype methods on the object', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: function() {
return 'I am a spy';
}
});
var noop1 = function() { };
var noop2 = function() { };
var noop1 = function() {};
var noop2 = function() {};
var MyClass = function() {
this.spied1 = noop1;
@@ -343,12 +391,14 @@ describe("SpyRegistry", function() {
expect(MyClass.prototype.spied2).toBe(noop2);
});
it("does not override non-enumerable properties (like Object.prototype methods)", function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({createSpy: function() {
return 'I am a spy';
}});
it('does not override non-enumerable properties (like Object.prototype methods)', function() {
var spyRegistry = new jasmineUnderTest.SpyRegistry({
createSpy: function() {
return 'I am a spy';
}
});
var subject = {
spied1: function() { }
spied1: function() {}
};
spyRegistry.spyOnAllFunctions(subject);
@@ -359,11 +409,13 @@ describe("SpyRegistry", function() {
});
});
describe("#clearSpies", function() {
it("restores the original functions on the spied-upon objects", function() {
describe('#clearSpies', function() {
it('restores the original functions on the spied-upon objects', function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
currentSpies: function() {
return spies;
},
createSpy: createSpy
}),
originalFunction = function() {},
@@ -375,10 +427,12 @@ describe("SpyRegistry", function() {
expect(subject.spiedFunc).toBe(originalFunction);
});
it("restores the original functions, even when that spy has been replace and re-spied upon", function() {
it('restores the original functions, even when that spy has been replace and re-spied upon', function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
currentSpies: function() {
return spies;
},
createSpy: createSpy
}),
originalFunction = function() {},
@@ -400,11 +454,13 @@ describe("SpyRegistry", function() {
it("does not add a property that the spied-upon object didn't originally have", function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
currentSpies: function() {
return spies;
},
createSpy: createSpy
}),
originalFunction = function() {},
subjectParent = {spiedFunc: originalFunction};
subjectParent = { spiedFunc: originalFunction };
var subject = Object.create(subjectParent);
@@ -417,14 +473,16 @@ describe("SpyRegistry", function() {
expect(subject.spiedFunc).toBe(originalFunction);
});
it("restores the original function when it\'s inherited and cannot be deleted", function() {
it("restores the original function when it's inherited and cannot be deleted", function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
currentSpies: function() {
return spies;
},
createSpy: createSpy
}),
originalFunction = function() {},
subjectParent = {spiedFunc: originalFunction};
subjectParent = { spiedFunc: originalFunction };
var subject = Object.create(subjectParent);
@@ -440,15 +498,16 @@ describe("SpyRegistry", function() {
expect(jasmineUnderTest.isSpy(subject.spiedFunc)).toBe(false);
});
it("restores window.onerror by overwriting, not deleting", function() {
function FakeWindow() {
}
it('restores window.onerror by overwriting, not deleting', function() {
function FakeWindow() {}
FakeWindow.prototype.onerror = function() {};
var spies = [],
global = new FakeWindow(),
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
currentSpies: function() {
return spies;
},
createSpy: createSpy,
global: global
});
@@ -460,50 +519,58 @@ describe("SpyRegistry", function() {
});
});
describe('spying on properties', function() {
it("restores the original properties on the spied-upon objects", function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
createSpy: createSpy
}),
originalReturn = 1,
subject = {};
describe('spying on properties', function() {
it('restores the original properties on the spied-upon objects', function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() {
return spies;
},
createSpy: createSpy
}),
originalReturn = 1,
subject = {};
Object.defineProperty(subject, 'spiedProp', {
get: function() { return originalReturn; },
configurable: true
});
spyRegistry.spyOnProperty(subject, 'spiedProp');
spyRegistry.clearSpies();
expect(subject.spiedProp).toBe(originalReturn);
Object.defineProperty(subject, 'spiedProp', {
get: function() {
return originalReturn;
},
configurable: true
});
it("does not add a property that the spied-upon object didn't originally have", function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
createSpy: createSpy
}),
originalReturn = 1,
subjectParent = {};
spyRegistry.spyOnProperty(subject, 'spiedProp');
spyRegistry.clearSpies();
Object.defineProperty(subjectParent, 'spiedProp', {
get: function() { return originalReturn; },
configurable: true
});
var subject = Object.create(subjectParent);
expect(subject.hasOwnProperty('spiedProp')).toBe(false);
spyRegistry.spyOnProperty(subject, 'spiedProp');
spyRegistry.clearSpies();
expect(subject.hasOwnProperty('spiedProp')).toBe(false);
expect(subject.spiedProp).toBe(originalReturn);
});
expect(subject.spiedProp).toBe(originalReturn);
});
it("does not add a property that the spied-upon object didn't originally have", function() {
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() {
return spies;
},
createSpy: createSpy
}),
originalReturn = 1,
subjectParent = {};
Object.defineProperty(subjectParent, 'spiedProp', {
get: function() {
return originalReturn;
},
configurable: true
});
var subject = Object.create(subjectParent);
expect(subject.hasOwnProperty('spiedProp')).toBe(false);
spyRegistry.spyOnProperty(subject, 'spiedProp');
spyRegistry.clearSpies();
expect(subject.hasOwnProperty('spiedProp')).toBe(false);
expect(subject.spiedProp).toBe(originalReturn);
});
});
});