Skip to content

Commit

Permalink
Coerce the random string to a seed before sending it to reporters
Browse files Browse the repository at this point in the history
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
  • Loading branch information
sgravrock committed Sep 3, 2022
1 parent c14bfe3 commit 59848ca
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lib/jasmine-core/jasmine.js
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand Down
23 changes: 23 additions & 0 deletions spec/core/integration/EnvSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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']);

Expand Down
2 changes: 1 addition & 1 deletion src/core/Runner.js
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand Down

0 comments on commit 59848ca

Please sign in to comment.