Validate that setSuiteProperty and setSpecProperty args are cloneable

This commit is contained in:
Steve Gravrock
2025-09-21 15:08:53 -07:00
parent 970cbdc69c
commit 7214ccd3dc
6 changed files with 74 additions and 2 deletions

View File

@@ -102,6 +102,26 @@ describe('Spec', function() {
b: 'original-value'
});
});
it('throws if the key is not structured-cloneable', function() {
const spec = new jasmineUnderTest.Spec({
queueableFn: { fn: () => {} }
});
expect(function() {
spec.setSpecProperty(new Promise(() => {}), '');
}).toThrowError("Key can't be cloned");
});
it('throws if the value is not structured-cloneable', function() {
const spec = new jasmineUnderTest.Spec({
queueableFn: { fn: () => {} }
});
expect(function() {
spec.setSpecProperty('k', new Promise(() => {}));
}).toThrowError("Value can't be cloned");
});
});
describe('status', function() {

View File

@@ -405,4 +405,22 @@ describe('Suite', function() {
expect(subject.hasChildWithDescription('a spec')).toBeFalse();
});
});
describe('#setSuiteProperty', function() {
it('throws if the key is not structured-cloneable', function() {
const suite = new jasmineUnderTest.Suite({});
expect(function() {
suite.setSuiteProperty(new Promise(() => {}), '');
}).toThrowError("Key can't be cloned");
});
it('throws if the value is not structured-cloneable', function() {
const suite = new jasmineUnderTest.Suite({});
expect(function() {
suite.setSuiteProperty('k', new Promise(() => {}));
}).toThrowError("Value can't be cloned");
});
});
});