jasmine-core 7.0.0-pre.0 → 7.0.0-pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/jasmine-core/jasmine-html.js +5 -37
- package/lib/jasmine-core/jasmine.js +209 -143
- package/lib/jasmine-core.js +5 -5
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ Microsoft Edge) as well as Node.
|
|
|
32
32
|
| Node | 20, 22, 24 |
|
|
33
33
|
| Safari | 26* |
|
|
34
34
|
| Chrome | Evergreen |
|
|
35
|
-
| Firefox | Evergreen,
|
|
35
|
+
| Firefox | Evergreen, 140 |
|
|
36
36
|
| Edge | Evergreen |
|
|
37
37
|
|
|
38
38
|
For evergreen browsers, each version of Jasmine is tested against the version of the browser that is available to us
|
|
@@ -305,11 +305,9 @@ getJasmineHtmlRequireObj().Banner = function(j$, private$) {
|
|
|
305
305
|
|
|
306
306
|
class Banner {
|
|
307
307
|
#navigateWithNewParam;
|
|
308
|
-
#omitHideDisabled;
|
|
309
308
|
|
|
310
|
-
constructor(navigateWithNewParam
|
|
309
|
+
constructor(navigateWithNewParam) {
|
|
311
310
|
this.#navigateWithNewParam = navigateWithNewParam;
|
|
312
|
-
this.#omitHideDisabled = omitHideDisabled;
|
|
313
311
|
this.rootEl = createDom(
|
|
314
312
|
'div',
|
|
315
313
|
{ className: 'jasmine-banner' },
|
|
@@ -372,25 +370,6 @@ getJasmineHtmlRequireObj().Banner = function(j$, private$) {
|
|
|
372
370
|
)
|
|
373
371
|
];
|
|
374
372
|
|
|
375
|
-
if (!this.#omitHideDisabled) {
|
|
376
|
-
items.push(
|
|
377
|
-
createDom(
|
|
378
|
-
'div',
|
|
379
|
-
{ className: 'jasmine-hide-disabled' },
|
|
380
|
-
createDom('input', {
|
|
381
|
-
className: 'jasmine-disabled',
|
|
382
|
-
id: 'jasmine-hide-disabled',
|
|
383
|
-
type: 'checkbox'
|
|
384
|
-
}),
|
|
385
|
-
createDom(
|
|
386
|
-
'label',
|
|
387
|
-
{ className: 'jasmine-label', for: 'jasmine-hide-disabled' },
|
|
388
|
-
'hide disabled tests'
|
|
389
|
-
)
|
|
390
|
-
)
|
|
391
|
-
);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
373
|
const optionsMenuDom = createDom(
|
|
395
374
|
'div',
|
|
396
375
|
{ className: 'jasmine-run-options' },
|
|
@@ -428,19 +407,9 @@ getJasmineHtmlRequireObj().Banner = function(j$, private$) {
|
|
|
428
407
|
this.#navigateWithNewParam('random', !config.random);
|
|
429
408
|
};
|
|
430
409
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
);
|
|
435
|
-
hideDisabled.checked = config.hideDisabled;
|
|
436
|
-
hideDisabled.onclick = () => {
|
|
437
|
-
this.#navigateWithNewParam('hideDisabled', !config.hideDisabled);
|
|
438
|
-
};
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
const optionsTrigger = optionsMenuDom.querySelector('.jasmine-trigger'),
|
|
442
|
-
optionsPayload = optionsMenuDom.querySelector('.jasmine-payload'),
|
|
443
|
-
isOpen = /\bjasmine-open\b/;
|
|
410
|
+
const optionsTrigger = optionsMenuDom.querySelector('.jasmine-trigger');
|
|
411
|
+
const optionsPayload = optionsMenuDom.querySelector('.jasmine-payload');
|
|
412
|
+
const isOpen = /\bjasmine-open\b/;
|
|
444
413
|
|
|
445
414
|
optionsTrigger.onclick = function() {
|
|
446
415
|
if (isOpen.test(optionsPayload.className)) {
|
|
@@ -766,8 +735,7 @@ getJasmineHtmlRequireObj().HtmlReporterV2 = function(j$, private$) {
|
|
|
766
735
|
|
|
767
736
|
this.#progress = new ProgressView();
|
|
768
737
|
this.#banner = new private$.Banner(
|
|
769
|
-
this.#queryString.navigateWithNewParam.bind(this.#queryString)
|
|
770
|
-
true
|
|
738
|
+
this.#queryString.navigateWithNewParam.bind(this.#queryString)
|
|
771
739
|
);
|
|
772
740
|
this.#failures = new private$.FailuresView(this.#urlBuilder);
|
|
773
741
|
this.#htmlReporterMain = createDom(
|
|
@@ -173,43 +173,43 @@ getJasmineRequireObj().requireMatchers = function(jRequire, j$, private$) {
|
|
|
173
173
|
'use strict';
|
|
174
174
|
|
|
175
175
|
const availableMatchers = [
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
176
|
+
'nothing',
|
|
177
|
+
'toBe',
|
|
178
|
+
'toBeCloseTo',
|
|
179
|
+
'toBeDefined',
|
|
180
|
+
'toBeInstanceOf',
|
|
181
|
+
'toBeFalse',
|
|
182
|
+
'toBeFalsy',
|
|
183
|
+
'toBeGreaterThan',
|
|
184
|
+
'toBeGreaterThanOrEqual',
|
|
185
|
+
'toBeLessThan',
|
|
186
|
+
'toBeLessThanOrEqual',
|
|
187
|
+
'toBeNaN',
|
|
188
|
+
'toBeNegativeInfinity',
|
|
189
|
+
'toBeNull',
|
|
190
|
+
'toBePositiveInfinity',
|
|
191
|
+
'toBeTrue',
|
|
192
|
+
'toBeTruthy',
|
|
193
|
+
'toBeUndefined',
|
|
194
|
+
'toBeNullish',
|
|
195
|
+
'toContain',
|
|
196
|
+
'toEqual',
|
|
197
|
+
'toHaveSize',
|
|
198
|
+
'toHaveBeenCalled',
|
|
199
|
+
'toHaveBeenCalledBefore',
|
|
200
|
+
'toHaveBeenCalledOnceWith',
|
|
201
|
+
'toHaveBeenCalledTimes',
|
|
202
|
+
'toHaveBeenCalledWith',
|
|
203
|
+
'toHaveClass',
|
|
204
|
+
'toHaveClasses',
|
|
205
|
+
'toHaveSpyInteractions',
|
|
206
|
+
'toHaveNoOtherSpyInteractions',
|
|
207
|
+
'toMatch',
|
|
208
|
+
'toThrow',
|
|
209
|
+
'toThrowError',
|
|
210
|
+
'toThrowMatching'
|
|
211
|
+
];
|
|
212
|
+
const matchers = {};
|
|
213
213
|
|
|
214
214
|
for (const name of availableMatchers) {
|
|
215
215
|
matchers[name] = jRequire[name](j$, private$);
|
|
@@ -754,8 +754,8 @@ getJasmineRequireObj().util = function(j$, private$) {
|
|
|
754
754
|
|
|
755
755
|
util.cloneArgs = function(args) {
|
|
756
756
|
return Array.from(args).map(function(arg) {
|
|
757
|
-
const str = Object.prototype.toString.apply(arg)
|
|
758
|
-
|
|
757
|
+
const str = Object.prototype.toString.apply(arg);
|
|
758
|
+
const primitives = /^\[object (Boolean|String|RegExp|Number)/;
|
|
759
759
|
|
|
760
760
|
// All falsey values are either primitives, `null`, or `undefined.
|
|
761
761
|
if (!arg || str.match(primitives)) {
|
|
@@ -769,8 +769,8 @@ getJasmineRequireObj().util = function(j$, private$) {
|
|
|
769
769
|
};
|
|
770
770
|
|
|
771
771
|
util.getPropertyDescriptor = function(obj, methodName) {
|
|
772
|
-
let descriptor
|
|
773
|
-
|
|
772
|
+
let descriptor;
|
|
773
|
+
let proto = obj;
|
|
774
774
|
|
|
775
775
|
do {
|
|
776
776
|
descriptor = Object.getOwnPropertyDescriptor(proto, methodName);
|
|
@@ -1196,10 +1196,12 @@ getJasmineRequireObj().Spec = function(j$, private$) {
|
|
|
1196
1196
|
}
|
|
1197
1197
|
|
|
1198
1198
|
const extractCustomPendingMessage = function(e) {
|
|
1199
|
-
const fullMessage = e.toString()
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1199
|
+
const fullMessage = e.toString();
|
|
1200
|
+
const boilerplateStart = fullMessage.indexOf(
|
|
1201
|
+
Spec.pendingSpecExceptionMessage
|
|
1202
|
+
);
|
|
1203
|
+
const boilerplateEnd =
|
|
1204
|
+
boilerplateStart + Spec.pendingSpecExceptionMessage.length;
|
|
1203
1205
|
|
|
1204
1206
|
return fullMessage.slice(boilerplateEnd);
|
|
1205
1207
|
};
|
|
@@ -1332,7 +1334,11 @@ getJasmineRequireObj().Env = function(j$, private$) {
|
|
|
1332
1334
|
let runner;
|
|
1333
1335
|
let parallelLoadingState = null; // 'specs', 'helpers', or null for non-parallel
|
|
1334
1336
|
|
|
1335
|
-
const config = new private$.Configuration(
|
|
1337
|
+
const config = new private$.Configuration({
|
|
1338
|
+
deprecated: function() {
|
|
1339
|
+
return self.deprecated.apply(self, arguments);
|
|
1340
|
+
}
|
|
1341
|
+
});
|
|
1336
1342
|
|
|
1337
1343
|
if (!envOptions.suppressLoadErrors) {
|
|
1338
1344
|
installGlobalErrors();
|
|
@@ -3326,17 +3332,6 @@ getJasmineRequireObj().Configuration = function(j$, private$) {
|
|
|
3326
3332
|
return true;
|
|
3327
3333
|
},
|
|
3328
3334
|
|
|
3329
|
-
// TODO: remove hideDisabled when HtmlReporter is removed
|
|
3330
|
-
/**
|
|
3331
|
-
* Whether reporters should hide disabled specs from their output.
|
|
3332
|
-
* Currently only supported by Jasmine's HTMLReporter
|
|
3333
|
-
* @name Configuration#hideDisabled
|
|
3334
|
-
* @since 3.3.0
|
|
3335
|
-
* @type Boolean
|
|
3336
|
-
* @default false
|
|
3337
|
-
* @deprecated
|
|
3338
|
-
*/
|
|
3339
|
-
hideDisabled: false,
|
|
3340
3335
|
/**
|
|
3341
3336
|
* Clean closures when a suite is done running (done by clearing the stored function reference).
|
|
3342
3337
|
* This prevents memory leaks, but you won't be able to run jasmine multiple times.
|
|
@@ -3407,25 +3402,25 @@ getJasmineRequireObj().Configuration = function(j$, private$) {
|
|
|
3407
3402
|
|
|
3408
3403
|
/**
|
|
3409
3404
|
* The strategy to use in Safari and similar browsers to determine how often
|
|
3410
|
-
* to yield control by calling setTimeout. If set to "
|
|
3411
|
-
* the frequency of setTimeout calls is based on
|
|
3412
|
-
*
|
|
3413
|
-
*
|
|
3414
|
-
* improvement, but as of 6.0 it hasn't been tested with a wide variety of
|
|
3415
|
-
* workloads and should be considered experimental.
|
|
3405
|
+
* to yield control by calling setTimeout. If set to "time", the default,
|
|
3406
|
+
* the frequency of setTimeout calls is based on elapsed time. If set to
|
|
3407
|
+
* "count", the frequency of setTimeout calls is based on the number of
|
|
3408
|
+
* relevant function calls.
|
|
3416
3409
|
* @name Configuration#safariYieldStrategy
|
|
3417
3410
|
* @since 6.0.0
|
|
3418
3411
|
* @type 'count' | 'time'
|
|
3419
|
-
* @default '
|
|
3412
|
+
* @default 'time'
|
|
3420
3413
|
*/
|
|
3421
|
-
safariYieldStrategy: '
|
|
3414
|
+
safariYieldStrategy: 'time'
|
|
3422
3415
|
};
|
|
3423
3416
|
Object.freeze(defaultConfig);
|
|
3424
3417
|
|
|
3425
3418
|
class Configuration {
|
|
3419
|
+
#deprecated;
|
|
3426
3420
|
#values;
|
|
3427
3421
|
|
|
3428
|
-
constructor() {
|
|
3422
|
+
constructor(options) {
|
|
3423
|
+
this.#deprecated = options.deprecated;
|
|
3429
3424
|
this.#values = { ...defaultConfig };
|
|
3430
3425
|
|
|
3431
3426
|
for (const k of Object.keys(defaultConfig)) {
|
|
@@ -3446,7 +3441,6 @@ getJasmineRequireObj().Configuration = function(j$, private$) {
|
|
|
3446
3441
|
const booleanProps = [
|
|
3447
3442
|
'random',
|
|
3448
3443
|
'failSpecWithNoExpectations',
|
|
3449
|
-
'hideDisabled',
|
|
3450
3444
|
'stopOnSpecFailure',
|
|
3451
3445
|
'stopSpecOnExpectationFailure',
|
|
3452
3446
|
'autoCleanClosures',
|
|
@@ -3485,6 +3479,12 @@ getJasmineRequireObj().Configuration = function(j$, private$) {
|
|
|
3485
3479
|
|
|
3486
3480
|
if (v === 'count' || v === 'time') {
|
|
3487
3481
|
this.#values.safariYieldStrategy = v;
|
|
3482
|
+
|
|
3483
|
+
if (v === 'count') {
|
|
3484
|
+
this.#deprecated(
|
|
3485
|
+
'safariYieldStrategy: "count" is deprecated. If you need this option, please submit a bug report.'
|
|
3486
|
+
);
|
|
3487
|
+
}
|
|
3488
3488
|
} else {
|
|
3489
3489
|
throw new Error(
|
|
3490
3490
|
"Invalid safariYieldStrategy value. Valid values are 'count' and 'time'."
|
|
@@ -4988,6 +4988,71 @@ getJasmineRequireObj().toBeRejectedWithError = function(j$, private$) {
|
|
|
4988
4988
|
}
|
|
4989
4989
|
};
|
|
4990
4990
|
|
|
4991
|
+
getJasmineRequireObj().toBeRejectedWithMatching = function(j$, private$) {
|
|
4992
|
+
'use strict';
|
|
4993
|
+
|
|
4994
|
+
const usageError = private$.formatErrorMsg(
|
|
4995
|
+
'<toBeRejectedWithMatching>',
|
|
4996
|
+
'expect(function() {<expectation>}).toBeRejectedWithMatching(<Predicate>)'
|
|
4997
|
+
);
|
|
4998
|
+
|
|
4999
|
+
/**
|
|
5000
|
+
* Expect a promise to be rejected with a value matching a predicate.
|
|
5001
|
+
* @function
|
|
5002
|
+
* @async
|
|
5003
|
+
* @name async-matchers#toBeRejectedWithMatching
|
|
5004
|
+
* @since 6.2.0
|
|
5005
|
+
* @param {Function} predicate - A function that takes the rejected promise value as its parameter and returns true if it matches.
|
|
5006
|
+
* @example
|
|
5007
|
+
* await expectAsync(aPromise).toBeRejectedWithMatching((error) => error.message === 'Some error');
|
|
5008
|
+
* @example
|
|
5009
|
+
* return expectAsync(aPromise).toBeRejectedWithMatching((error) => error.message === 'Some error');
|
|
5010
|
+
*/
|
|
5011
|
+
return function toBeRejectedWithMatching() {
|
|
5012
|
+
return {
|
|
5013
|
+
compare: function(actualPromise, predicate) {
|
|
5014
|
+
if (!private$.isPromiseLike(actualPromise)) {
|
|
5015
|
+
throw new Error(
|
|
5016
|
+
`Expected toBeRejectedWithMatching to be called on a promise but was on a ${typeof actualPromise}.`
|
|
5017
|
+
);
|
|
5018
|
+
}
|
|
5019
|
+
|
|
5020
|
+
if (typeof predicate !== 'function') {
|
|
5021
|
+
throw new Error(usageError('Predicate is not a Function'));
|
|
5022
|
+
}
|
|
5023
|
+
|
|
5024
|
+
function prefix(passed) {
|
|
5025
|
+
return (
|
|
5026
|
+
'Expected a promise ' +
|
|
5027
|
+
(passed ? 'not ' : '') +
|
|
5028
|
+
'to be rejected matching a predicate'
|
|
5029
|
+
);
|
|
5030
|
+
}
|
|
5031
|
+
|
|
5032
|
+
return actualPromise.then(
|
|
5033
|
+
function() {
|
|
5034
|
+
return {
|
|
5035
|
+
pass: false,
|
|
5036
|
+
message: prefix(false) + ', but it was resolved.'
|
|
5037
|
+
};
|
|
5038
|
+
},
|
|
5039
|
+
function(actualValue) {
|
|
5040
|
+
const result = predicate(actualValue);
|
|
5041
|
+
return {
|
|
5042
|
+
pass: Boolean(result),
|
|
5043
|
+
message:
|
|
5044
|
+
prefix(result) +
|
|
5045
|
+
', but the predicate returned "' +
|
|
5046
|
+
result +
|
|
5047
|
+
'".'
|
|
5048
|
+
};
|
|
5049
|
+
}
|
|
5050
|
+
);
|
|
5051
|
+
}
|
|
5052
|
+
};
|
|
5053
|
+
};
|
|
5054
|
+
};
|
|
5055
|
+
|
|
4991
5056
|
getJasmineRequireObj().toBeResolved = function(j$, private$) {
|
|
4992
5057
|
'use strict';
|
|
4993
5058
|
|
|
@@ -5292,14 +5357,14 @@ getJasmineRequireObj().MatchersUtil = function(j$, private$) {
|
|
|
5292
5357
|
};
|
|
5293
5358
|
|
|
5294
5359
|
MatchersUtil.prototype.buildFailureMessage = function() {
|
|
5295
|
-
const args = Array.prototype.slice.call(arguments, 0)
|
|
5296
|
-
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5360
|
+
const args = Array.prototype.slice.call(arguments, 0);
|
|
5361
|
+
const matcherName = args[0];
|
|
5362
|
+
const isNot = args[1];
|
|
5363
|
+
const actual = args[2];
|
|
5364
|
+
const expected = args.slice(3);
|
|
5365
|
+
const englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) {
|
|
5366
|
+
return ' ' + s.toLowerCase();
|
|
5367
|
+
});
|
|
5303
5368
|
|
|
5304
5369
|
let message =
|
|
5305
5370
|
'Expected ' +
|
|
@@ -5681,8 +5746,8 @@ getJasmineRequireObj().MatchersUtil = function(j$, private$) {
|
|
|
5681
5746
|
} else {
|
|
5682
5747
|
// Objects with different constructors are not equivalent, but `Object`s
|
|
5683
5748
|
// or `Array`s from different frames are.
|
|
5684
|
-
const aCtor = a.constructor
|
|
5685
|
-
|
|
5749
|
+
const aCtor = a.constructor;
|
|
5750
|
+
const bCtor = b.constructor;
|
|
5686
5751
|
if (
|
|
5687
5752
|
aCtor !== bCtor &&
|
|
5688
5753
|
isFunction(aCtor) &&
|
|
@@ -5788,11 +5853,11 @@ getJasmineRequireObj().MatchersUtil = function(j$, private$) {
|
|
|
5788
5853
|
}
|
|
5789
5854
|
|
|
5790
5855
|
function objectKeysAreDifferentFormatter(pp, actual, expected, path) {
|
|
5791
|
-
const missingProperties = extraKeysAndValues(expected, actual)
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
|
|
5795
|
-
|
|
5856
|
+
const missingProperties = extraKeysAndValues(expected, actual);
|
|
5857
|
+
const extraProperties = extraKeysAndValues(actual, expected);
|
|
5858
|
+
const missingPropertiesMessage = formatKeyValuePairs(pp, missingProperties);
|
|
5859
|
+
const extraPropertiesMessage = formatKeyValuePairs(pp, extraProperties);
|
|
5860
|
+
const messages = [];
|
|
5796
5861
|
|
|
5797
5862
|
if (!path.depth()) {
|
|
5798
5863
|
path = 'object';
|
|
@@ -6050,14 +6115,15 @@ getJasmineRequireObj().requireAsyncMatchers = function(jRequire, j$, private$) {
|
|
|
6050
6115
|
'use strict';
|
|
6051
6116
|
|
|
6052
6117
|
const availableMatchers = [
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6118
|
+
'toBePending',
|
|
6119
|
+
'toBeResolved',
|
|
6120
|
+
'toBeRejected',
|
|
6121
|
+
'toBeResolvedTo',
|
|
6122
|
+
'toBeRejectedWith',
|
|
6123
|
+
'toBeRejectedWithError',
|
|
6124
|
+
'toBeRejectedWithMatching'
|
|
6125
|
+
];
|
|
6126
|
+
const matchers = {};
|
|
6061
6127
|
|
|
6062
6128
|
for (const name of availableMatchers) {
|
|
6063
6129
|
matchers[name] = jRequire[name](j$, private$);
|
|
@@ -6663,11 +6729,11 @@ getJasmineRequireObj().toEqual = function(j$, private$) {
|
|
|
6663
6729
|
return {
|
|
6664
6730
|
compare: function(actual, expected) {
|
|
6665
6731
|
const result = {
|
|
6666
|
-
|
|
6667
|
-
|
|
6668
|
-
|
|
6669
|
-
|
|
6670
|
-
|
|
6732
|
+
pass: false
|
|
6733
|
+
};
|
|
6734
|
+
const diffBuilder = new private$.DiffBuilder({
|
|
6735
|
+
prettyPrinter: matchersUtil.pp
|
|
6736
|
+
});
|
|
6671
6737
|
|
|
6672
6738
|
result.pass = matchersUtil.equals(actual, expected, diffBuilder);
|
|
6673
6739
|
|
|
@@ -6852,9 +6918,9 @@ getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$, private$) {
|
|
|
6852
6918
|
function toHaveBeenCalledOnceWith(matchersUtil) {
|
|
6853
6919
|
return {
|
|
6854
6920
|
compare: function() {
|
|
6855
|
-
const args = Array.prototype.slice.call(arguments, 0)
|
|
6856
|
-
|
|
6857
|
-
|
|
6921
|
+
const args = Array.prototype.slice.call(arguments, 0);
|
|
6922
|
+
const actual = args[0];
|
|
6923
|
+
const expectedArgs = args.slice(1);
|
|
6858
6924
|
|
|
6859
6925
|
if (!j$.isSpy(actual)) {
|
|
6860
6926
|
throw new Error(
|
|
@@ -6971,8 +7037,8 @@ getJasmineRequireObj().toHaveBeenCalledTimes = function(j$, private$) {
|
|
|
6971
7037
|
);
|
|
6972
7038
|
}
|
|
6973
7039
|
|
|
6974
|
-
const args = Array.prototype.slice.call(arguments, 0)
|
|
6975
|
-
|
|
7040
|
+
const args = Array.prototype.slice.call(arguments, 0);
|
|
7041
|
+
const result = { pass: false };
|
|
6976
7042
|
|
|
6977
7043
|
if (!private$.isNumber(expected)) {
|
|
6978
7044
|
throw new Error(
|
|
@@ -7041,10 +7107,10 @@ getJasmineRequireObj().toHaveBeenCalledWith = function(j$, private$) {
|
|
|
7041
7107
|
function toHaveBeenCalledWith(matchersUtil) {
|
|
7042
7108
|
return {
|
|
7043
7109
|
compare: function() {
|
|
7044
|
-
const args = Array.prototype.slice.call(arguments, 0)
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7110
|
+
const args = Array.prototype.slice.call(arguments, 0);
|
|
7111
|
+
const actual = args[0];
|
|
7112
|
+
const expectedArgs = args.slice(1);
|
|
7113
|
+
const result = { pass: false };
|
|
7048
7114
|
|
|
7049
7115
|
if (!j$.isSpy(actual)) {
|
|
7050
7116
|
throw new Error(
|
|
@@ -9924,22 +9990,22 @@ getJasmineRequireObj().Spy = function(j$, private$) {
|
|
|
9924
9990
|
};
|
|
9925
9991
|
const { originalFn, customStrategies, defaultStrategyFn } = optionals || {};
|
|
9926
9992
|
|
|
9927
|
-
const numArgs = typeof originalFn === 'function' ? originalFn.length : 0
|
|
9928
|
-
|
|
9929
|
-
|
|
9930
|
-
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
|
|
9934
|
-
|
|
9935
|
-
|
|
9936
|
-
|
|
9937
|
-
},
|
|
9938
|
-
customStrategies: customStrategies
|
|
9993
|
+
const numArgs = typeof originalFn === 'function' ? originalFn.length : 0;
|
|
9994
|
+
const wrapper = makeFunc(numArgs, function(context, args, invokeNew) {
|
|
9995
|
+
return spy(context, args, invokeNew);
|
|
9996
|
+
});
|
|
9997
|
+
const strategyDispatcher = new SpyStrategyDispatcher(
|
|
9998
|
+
{
|
|
9999
|
+
name: name,
|
|
10000
|
+
fn: originalFn,
|
|
10001
|
+
getSpy: function() {
|
|
10002
|
+
return wrapper;
|
|
9939
10003
|
},
|
|
9940
|
-
|
|
9941
|
-
|
|
9942
|
-
|
|
10004
|
+
customStrategies: customStrategies
|
|
10005
|
+
},
|
|
10006
|
+
matchersUtil
|
|
10007
|
+
);
|
|
10008
|
+
const callTracker = new private$.CallTracker();
|
|
9943
10009
|
|
|
9944
10010
|
function makeFunc(length, fn) {
|
|
9945
10011
|
switch (length) {
|
|
@@ -10383,10 +10449,10 @@ getJasmineRequireObj().SpyRegistry = function(j$, private$) {
|
|
|
10383
10449
|
);
|
|
10384
10450
|
}
|
|
10385
10451
|
|
|
10386
|
-
let pointer = obj
|
|
10387
|
-
|
|
10388
|
-
|
|
10389
|
-
|
|
10452
|
+
let pointer = obj;
|
|
10453
|
+
let propsToSpyOn = [];
|
|
10454
|
+
let properties;
|
|
10455
|
+
let propertiesToSkip = [];
|
|
10390
10456
|
|
|
10391
10457
|
while (
|
|
10392
10458
|
pointer &&
|
|
@@ -11670,9 +11736,9 @@ getJasmineRequireObj().SuiteBuilder = function(j$, private$) {
|
|
|
11670
11736
|
|
|
11671
11737
|
function beforeAndAfterFns(targetSuite) {
|
|
11672
11738
|
return function() {
|
|
11673
|
-
let befores = []
|
|
11674
|
-
|
|
11675
|
-
|
|
11739
|
+
let befores = [];
|
|
11740
|
+
let afters = [];
|
|
11741
|
+
let suite = targetSuite;
|
|
11676
11742
|
|
|
11677
11743
|
while (suite) {
|
|
11678
11744
|
befores = befores.concat(suite.beforeFns);
|
|
@@ -11887,15 +11953,15 @@ getJasmineRequireObj().TreeProcessor = function(j$, private$) {
|
|
|
11887
11953
|
|
|
11888
11954
|
function segmentChildren(node, orderedChildren, stats, executableIndex) {
|
|
11889
11955
|
let currentSegment = {
|
|
11890
|
-
|
|
11891
|
-
|
|
11892
|
-
|
|
11893
|
-
|
|
11894
|
-
|
|
11895
|
-
|
|
11896
|
-
|
|
11897
|
-
|
|
11898
|
-
|
|
11956
|
+
index: 0,
|
|
11957
|
+
owner: node,
|
|
11958
|
+
nodes: [],
|
|
11959
|
+
min: startingMin(executableIndex),
|
|
11960
|
+
max: startingMax(executableIndex)
|
|
11961
|
+
};
|
|
11962
|
+
let result = [currentSegment];
|
|
11963
|
+
let lastMax = defaultMax;
|
|
11964
|
+
let orderedChildSegments = orderChildSegments(orderedChildren, stats);
|
|
11899
11965
|
|
|
11900
11966
|
function isSegmentBoundary(minIndex) {
|
|
11901
11967
|
return (
|
|
@@ -11906,9 +11972,9 @@ getJasmineRequireObj().TreeProcessor = function(j$, private$) {
|
|
|
11906
11972
|
}
|
|
11907
11973
|
|
|
11908
11974
|
for (let i = 0; i < orderedChildSegments.length; i++) {
|
|
11909
|
-
const childSegment = orderedChildSegments[i]
|
|
11910
|
-
|
|
11911
|
-
|
|
11975
|
+
const childSegment = orderedChildSegments[i];
|
|
11976
|
+
const maxIndex = childSegment.max;
|
|
11977
|
+
const minIndex = childSegment.min;
|
|
11912
11978
|
|
|
11913
11979
|
if (isSegmentBoundary(minIndex)) {
|
|
11914
11980
|
currentSegment = {
|
|
@@ -11931,12 +11997,12 @@ getJasmineRequireObj().TreeProcessor = function(j$, private$) {
|
|
|
11931
11997
|
}
|
|
11932
11998
|
|
|
11933
11999
|
function orderChildSegments(children, stats) {
|
|
11934
|
-
const specifiedOrder = []
|
|
11935
|
-
|
|
12000
|
+
const specifiedOrder = [];
|
|
12001
|
+
const unspecifiedOrder = [];
|
|
11936
12002
|
|
|
11937
12003
|
for (let i = 0; i < children.length; i++) {
|
|
11938
|
-
const child = children[i]
|
|
11939
|
-
|
|
12004
|
+
const child = children[i];
|
|
12005
|
+
const segments = stats[child.id].segments;
|
|
11940
12006
|
|
|
11941
12007
|
for (let j = 0; j < segments.length; j++) {
|
|
11942
12008
|
const seg = segments[j];
|
|
@@ -12280,7 +12346,7 @@ getJasmineRequireObj().UserContext = function(j$, private$) {
|
|
|
12280
12346
|
};
|
|
12281
12347
|
|
|
12282
12348
|
getJasmineRequireObj().version = function() {
|
|
12283
|
-
return '7.0.0-pre.
|
|
12349
|
+
return '7.0.0-pre.1';
|
|
12284
12350
|
};
|
|
12285
12351
|
|
|
12286
12352
|
(function() {
|
package/lib/jasmine-core.js
CHANGED
|
@@ -39,11 +39,11 @@ function reset() {
|
|
|
39
39
|
rebindInterface(env);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
const rootPath = path.join(__dirname, 'jasmine-core')
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
const rootPath = path.join(__dirname, 'jasmine-core');
|
|
43
|
+
const bootFiles = ['boot.js'];
|
|
44
|
+
const cssFiles = [];
|
|
45
|
+
const jsFiles = [];
|
|
46
|
+
const jsFilesToSkip = ['jasmine.js'].concat(bootFiles);
|
|
47
47
|
|
|
48
48
|
fs.readdirSync(rootPath).forEach(function(file) {
|
|
49
49
|
if (fs.statSync(path.join(rootPath, file)).isFile()) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jasmine-core",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "7.0.0-pre.
|
|
4
|
+
"version": "7.0.0-pre.1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/jasmine/jasmine.git"
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"sass": "^1.58.3"
|
|
56
56
|
},
|
|
57
57
|
"browserslist": [
|
|
58
|
-
"Safari >=
|
|
59
|
-
"Firefox >=
|
|
58
|
+
"Safari >= 26",
|
|
59
|
+
"Firefox >= 140",
|
|
60
60
|
"last 2 Chrome versions",
|
|
61
61
|
"last 2 Edge versions"
|
|
62
62
|
]
|