rm monkey patch warnings
This commit is contained in:
@@ -51,7 +51,6 @@ var getJasmineRequireObj = (function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
jRequire.base(j$, globalThis);
|
jRequire.base(j$, globalThis);
|
||||||
j$.private.deprecateMonkeyPatching = jRequire.deprecateMonkeyPatching(j$);
|
|
||||||
j$.private.util = jRequire.util(j$);
|
j$.private.util = jRequire.util(j$);
|
||||||
j$.private.errors = jRequire.errors();
|
j$.private.errors = jRequire.errors();
|
||||||
j$.private.formatErrorMsg = jRequire.formatErrorMsg(j$);
|
j$.private.formatErrorMsg = jRequire.formatErrorMsg(j$);
|
||||||
@@ -127,20 +126,6 @@ var getJasmineRequireObj = (function() {
|
|||||||
j$.private.loadedAsBrowserEsm =
|
j$.private.loadedAsBrowserEsm =
|
||||||
globalThis.document && !globalThis.document.currentScript;
|
globalThis.document && !globalThis.document.currentScript;
|
||||||
|
|
||||||
j$.private.deprecateMonkeyPatching(j$, [
|
|
||||||
// These are meant to be set by users.
|
|
||||||
'DEFAULT_TIMEOUT_INTERVAL',
|
|
||||||
'MAX_PRETTY_PRINT_ARRAY_LENGTH',
|
|
||||||
'MAX_PRETTY_PRINT_CHARS',
|
|
||||||
'MAX_PRETTY_PRINT_DEPTH',
|
|
||||||
|
|
||||||
// These are part of the deprecation warning mechanism. To avoid infinite
|
|
||||||
// recursion, they're separately protected in a way that doesn't emit
|
|
||||||
// deprecation warnings.
|
|
||||||
'private',
|
|
||||||
'getEnv'
|
|
||||||
]);
|
|
||||||
|
|
||||||
return j$;
|
return j$;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2077,8 +2062,6 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
this.cleanup_ = function() {
|
this.cleanup_ = function() {
|
||||||
uninstallGlobalErrors();
|
uninstallGlobalErrors();
|
||||||
};
|
};
|
||||||
|
|
||||||
j$.private.deprecateMonkeyPatching(this, ['deprecated']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function indirectCallerFilename(depth) {
|
function indirectCallerFilename(depth) {
|
||||||
@@ -3147,8 +3130,6 @@ callbacks to execute _before_ running the next one.
|
|||||||
setInterval[IsMockClockTimingFn] = true;
|
setInterval[IsMockClockTimingFn] = true;
|
||||||
clearInterval[IsMockClockTimingFn] = true;
|
clearInterval[IsMockClockTimingFn] = true;
|
||||||
|
|
||||||
j$.private.deprecateMonkeyPatching(this);
|
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
// Advances the Clock's time until the mode changes.
|
// Advances the Clock's time until the mode changes.
|
||||||
@@ -3857,29 +3838,6 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
|||||||
return DelayedFunctionScheduler;
|
return DelayedFunctionScheduler;
|
||||||
};
|
};
|
||||||
|
|
||||||
getJasmineRequireObj().deprecateMonkeyPatching = function(j$) {
|
|
||||||
return function deprecateMonkeyPatching(obj, keysToSkip) {
|
|
||||||
for (const key of Object.keys(obj)) {
|
|
||||||
if (!keysToSkip?.includes(key)) {
|
|
||||||
let value = obj[key];
|
|
||||||
|
|
||||||
Object.defineProperty(obj, key, {
|
|
||||||
enumerable: key in obj,
|
|
||||||
get() {
|
|
||||||
return value;
|
|
||||||
},
|
|
||||||
set(newValue) {
|
|
||||||
j$.getEnv().deprecated(
|
|
||||||
'Monkey patching detected. This is not supported and will break in a future jasmine-core release.'
|
|
||||||
);
|
|
||||||
value = newValue;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
getJasmineRequireObj().Deprecator = function(j$) {
|
getJasmineRequireObj().Deprecator = function(j$) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
@@ -9424,7 +9382,6 @@ getJasmineRequireObj().interface = function(jasmine, env) {
|
|||||||
*/
|
*/
|
||||||
jasmine: jasmine
|
jasmine: jasmine
|
||||||
};
|
};
|
||||||
const existingKeys = Object.keys(jasmine);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a custom equality tester for the current scope of specs.
|
* Add a custom equality tester for the current scope of specs.
|
||||||
@@ -9591,8 +9548,6 @@ getJasmineRequireObj().interface = function(jasmine, env) {
|
|||||||
* @namespace asymmetricEqualityTesters
|
* @namespace asymmetricEqualityTesters
|
||||||
*/
|
*/
|
||||||
|
|
||||||
jasmine.private.deprecateMonkeyPatching(jasmine, existingKeys);
|
|
||||||
|
|
||||||
return jasmineInterface;
|
return jasmineInterface;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1247,25 +1247,4 @@ describe('Clock (acceptance)', function() {
|
|||||||
|
|
||||||
clock.tick(400);
|
clock.tick(400);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Warning about monkey patching', function() {
|
|
||||||
for (const name of ['tick', 'mockDate', 'install', 'uninstall']) {
|
|
||||||
it(`warns if Clock#${name} is monkey patched`, function() {
|
|
||||||
spyOn(console, 'error');
|
|
||||||
const clock = new privateUnderTest.Clock({}, function() {}, {});
|
|
||||||
const patch = {};
|
|
||||||
clock[name] = patch;
|
|
||||||
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
expect(console.error).toHaveBeenCalledOnceWith(
|
|
||||||
jasmine.stringContaining('DEPRECATION: Monkey patching detected.')
|
|
||||||
);
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
expect(console.error).toHaveBeenCalledOnceWith(
|
|
||||||
jasmine.stringContaining('ClockSpec.js')
|
|
||||||
);
|
|
||||||
expect(clock[name]).toBe(patch);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -874,44 +874,4 @@ describe('Env', function() {
|
|||||||
}).toThrowError('Jasmine cannot be configured via Env in parallel mode');
|
}).toThrowError('Jasmine cannot be configured via Env in parallel mode');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Warning about monkey patching', function() {
|
|
||||||
afterEach(function() {
|
|
||||||
// deprecateMonkeyPatching() uses jasmine.getEnv(), not the env from
|
|
||||||
// this suite. Clean it up so we don't leak event listeners.
|
|
||||||
jasmineUnderTest.getEnv().cleanup_();
|
|
||||||
privateUnderTest.currentEnv_ = null;
|
|
||||||
});
|
|
||||||
|
|
||||||
const names = [
|
|
||||||
'describe',
|
|
||||||
'xdescribe',
|
|
||||||
'fdescribe',
|
|
||||||
'it',
|
|
||||||
'xit',
|
|
||||||
'fit',
|
|
||||||
'beforeEach',
|
|
||||||
'afterEach',
|
|
||||||
'beforeAll',
|
|
||||||
'afterAll'
|
|
||||||
];
|
|
||||||
|
|
||||||
for (const name of names) {
|
|
||||||
it(`warns if Env#${name} is monkey patched`, function() {
|
|
||||||
spyOn(console, 'error');
|
|
||||||
const patch = {};
|
|
||||||
env[name] = patch;
|
|
||||||
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
expect(console.error).toHaveBeenCalledOnceWith(
|
|
||||||
jasmine.stringContaining('DEPRECATION: Monkey patching detected.')
|
|
||||||
);
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
expect(console.error).toHaveBeenCalledOnceWith(
|
|
||||||
jasmine.stringContaining('EnvSpec.js')
|
|
||||||
);
|
|
||||||
expect(env[name]).toBe(patch);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -13,72 +13,7 @@ describe('The jasmine namespace', function() {
|
|||||||
expect(setDifference(actualKeys, expectedKeys())).toEqual(new Set());
|
expect(setDifference(actualKeys, expectedKeys())).toEqual(new Set());
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Warning about monkey patching', function() {
|
function expectedKeys() {
|
||||||
beforeEach(function() {
|
|
||||||
spyOn(console, 'error');
|
|
||||||
});
|
|
||||||
|
|
||||||
for (const key of expectedKeys(false)) {
|
|
||||||
if (!key.startsWith('MAX_') && key !== 'private' && key !== 'getEnv') {
|
|
||||||
describe(`jasmine.${key}`, function() {
|
|
||||||
let orig;
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
orig = jasmineUnderTest[key];
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(function() {
|
|
||||||
jasmineUnderTest[key] = orig;
|
|
||||||
});
|
|
||||||
|
|
||||||
it('warns if monkey patched', function() {
|
|
||||||
const patch = {};
|
|
||||||
jasmineUnderTest[key] = patch;
|
|
||||||
|
|
||||||
verifyDeprecation();
|
|
||||||
expect(jasmineUnderTest[key]).toBe(patch);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// These specs rely on jasmineRequire being exposed. That only happens
|
|
||||||
// in browsers.
|
|
||||||
if (typeof document !== 'undefined') {
|
|
||||||
const statics = ['addMatchers', 'clock', 'createSpyObj'];
|
|
||||||
|
|
||||||
for (const name of statics) {
|
|
||||||
describe(`jasmine.${name}`, function() {
|
|
||||||
let bootedCore, env, orig;
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
bootedCore = jasmineRequire.core(jasmineRequire);
|
|
||||||
env = bootedCore.getEnv();
|
|
||||||
jasmineRequire.interface(bootedCore, env);
|
|
||||||
orig = bootedCore[name];
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(function() {
|
|
||||||
bootedCore[name] = orig;
|
|
||||||
env.cleanup_();
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`warns if jasmine.${name} is monkey patched`, function() {
|
|
||||||
const patch = {};
|
|
||||||
bootedCore[name] = patch;
|
|
||||||
|
|
||||||
verifyDeprecation();
|
|
||||||
expect(bootedCore[name]).toBe(patch);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function expectedKeys(includeHtml) {
|
|
||||||
if (includeHtml === undefined) {
|
|
||||||
includeHtml = typeof window !== 'undefined';
|
|
||||||
}
|
|
||||||
// Does not include properties added by requireInterface(), since that isn't
|
// Does not include properties added by requireInterface(), since that isn't
|
||||||
// called by defineJasmineUnderTest.js/nodeDefineJasmineUnderTest.js.
|
// called by defineJasmineUnderTest.js/nodeDefineJasmineUnderTest.js.
|
||||||
const result = new Set([
|
const result = new Set([
|
||||||
@@ -116,7 +51,7 @@ describe('The jasmine namespace', function() {
|
|||||||
'getGlobal'
|
'getGlobal'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (includeHtml) {
|
if (typeof window !== 'undefined') {
|
||||||
// jasmine-html.js
|
// jasmine-html.js
|
||||||
result.add('HtmlReporterV2');
|
result.add('HtmlReporterV2');
|
||||||
result.add('HtmlReporterV2Urls');
|
result.add('HtmlReporterV2Urls');
|
||||||
@@ -139,15 +74,4 @@ describe('The jasmine namespace', function() {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function verifyDeprecation() {
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
expect(console.error).toHaveBeenCalledOnceWith(
|
|
||||||
jasmine.stringContaining('DEPRECATION: Monkey patching detected.')
|
|
||||||
);
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
expect(console.error).toHaveBeenCalledOnceWith(
|
|
||||||
jasmine.stringContaining('jasmineNamespaceSpec.js')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -192,8 +192,6 @@ callbacks to execute _before_ running the next one.
|
|||||||
setInterval[IsMockClockTimingFn] = true;
|
setInterval[IsMockClockTimingFn] = true;
|
||||||
clearInterval[IsMockClockTimingFn] = true;
|
clearInterval[IsMockClockTimingFn] = true;
|
||||||
|
|
||||||
j$.private.deprecateMonkeyPatching(this);
|
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
// Advances the Clock's time until the mode changes.
|
// Advances the Clock's time until the mode changes.
|
||||||
|
|||||||
@@ -835,8 +835,6 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
this.cleanup_ = function() {
|
this.cleanup_ = function() {
|
||||||
uninstallGlobalErrors();
|
uninstallGlobalErrors();
|
||||||
};
|
};
|
||||||
|
|
||||||
j$.private.deprecateMonkeyPatching(this, ['deprecated']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function indirectCallerFilename(depth) {
|
function indirectCallerFilename(depth) {
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
getJasmineRequireObj().deprecateMonkeyPatching = function(j$) {
|
|
||||||
return function deprecateMonkeyPatching(obj, keysToSkip) {
|
|
||||||
for (const key of Object.keys(obj)) {
|
|
||||||
if (!keysToSkip?.includes(key)) {
|
|
||||||
let value = obj[key];
|
|
||||||
|
|
||||||
Object.defineProperty(obj, key, {
|
|
||||||
enumerable: key in obj,
|
|
||||||
get() {
|
|
||||||
return value;
|
|
||||||
},
|
|
||||||
set(newValue) {
|
|
||||||
j$.getEnv().deprecated(
|
|
||||||
'Monkey patching detected. This is not supported and will break in a future jasmine-core release.'
|
|
||||||
);
|
|
||||||
value = newValue;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -27,7 +27,6 @@ var getJasmineRequireObj = (function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
jRequire.base(j$, globalThis);
|
jRequire.base(j$, globalThis);
|
||||||
j$.private.deprecateMonkeyPatching = jRequire.deprecateMonkeyPatching(j$);
|
|
||||||
j$.private.util = jRequire.util(j$);
|
j$.private.util = jRequire.util(j$);
|
||||||
j$.private.errors = jRequire.errors();
|
j$.private.errors = jRequire.errors();
|
||||||
j$.private.formatErrorMsg = jRequire.formatErrorMsg(j$);
|
j$.private.formatErrorMsg = jRequire.formatErrorMsg(j$);
|
||||||
@@ -103,20 +102,6 @@ var getJasmineRequireObj = (function() {
|
|||||||
j$.private.loadedAsBrowserEsm =
|
j$.private.loadedAsBrowserEsm =
|
||||||
globalThis.document && !globalThis.document.currentScript;
|
globalThis.document && !globalThis.document.currentScript;
|
||||||
|
|
||||||
j$.private.deprecateMonkeyPatching(j$, [
|
|
||||||
// These are meant to be set by users.
|
|
||||||
'DEFAULT_TIMEOUT_INTERVAL',
|
|
||||||
'MAX_PRETTY_PRINT_ARRAY_LENGTH',
|
|
||||||
'MAX_PRETTY_PRINT_CHARS',
|
|
||||||
'MAX_PRETTY_PRINT_DEPTH',
|
|
||||||
|
|
||||||
// These are part of the deprecation warning mechanism. To avoid infinite
|
|
||||||
// recursion, they're separately protected in a way that doesn't emit
|
|
||||||
// deprecation warnings.
|
|
||||||
'private',
|
|
||||||
'getEnv'
|
|
||||||
]);
|
|
||||||
|
|
||||||
return j$;
|
return j$;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -369,7 +369,6 @@ getJasmineRequireObj().interface = function(jasmine, env) {
|
|||||||
*/
|
*/
|
||||||
jasmine: jasmine
|
jasmine: jasmine
|
||||||
};
|
};
|
||||||
const existingKeys = Object.keys(jasmine);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a custom equality tester for the current scope of specs.
|
* Add a custom equality tester for the current scope of specs.
|
||||||
@@ -536,7 +535,5 @@ getJasmineRequireObj().interface = function(jasmine, env) {
|
|||||||
* @namespace asymmetricEqualityTesters
|
* @namespace asymmetricEqualityTesters
|
||||||
*/
|
*/
|
||||||
|
|
||||||
jasmine.private.deprecateMonkeyPatching(jasmine, existingKeys);
|
|
||||||
|
|
||||||
return jasmineInterface;
|
return jasmineInterface;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user