77
spec/core/jasmineNamespaceSpec.js
Normal file
77
spec/core/jasmineNamespaceSpec.js
Normal file
@@ -0,0 +1,77 @@
|
||||
describe('The jasmine namespace', function() {
|
||||
it('includes all expected properties', function() {
|
||||
const actualKeys = new Set(Object.keys(jasmineUnderTest));
|
||||
// toEqual doesn't generate diffs for set comparisons. Check this way
|
||||
// instead so we get readable failure output.
|
||||
expect(setDifference(expectedKeys(), actualKeys)).toEqual(new Set());
|
||||
});
|
||||
|
||||
it('does not include any unexpected properties', function() {
|
||||
const actualKeys = new Set(Object.keys(jasmineUnderTest));
|
||||
// toEqual doesn't generate diffs for set comparisons. Check this way
|
||||
// instead so we get readable failure output.
|
||||
expect(setDifference(actualKeys, expectedKeys())).toEqual(new Set());
|
||||
});
|
||||
|
||||
function expectedKeys() {
|
||||
// Does not include properties added by requireInterface(), since that isn't
|
||||
// called by defineJasmineUnderTest.js/nodeDefineJasmineUnderTest.js.
|
||||
const result = new Set([
|
||||
'MAX_PRETTY_PRINT_ARRAY_LENGTH',
|
||||
'MAX_PRETTY_PRINT_CHARS',
|
||||
'MAX_PRETTY_PRINT_DEPTH',
|
||||
'debugLog',
|
||||
'getEnv',
|
||||
'isSpy',
|
||||
'ParallelReportDispatcher',
|
||||
'private',
|
||||
'spyOnGlobalErrorsAsync',
|
||||
'Timer',
|
||||
'version',
|
||||
|
||||
// Asymmetric equality testers
|
||||
'any',
|
||||
'anything',
|
||||
'arrayContaining',
|
||||
'arrayWithExactContents',
|
||||
'empty',
|
||||
'falsy',
|
||||
'is',
|
||||
'mapContaining',
|
||||
'notEmpty',
|
||||
'objectContaining',
|
||||
'setContaining',
|
||||
'stringContaining',
|
||||
'stringMatching',
|
||||
'truthy',
|
||||
|
||||
// Currently undocumented but used in browser boot files, so it's
|
||||
// effectively public
|
||||
'getGlobal'
|
||||
]);
|
||||
|
||||
if (typeof window !== 'undefined') {
|
||||
// jasmine-html.js
|
||||
result.add('HtmlReporter');
|
||||
result.add('HtmlSpecFilter');
|
||||
result.add('HtmlExactSpecFilter');
|
||||
result.add('QueryString');
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// Can't use Set#difference yet because it isn't available in Node <22,
|
||||
// Firefox <108, or Safari <17.
|
||||
function setDifference(a, b) {
|
||||
const result = new Set();
|
||||
|
||||
for (const v of a) {
|
||||
if (!b.has(v)) {
|
||||
result.add(v);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user