80 lines
2.2 KiB
JavaScript
80 lines
2.2 KiB
JavaScript
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
|
|
'allOf',
|
|
'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('HtmlReporterV2');
|
|
result.add('HtmlReporterV2Urls');
|
|
result.add('HtmlSpecFilter');
|
|
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;
|
|
}
|
|
});
|