From 59848ca1515355ba8eff63a4f263eccff99144b2 Mon Sep 17 00:00:00 2001 From: Steve Gravrock Date: Sat, 3 Sep 2022 12:36:35 -0700 Subject: [PATCH] Coerce the random string to a seed before sending it to reporters This fixes an error in HTMLReporter when the configured seed is a number rather than a string, which has been allowed since 3.8.0 --- lib/jasmine-core/jasmine.js | 2 +- spec/core/integration/EnvSpec.js | 23 +++++++++++++++++++++++ src/core/Runner.js | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index bcf2d4ca..6b60117c 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -8433,7 +8433,7 @@ getJasmineRequireObj().Runner = function(j$) { const order = new j$.Order({ random: config.random, - seed: config.seed + seed: j$.isNumber_(config.seed) ? config.seed + '' : config.seed }); const processor = new j$.TreeProcessor({ diff --git a/spec/core/integration/EnvSpec.js b/spec/core/integration/EnvSpec.js index b61322d2..f2433403 100644 --- a/spec/core/integration/EnvSpec.js +++ b/spec/core/integration/EnvSpec.js @@ -2026,6 +2026,29 @@ describe('Env integration', function() { expect(doneArg.order.seed).toEqual('123456'); }); + it('coerces the random seed to a string if it is a number', async function() { + const reporter = jasmine.createSpyObj('fakeReporter', [ + 'jasmineStarted', + 'jasmineDone', + 'suiteStarted', + 'suiteDone', + 'specStarted', + 'specDone' + ]); + env.configure({ random: true, seed: 123456 }); + + env.addReporter(reporter); + env.configure({ random: true }); + await env.execute(); + + expect(reporter.jasmineStarted).toHaveBeenCalled(); + const startedArg = reporter.jasmineStarted.calls.argsFor(0)[0]; + expect(startedArg.order.seed).toEqual('123456'); + + const doneArg = reporter.jasmineDone.calls.argsFor(0)[0]; + expect(doneArg.order.seed).toEqual('123456'); + }); + it('should report pending spec messages', async function() { const reporter = jasmine.createSpyObj('fakeReporter', ['specDone']); diff --git a/src/core/Runner.js b/src/core/Runner.js index 10df5195..0f743c7f 100644 --- a/src/core/Runner.js +++ b/src/core/Runner.js @@ -51,7 +51,7 @@ getJasmineRequireObj().Runner = function(j$) { const order = new j$.Order({ random: config.random, - seed: config.seed + seed: j$.isNumber_(config.seed) ? config.seed + '' : config.seed }); const processor = new j$.TreeProcessor({