Deprecate the suppressLoadErrors option

This was intended as a 3.0 migration aid for browser users who had
dependencies that triggered errors at load time. However, it was never
documented and never supported by jasmine-brower-runner, karma, or any
other commonly used tool for runing Jasmine in the browser. There is
no evidence of it actually being used. It is, however, starting to
show up in machine-generated "tutorials".
This commit is contained in:
Steve Gravrock
2024-03-04 19:07:15 -08:00
parent 1624b07589
commit 99e350ac85
4 changed files with 42 additions and 0 deletions

View File

@@ -1654,6 +1654,14 @@ getJasmineRequireObj().Env = function(j$) {
* @return {Promise<JasmineDoneInfo>}
*/
this.execute = async function(runablesToRun) {
if (options.suppressLoadErrors) {
this.deprecated(
'The suppressLoadErrors option is deprecated and will be removed ' +
'in a future release.',
{ ignoreRunnable: true, omitStackTrace: true }
);
}
installGlobalErrors();
if (parallelLoadingState) {

View File

@@ -634,6 +634,10 @@ describe('Env', function() {
});
describe('when constructed with suppressLoadErrors: true', function() {
beforeEach(function() {
spyOn(console, 'error'); // prevent deprecation from being logged
});
it('does not install a global error handler until execute is called', function() {
const globalErrors = jasmine.createSpyObj('globalErrors', [
'install',

View File

@@ -2905,6 +2905,10 @@ describe('Env integration', function() {
});
describe('If suppressLoadErrors: true was passed', function() {
beforeEach(function() {
spyOn(console, 'error'); // prevent deprecation from being logged
});
it('does not install a global error handler during loading', async function() {
const originalOnerror = jasmine.createSpy('original onerror');
const global = {
@@ -2943,6 +2947,24 @@ describe('Env integration', function() {
expect(e.failedExpectations).toEqual([]);
expect(originalOnerror).toHaveBeenCalledWith('Uncaught Error: ENOCHEESE');
});
it('emits a deprecation warning', async function() {
env.cleanup_();
env = new jasmineUnderTest.Env({ suppressLoadErrors: true });
const reporter = jasmine.createSpyObj('reporter', [
'jasmineDone',
'suiteDone',
'specDone'
]);
env.addReporter(reporter);
await env.execute();
const e = reporter.jasmineDone.calls.argsFor(0)[0];
expect(e.deprecationWarnings[0].message).toMatch(
/^The suppressLoadErrors option is deprecated and will be removed in a future release/
);
});
});
describe('Overall status in the jasmineDone event', function() {

View File

@@ -518,6 +518,14 @@ getJasmineRequireObj().Env = function(j$) {
* @return {Promise<JasmineDoneInfo>}
*/
this.execute = async function(runablesToRun) {
if (options.suppressLoadErrors) {
this.deprecated(
'The suppressLoadErrors option is deprecated and will be removed ' +
'in a future release.',
{ ignoreRunnable: true, omitStackTrace: true }
);
}
installGlobalErrors();
if (parallelLoadingState) {