Replaced uses of var with const/let
This commit is contained in:
@@ -4,8 +4,8 @@ getJasmineRequireObj().CallTracker = function(j$) {
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function CallTracker() {
|
||||
var calls = [];
|
||||
var opts = {};
|
||||
let calls = [];
|
||||
const opts = {};
|
||||
|
||||
this.track = function(context) {
|
||||
if (opts.cloneArgs) {
|
||||
@@ -45,7 +45,7 @@ getJasmineRequireObj().CallTracker = function(j$) {
|
||||
* @return {Array}
|
||||
*/
|
||||
this.argsFor = function(index) {
|
||||
var call = calls[index];
|
||||
const call = calls[index];
|
||||
return call ? call.args : [];
|
||||
};
|
||||
|
||||
@@ -58,7 +58,7 @@ getJasmineRequireObj().CallTracker = function(j$) {
|
||||
* @return {Object?}
|
||||
*/
|
||||
this.thisFor = function(index) {
|
||||
var call = calls[index];
|
||||
const call = calls[index];
|
||||
return call ? call.object : undefined;
|
||||
};
|
||||
|
||||
@@ -81,12 +81,7 @@ getJasmineRequireObj().CallTracker = function(j$) {
|
||||
* @return {Array}
|
||||
*/
|
||||
this.allArgs = function() {
|
||||
var callArgs = [];
|
||||
for (var i = 0; i < calls.length; i++) {
|
||||
callArgs.push(calls[i].args);
|
||||
}
|
||||
|
||||
return callArgs;
|
||||
return calls.map(c => c.args);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
getJasmineRequireObj().clearStack = function(j$) {
|
||||
var maxInlineCallCount = 10;
|
||||
const maxInlineCallCount = 10;
|
||||
|
||||
function messageChannelImpl(global, setTimeout) {
|
||||
var channel = new global.MessageChannel(),
|
||||
head = {},
|
||||
tail = head;
|
||||
const channel = new global.MessageChannel();
|
||||
let head = {};
|
||||
let tail = head;
|
||||
|
||||
var taskRunning = false;
|
||||
let taskRunning = false;
|
||||
channel.port1.onmessage = function() {
|
||||
head = head.next;
|
||||
var task = head.task;
|
||||
const task = head.task;
|
||||
delete head.task;
|
||||
|
||||
if (taskRunning) {
|
||||
@@ -24,7 +24,7 @@ getJasmineRequireObj().clearStack = function(j$) {
|
||||
}
|
||||
};
|
||||
|
||||
var currentCallCount = 0;
|
||||
let currentCallCount = 0;
|
||||
return function clearStack(fn) {
|
||||
currentCallCount++;
|
||||
|
||||
@@ -39,14 +39,14 @@ getJasmineRequireObj().clearStack = function(j$) {
|
||||
}
|
||||
|
||||
function getClearStack(global) {
|
||||
var currentCallCount = 0;
|
||||
var realSetTimeout = global.setTimeout;
|
||||
var setTimeoutImpl = function clearStack(fn) {
|
||||
let currentCallCount = 0;
|
||||
const realSetTimeout = global.setTimeout;
|
||||
const setTimeoutImpl = function clearStack(fn) {
|
||||
Function.prototype.apply.apply(realSetTimeout, [global, [fn, 0]]);
|
||||
};
|
||||
|
||||
if (j$.isFunction_(global.setImmediate)) {
|
||||
var realSetImmediate = global.setImmediate;
|
||||
const realSetImmediate = global.setImmediate;
|
||||
return function(fn) {
|
||||
currentCallCount++;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
getJasmineRequireObj().Clock = function() {
|
||||
/* global process */
|
||||
var NODE_JS =
|
||||
const NODE_JS =
|
||||
typeof process !== 'undefined' &&
|
||||
process.versions &&
|
||||
typeof process.versions.node === 'string';
|
||||
@@ -14,7 +14,7 @@ getJasmineRequireObj().Clock = function() {
|
||||
* @hideconstructor
|
||||
*/
|
||||
function Clock(global, delayedFunctionSchedulerFactory, mockDate) {
|
||||
var self = this,
|
||||
const self = this,
|
||||
realTimingFunctions = {
|
||||
setTimeout: global.setTimeout,
|
||||
clearTimeout: global.clearTimeout,
|
||||
@@ -26,10 +26,10 @@ getJasmineRequireObj().Clock = function() {
|
||||
clearTimeout: clearTimeout,
|
||||
setInterval: setInterval,
|
||||
clearInterval: clearInterval
|
||||
},
|
||||
installed = false,
|
||||
delayedFunctionScheduler,
|
||||
timer;
|
||||
};
|
||||
let installed = false;
|
||||
let delayedFunctionScheduler;
|
||||
let timer;
|
||||
|
||||
self.FakeTimeout = FakeTimeout;
|
||||
|
||||
@@ -151,7 +151,7 @@ getJasmineRequireObj().Clock = function() {
|
||||
}
|
||||
|
||||
function replace(dest, source) {
|
||||
for (var prop in source) {
|
||||
for (const prop in source) {
|
||||
dest[prop] = source[prop];
|
||||
}
|
||||
}
|
||||
@@ -165,7 +165,7 @@ getJasmineRequireObj().Clock = function() {
|
||||
);
|
||||
}
|
||||
|
||||
var timeout = new FakeTimeout();
|
||||
const timeout = new FakeTimeout();
|
||||
|
||||
delayedFunctionScheduler.scheduleFunction(
|
||||
fn,
|
||||
@@ -192,7 +192,7 @@ getJasmineRequireObj().Clock = function() {
|
||||
);
|
||||
}
|
||||
|
||||
var timeout = new FakeTimeout();
|
||||
const timeout = new FakeTimeout();
|
||||
|
||||
delayedFunctionScheduler.scheduleFunction(
|
||||
fn,
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
||||
function DelayedFunctionScheduler() {
|
||||
var self = this;
|
||||
var scheduledLookup = [];
|
||||
var scheduledFunctions = {};
|
||||
var currentTime = 0;
|
||||
var delayedFnCount = 0;
|
||||
var deletedKeys = [];
|
||||
const self = this;
|
||||
const scheduledLookup = [];
|
||||
const scheduledFunctions = {};
|
||||
let currentTime = 0;
|
||||
let delayedFnCount = 0;
|
||||
let deletedKeys = [];
|
||||
|
||||
self.tick = function(millis, tickDate) {
|
||||
millis = millis || 0;
|
||||
var endTime = currentTime + millis;
|
||||
const endTime = currentTime + millis;
|
||||
|
||||
runScheduledFunctions(endTime, tickDate);
|
||||
};
|
||||
@@ -22,7 +22,7 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
||||
timeoutKey,
|
||||
runAtMillis
|
||||
) {
|
||||
var f;
|
||||
let f;
|
||||
if (typeof funcToCall === 'string') {
|
||||
f = function() {
|
||||
// eslint-disable-next-line no-eval
|
||||
@@ -36,7 +36,7 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
||||
timeoutKey = timeoutKey || ++delayedFnCount;
|
||||
runAtMillis = runAtMillis || currentTime + millis;
|
||||
|
||||
var funcToSchedule = {
|
||||
const funcToSchedule = {
|
||||
runAtMillis: runAtMillis,
|
||||
funcToCall: f,
|
||||
recurring: recurring,
|
||||
@@ -61,9 +61,9 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
||||
self.removeFunctionWithId = function(timeoutKey) {
|
||||
deletedKeys.push(timeoutKey);
|
||||
|
||||
for (var runAtMillis in scheduledFunctions) {
|
||||
var funcs = scheduledFunctions[runAtMillis];
|
||||
var i = indexOfFirstToPass(funcs, function(func) {
|
||||
for (const runAtMillis in scheduledFunctions) {
|
||||
const funcs = scheduledFunctions[runAtMillis];
|
||||
const i = indexOfFirstToPass(funcs, function(func) {
|
||||
return func.timeoutKey === timeoutKey;
|
||||
});
|
||||
|
||||
@@ -85,9 +85,9 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
||||
return self;
|
||||
|
||||
function indexOfFirstToPass(array, testFn) {
|
||||
var index = -1;
|
||||
let index = -1;
|
||||
|
||||
for (var i = 0; i < array.length; ++i) {
|
||||
for (let i = 0; i < array.length; ++i) {
|
||||
if (testFn(array[i])) {
|
||||
index = i;
|
||||
break;
|
||||
@@ -98,8 +98,8 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
||||
}
|
||||
|
||||
function deleteFromLookup(key) {
|
||||
var value = Number(key);
|
||||
var i = indexOfFirstToPass(scheduledLookup, function(millis) {
|
||||
const value = Number(key);
|
||||
const i = indexOfFirstToPass(scheduledLookup, function(millis) {
|
||||
return millis === value;
|
||||
});
|
||||
|
||||
@@ -120,8 +120,8 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
||||
}
|
||||
|
||||
function forEachFunction(funcsToRun, callback) {
|
||||
for (var i = 0; i < funcsToRun.length; ++i) {
|
||||
callback(funcsToRun[i]);
|
||||
for (const f of funcsToRun) {
|
||||
callback(f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,13 +137,13 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) {
|
||||
|
||||
do {
|
||||
deletedKeys = [];
|
||||
var newCurrentTime = scheduledLookup.shift();
|
||||
const newCurrentTime = scheduledLookup.shift();
|
||||
if (newCurrentTime >= currentTime) {
|
||||
tickDate(newCurrentTime - currentTime);
|
||||
currentTime = newCurrentTime;
|
||||
}
|
||||
|
||||
var funcsToRun = scheduledFunctions[currentTime];
|
||||
const funcsToRun = scheduledFunctions[currentTime];
|
||||
|
||||
delete scheduledFunctions[currentTime];
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ getJasmineRequireObj().Deprecator = function(j$) {
|
||||
this.toSuppress_ = [];
|
||||
}
|
||||
|
||||
var verboseNote =
|
||||
const verboseNote =
|
||||
'Note: This message will be shown only once. Set the verboseDeprecations ' +
|
||||
'config property to true to see every occurrence.';
|
||||
|
||||
@@ -35,13 +35,13 @@ getJasmineRequireObj().Deprecator = function(j$) {
|
||||
};
|
||||
|
||||
Deprecator.prototype.log_ = function(runnable, deprecation, options) {
|
||||
var context;
|
||||
|
||||
if (j$.isError_(deprecation)) {
|
||||
console.error(deprecation);
|
||||
return;
|
||||
}
|
||||
|
||||
let context;
|
||||
|
||||
if (runnable === this.topSuite_ || options.ignoreRunnable) {
|
||||
context = '';
|
||||
} else if (runnable.children) {
|
||||
@@ -62,7 +62,7 @@ getJasmineRequireObj().Deprecator = function(j$) {
|
||||
};
|
||||
|
||||
Deprecator.prototype.stackTrace_ = function() {
|
||||
var formatter = new j$.ExceptionFormatter();
|
||||
const formatter = new j$.ExceptionFormatter();
|
||||
return formatter.stack(j$.util.errorWithStack()).replace(/^Error\n/m, '');
|
||||
};
|
||||
|
||||
|
||||
193
src/core/Env.js
193
src/core/Env.js
@@ -10,14 +10,14 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
function Env(options) {
|
||||
options = options || {};
|
||||
|
||||
var self = this;
|
||||
var global = options.global || j$.getGlobal();
|
||||
const self = this;
|
||||
const global = options.global || j$.getGlobal();
|
||||
|
||||
var totalSpecsDefined = 0;
|
||||
let totalSpecsDefined = 0;
|
||||
|
||||
var realSetTimeout = global.setTimeout;
|
||||
var realClearTimeout = global.clearTimeout;
|
||||
var clearStack = j$.getClearStack(global);
|
||||
const realSetTimeout = global.setTimeout;
|
||||
const realClearTimeout = global.clearTimeout;
|
||||
const clearStack = j$.getClearStack(global);
|
||||
this.clock = new j$.Clock(
|
||||
global,
|
||||
function() {
|
||||
@@ -26,12 +26,17 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
new j$.MockDate(global)
|
||||
);
|
||||
|
||||
var runnableResources = {};
|
||||
const runnableResources = {};
|
||||
|
||||
var currentSpec = null;
|
||||
var currentlyExecutingSuites = [];
|
||||
var currentDeclarationSuite = null;
|
||||
var hasFailures = false;
|
||||
let topSuite;
|
||||
let currentSpec = null;
|
||||
const currentlyExecutingSuites = [];
|
||||
const focusedRunnables = [];
|
||||
let currentDeclarationSuite = null;
|
||||
let hasFailures = false;
|
||||
let deprecator;
|
||||
let reporter;
|
||||
let spyRegistry;
|
||||
|
||||
/**
|
||||
* This represents the available options to configure Jasmine.
|
||||
@@ -40,7 +45,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
* @interface Configuration
|
||||
* @since 3.3.0
|
||||
*/
|
||||
var config = {
|
||||
const config = {
|
||||
/**
|
||||
* Whether to randomize spec execution order
|
||||
* @name Configuration#random
|
||||
@@ -133,24 +138,24 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
verboseDeprecations: false
|
||||
};
|
||||
|
||||
var currentSuite = function() {
|
||||
function currentSuite() {
|
||||
return currentlyExecutingSuites[currentlyExecutingSuites.length - 1];
|
||||
};
|
||||
}
|
||||
|
||||
var currentRunnable = function() {
|
||||
function currentRunnable() {
|
||||
return currentSpec || currentSuite();
|
||||
};
|
||||
}
|
||||
|
||||
var globalErrors = null;
|
||||
let globalErrors = null;
|
||||
|
||||
var installGlobalErrors = function() {
|
||||
function installGlobalErrors() {
|
||||
if (globalErrors) {
|
||||
return;
|
||||
}
|
||||
|
||||
globalErrors = new j$.GlobalErrors();
|
||||
globalErrors.install();
|
||||
};
|
||||
}
|
||||
|
||||
if (!options.suppressLoadErrors) {
|
||||
installGlobalErrors();
|
||||
@@ -180,7 +185,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
* @function
|
||||
*/
|
||||
this.configure = function(configuration) {
|
||||
var booleanProps = [
|
||||
const booleanProps = [
|
||||
'random',
|
||||
'failSpecWithNoExpectations',
|
||||
'hideDisabled',
|
||||
@@ -217,8 +222,8 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
* @returns {Configuration}
|
||||
*/
|
||||
this.configuration = function() {
|
||||
var result = {};
|
||||
for (var property in config) {
|
||||
const result = {};
|
||||
for (const property in config) {
|
||||
result[property] = config[property];
|
||||
}
|
||||
return result;
|
||||
@@ -261,10 +266,10 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
'Matchers must be added in a before function or a spec'
|
||||
);
|
||||
}
|
||||
var customMatchers =
|
||||
const customMatchers =
|
||||
runnableResources[currentRunnable().id].customMatchers;
|
||||
|
||||
for (var matcherName in matchersToAdd) {
|
||||
for (const matcherName in matchersToAdd) {
|
||||
customMatchers[matcherName] = matchersToAdd[matcherName];
|
||||
}
|
||||
};
|
||||
@@ -275,10 +280,10 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
'Async Matchers must be added in a before function or a spec'
|
||||
);
|
||||
}
|
||||
var customAsyncMatchers =
|
||||
const customAsyncMatchers =
|
||||
runnableResources[currentRunnable().id].customAsyncMatchers;
|
||||
|
||||
for (var matcherName in matchersToAdd) {
|
||||
for (const matcherName in matchersToAdd) {
|
||||
customAsyncMatchers[matcherName] = matchersToAdd[matcherName];
|
||||
}
|
||||
};
|
||||
@@ -298,23 +303,25 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
j$.Expectation.addCoreMatchers(j$.matchers);
|
||||
j$.Expectation.addAsyncCoreMatchers(j$.asyncMatchers);
|
||||
|
||||
var nextSpecId = 0;
|
||||
var getNextSpecId = function() {
|
||||
let nextSpecId = 0;
|
||||
|
||||
function getNextSpecId() {
|
||||
return 'spec' + nextSpecId++;
|
||||
};
|
||||
}
|
||||
|
||||
var nextSuiteId = 0;
|
||||
var getNextSuiteId = function() {
|
||||
let nextSuiteId = 0;
|
||||
|
||||
function getNextSuiteId() {
|
||||
return 'suite' + nextSuiteId++;
|
||||
};
|
||||
}
|
||||
|
||||
var makePrettyPrinter = function() {
|
||||
var customObjectFormatters =
|
||||
function makePrettyPrinter() {
|
||||
const customObjectFormatters =
|
||||
runnableResources[currentRunnable().id].customObjectFormatters;
|
||||
return j$.makePrettyPrinter(customObjectFormatters);
|
||||
};
|
||||
}
|
||||
|
||||
var makeMatchersUtil = function() {
|
||||
function makeMatchersUtil() {
|
||||
const cr = currentRunnable();
|
||||
|
||||
if (cr) {
|
||||
@@ -327,7 +334,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
} else {
|
||||
return new j$.MatchersUtil({ pp: j$.basicPrettyPrinter_ });
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const expectationFactory = function(actual, spec) {
|
||||
return j$.Expectation.factory({
|
||||
@@ -360,7 +367,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
}
|
||||
|
||||
function recordLateExpectation(runable, runableType, result) {
|
||||
var delayedExpectationResult = {};
|
||||
const delayedExpectationResult = {};
|
||||
Object.keys(result).forEach(function(k) {
|
||||
delayedExpectationResult[k] = result[k];
|
||||
});
|
||||
@@ -430,8 +437,8 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
return asyncExpectationFactory(actual, suite, 'Spec');
|
||||
};
|
||||
|
||||
var defaultResourcesForRunnable = function(id, parentRunnableId) {
|
||||
var resources = {
|
||||
function defaultResourcesForRunnable(id, parentRunnableId) {
|
||||
const resources = {
|
||||
spies: [],
|
||||
customEqualityTesters: [],
|
||||
customMatchers: {},
|
||||
@@ -462,16 +469,16 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
}
|
||||
|
||||
runnableResources[id] = resources;
|
||||
};
|
||||
}
|
||||
|
||||
var clearResourcesForRunnable = function(id) {
|
||||
function clearResourcesForRunnable(id) {
|
||||
spyRegistry.clearSpies();
|
||||
delete runnableResources[id];
|
||||
};
|
||||
}
|
||||
|
||||
var beforeAndAfterFns = function(targetSuite) {
|
||||
function beforeAndAfterFns(targetSuite) {
|
||||
return function() {
|
||||
var befores = [],
|
||||
let befores = [],
|
||||
afters = [],
|
||||
suite = targetSuite;
|
||||
|
||||
@@ -487,17 +494,17 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
afters: afters
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
var getSpecName = function(spec, suite) {
|
||||
var fullName = [spec.description],
|
||||
function getSpecName(spec, suite) {
|
||||
const fullName = [spec.description],
|
||||
suiteFullName = suite.getFullName();
|
||||
|
||||
if (suiteFullName !== '') {
|
||||
fullName.unshift(suiteFullName);
|
||||
}
|
||||
return fullName.join(' ');
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Causes a deprecation warning to be logged to the console and reported to
|
||||
@@ -522,11 +529,11 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
* @param {Object} [options] Optional extra options, as described above
|
||||
*/
|
||||
this.deprecated = function(deprecation, options) {
|
||||
var runnable = currentRunnable() || topSuite;
|
||||
const runnable = currentRunnable() || topSuite;
|
||||
deprecator.addDeprecationWarning(runnable, deprecation, options);
|
||||
};
|
||||
|
||||
var queueRunnerFactory = function(options, args) {
|
||||
function queueRunnerFactory(options, args) {
|
||||
if (options.isLeaf) {
|
||||
// A spec
|
||||
options.SkipPolicy = j$.CompleteOnFirstErrorSkipPolicy;
|
||||
@@ -557,9 +564,9 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
options.deprecated = self.deprecated;
|
||||
|
||||
new j$.QueueRunner(options).execute(args);
|
||||
};
|
||||
}
|
||||
|
||||
var topSuite = new j$.Suite({
|
||||
topSuite = new j$.Suite({
|
||||
id: getNextSuiteId(),
|
||||
description: 'Jasmine__TopLevel__Suite',
|
||||
expectationFactory: expectationFactory,
|
||||
@@ -567,7 +574,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
autoCleanClosures: config.autoCleanClosures,
|
||||
onLateError: recordLateError
|
||||
});
|
||||
var deprecator = new j$.Deprecator(topSuite);
|
||||
deprecator = new j$.Deprecator(topSuite);
|
||||
currentDeclarationSuite = topSuite;
|
||||
|
||||
/**
|
||||
@@ -587,7 +594,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
* @interface Reporter
|
||||
* @see custom_reporter
|
||||
*/
|
||||
var reporter = new j$.ReportDispatcher(
|
||||
reporter = new j$.ReportDispatcher(
|
||||
[
|
||||
/**
|
||||
* `jasmineStarted` is called after all of the specs have been loaded, but just before execution starts.
|
||||
@@ -705,12 +712,12 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
}
|
||||
}
|
||||
|
||||
var order = new j$.Order({
|
||||
const order = new j$.Order({
|
||||
random: config.random,
|
||||
seed: config.seed
|
||||
});
|
||||
|
||||
var processor = new j$.TreeProcessor({
|
||||
const processor = new j$.TreeProcessor({
|
||||
tree: topSuite,
|
||||
runnableIds: runnablesToRun,
|
||||
queueRunnerFactory: queueRunnerFactory,
|
||||
@@ -756,7 +763,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var jasmineTimer = new j$.Timer();
|
||||
const jasmineTimer = new j$.Timer();
|
||||
jasmineTimer.start();
|
||||
|
||||
return new Promise(function(resolve) {
|
||||
@@ -793,7 +800,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
|
||||
clearResourcesForRunnable(topSuite.id);
|
||||
currentlyExecutingSuites.pop();
|
||||
var overallStatus, incompleteReason;
|
||||
let overallStatus, incompleteReason;
|
||||
|
||||
if (
|
||||
hasFailures ||
|
||||
@@ -915,9 +922,9 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
reporter.clearReporters();
|
||||
};
|
||||
|
||||
var spyFactory = new j$.SpyFactory(
|
||||
const spyFactory = new j$.SpyFactory(
|
||||
function getCustomStrategies() {
|
||||
var runnable = currentRunnable();
|
||||
const runnable = currentRunnable();
|
||||
|
||||
if (runnable) {
|
||||
return runnableResources[runnable.id].customSpyStrategies;
|
||||
@@ -926,7 +933,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
return {};
|
||||
},
|
||||
function getDefaultStrategyFn() {
|
||||
var runnable = currentRunnable();
|
||||
const runnable = currentRunnable();
|
||||
|
||||
if (runnable) {
|
||||
return runnableResources[runnable.id].defaultStrategyFn;
|
||||
@@ -937,7 +944,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
makeMatchersUtil
|
||||
);
|
||||
|
||||
var spyRegistry = new j$.SpyRegistry({
|
||||
spyRegistry = new j$.SpyRegistry({
|
||||
currentSpies: function() {
|
||||
if (!currentRunnable()) {
|
||||
throw new Error(
|
||||
@@ -989,24 +996,24 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
return spyFactory.createSpyObj(baseName, methodNames, propertyNames);
|
||||
};
|
||||
|
||||
var ensureIsFunction = function(fn, caller) {
|
||||
function ensureIsFunction(fn, caller) {
|
||||
if (!j$.isFunction_(fn)) {
|
||||
throw new Error(
|
||||
caller + ' expects a function argument; received ' + j$.getType_(fn)
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var ensureIsFunctionOrAsync = function(fn, caller) {
|
||||
function ensureIsFunctionOrAsync(fn, caller) {
|
||||
if (!j$.isFunction_(fn) && !j$.isAsyncFunction_(fn)) {
|
||||
throw new Error(
|
||||
caller + ' expects a function argument; received ' + j$.getType_(fn)
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function ensureIsNotNested(method) {
|
||||
var runnable = currentRunnable();
|
||||
const runnable = currentRunnable();
|
||||
if (runnable !== null && runnable !== undefined) {
|
||||
throw new Error(
|
||||
"'" + method + "' should only be used in 'describe' function"
|
||||
@@ -1014,8 +1021,8 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
}
|
||||
}
|
||||
|
||||
var suiteFactory = function(description) {
|
||||
var suite = new j$.Suite({
|
||||
function suiteFactory(description) {
|
||||
return new j$.Suite({
|
||||
id: getNextSuiteId(),
|
||||
description: description,
|
||||
parentSuite: currentDeclarationSuite,
|
||||
@@ -1026,14 +1033,12 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
autoCleanClosures: config.autoCleanClosures,
|
||||
onLateError: recordLateError
|
||||
});
|
||||
|
||||
return suite;
|
||||
};
|
||||
}
|
||||
|
||||
this.describe = function(description, specDefinitions) {
|
||||
ensureIsNotNested('describe');
|
||||
ensureIsFunction(specDefinitions, 'describe');
|
||||
var suite = suiteFactory(description);
|
||||
const suite = suiteFactory(description);
|
||||
if (specDefinitions.length > 0) {
|
||||
throw new Error('describe does not expect any arguments');
|
||||
}
|
||||
@@ -1053,18 +1058,16 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
this.xdescribe = function(description, specDefinitions) {
|
||||
ensureIsNotNested('xdescribe');
|
||||
ensureIsFunction(specDefinitions, 'xdescribe');
|
||||
var suite = suiteFactory(description);
|
||||
const suite = suiteFactory(description);
|
||||
suite.exclude();
|
||||
addSpecsToSuite(suite, specDefinitions);
|
||||
return suite.metadata;
|
||||
};
|
||||
|
||||
var focusedRunnables = [];
|
||||
|
||||
this.fdescribe = function(description, specDefinitions) {
|
||||
ensureIsNotNested('fdescribe');
|
||||
ensureIsFunction(specDefinitions, 'fdescribe');
|
||||
var suite = suiteFactory(description);
|
||||
const suite = suiteFactory(description);
|
||||
suite.isFocused = true;
|
||||
|
||||
focusedRunnables.push(suite.id);
|
||||
@@ -1075,11 +1078,11 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
};
|
||||
|
||||
function addSpecsToSuite(suite, specDefinitions) {
|
||||
var parentSuite = currentDeclarationSuite;
|
||||
const parentSuite = currentDeclarationSuite;
|
||||
parentSuite.addChild(suite);
|
||||
currentDeclarationSuite = suite;
|
||||
|
||||
var declarationError = null;
|
||||
let declarationError = null;
|
||||
try {
|
||||
specDefinitions();
|
||||
} catch (e) {
|
||||
@@ -1105,9 +1108,9 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
}
|
||||
|
||||
function unfocusAncestor() {
|
||||
var focusedAncestor = findFocusedAncestor(currentDeclarationSuite);
|
||||
const focusedAncestor = findFocusedAncestor(currentDeclarationSuite);
|
||||
if (focusedAncestor) {
|
||||
for (var i = 0; i < focusedRunnables.length; i++) {
|
||||
for (let i = 0; i < focusedRunnables.length; i++) {
|
||||
if (focusedRunnables[i] === focusedAncestor) {
|
||||
focusedRunnables.splice(i, 1);
|
||||
break;
|
||||
@@ -1116,9 +1119,9 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
}
|
||||
}
|
||||
|
||||
var specFactory = function(description, fn, suite, timeout) {
|
||||
const specFactory = function(description, fn, suite, timeout) {
|
||||
totalSpecsDefined++;
|
||||
var spec = new j$.Spec({
|
||||
const spec = new j$.Spec({
|
||||
id: getNextSpecId(),
|
||||
beforeAndAfterFns: beforeAndAfterFns(suite),
|
||||
expectationFactory: expectationFactory,
|
||||
@@ -1184,7 +1187,12 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
j$.util.validateTimeout(timeout);
|
||||
}
|
||||
|
||||
var spec = specFactory(description, fn, currentDeclarationSuite, timeout);
|
||||
const spec = specFactory(
|
||||
description,
|
||||
fn,
|
||||
currentDeclarationSuite,
|
||||
timeout
|
||||
);
|
||||
if (currentDeclarationSuite.markedExcluding) {
|
||||
spec.exclude();
|
||||
}
|
||||
@@ -1205,7 +1213,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
if (arguments.length > 1 && typeof fn !== 'undefined') {
|
||||
ensureIsFunctionOrAsync(fn, 'xit');
|
||||
}
|
||||
var spec = this.it_.apply(this, arguments);
|
||||
const spec = this.it_.apply(this, arguments);
|
||||
spec.exclude('Temporarily disabled with xit');
|
||||
return spec.metadata;
|
||||
};
|
||||
@@ -1217,7 +1225,12 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
if (timeout) {
|
||||
j$.util.validateTimeout(timeout);
|
||||
}
|
||||
var spec = specFactory(description, fn, currentDeclarationSuite, timeout);
|
||||
const spec = specFactory(
|
||||
description,
|
||||
fn,
|
||||
currentDeclarationSuite,
|
||||
timeout
|
||||
);
|
||||
currentDeclarationSuite.addChild(spec);
|
||||
focusedRunnables.push(spec.id);
|
||||
unfocusAncestor();
|
||||
@@ -1259,7 +1272,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
};
|
||||
|
||||
this.debugLog = function(msg) {
|
||||
var maybeSpec = currentRunnable();
|
||||
const maybeSpec = currentRunnable();
|
||||
|
||||
if (!maybeSpec || !maybeSpec.debugLog) {
|
||||
throw new Error("'debugLog' was called when there was no current spec");
|
||||
@@ -1346,7 +1359,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
};
|
||||
|
||||
this.pending = function(message) {
|
||||
var fullMessage = j$.Spec.pendingSpecExceptionMessage;
|
||||
let fullMessage = j$.Spec.pendingSpecExceptionMessage;
|
||||
if (message) {
|
||||
fullMessage += message;
|
||||
}
|
||||
@@ -1360,7 +1373,7 @@ getJasmineRequireObj().Env = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var message = 'Failed';
|
||||
let message = 'Failed';
|
||||
if (error) {
|
||||
message += ': ';
|
||||
if (error.message) {
|
||||
|
||||
@@ -22,15 +22,13 @@ getJasmineRequireObj().ExpectationFilterChain = function() {
|
||||
};
|
||||
|
||||
ExpectationFilterChain.prototype.modifyFailureMessage = function(msg) {
|
||||
var result = this.callFirst_('modifyFailureMessage', arguments).result;
|
||||
const result = this.callFirst_('modifyFailureMessage', arguments).result;
|
||||
return result || msg;
|
||||
};
|
||||
|
||||
ExpectationFilterChain.prototype.callFirst_ = function(fname, args) {
|
||||
var prevResult;
|
||||
|
||||
if (this.prev_) {
|
||||
prevResult = this.prev_.callFirst_(fname, args);
|
||||
const prevResult = this.prev_.callFirst_(fname, args);
|
||||
|
||||
if (prevResult.found) {
|
||||
return prevResult;
|
||||
|
||||
@@ -19,20 +19,20 @@ getJasmineRequireObj().Expector = function(j$) {
|
||||
|
||||
this.args.unshift(this.actual);
|
||||
|
||||
var matcher = matcherFactory(this.matchersUtil);
|
||||
const matcher = matcherFactory(this.matchersUtil);
|
||||
|
||||
var comparisonFunc = this.filters.selectComparisonFunc(matcher);
|
||||
const comparisonFunc = this.filters.selectComparisonFunc(matcher);
|
||||
return comparisonFunc || matcher.compare;
|
||||
};
|
||||
|
||||
Expector.prototype.buildMessage = function(result) {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
if (result.pass) {
|
||||
return '';
|
||||
}
|
||||
|
||||
var msg = this.filters.buildFailureMessage(
|
||||
const msg = this.filters.buildFailureMessage(
|
||||
result,
|
||||
this.matcherName,
|
||||
this.args,
|
||||
@@ -43,7 +43,7 @@ getJasmineRequireObj().Expector = function(j$) {
|
||||
|
||||
function defaultMessage() {
|
||||
if (!result.message) {
|
||||
var args = self.args.slice();
|
||||
const args = self.args.slice();
|
||||
args.unshift(false);
|
||||
args.unshift(self.matcherName);
|
||||
return self.matchersUtil.buildFailureMessage.apply(
|
||||
@@ -59,7 +59,7 @@ getJasmineRequireObj().Expector = function(j$) {
|
||||
};
|
||||
|
||||
Expector.prototype.compare = function(matcherName, matcherFactory, args) {
|
||||
var matcherCompare = this.instantiateMatcher(
|
||||
const matcherCompare = this.instantiateMatcher(
|
||||
matcherName,
|
||||
matcherFactory,
|
||||
args
|
||||
@@ -68,13 +68,13 @@ getJasmineRequireObj().Expector = function(j$) {
|
||||
};
|
||||
|
||||
Expector.prototype.addFilter = function(filter) {
|
||||
var result = Object.create(this);
|
||||
const result = Object.create(this);
|
||||
result.filters = this.filters.addFilter(filter);
|
||||
return result;
|
||||
};
|
||||
|
||||
Expector.prototype.processResult = function(result, errorForStack) {
|
||||
var message = this.buildMessage(result);
|
||||
const message = this.buildMessage(result);
|
||||
|
||||
if (this.expected.length === 1) {
|
||||
this.expected = this.expected[0];
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
getJasmineRequireObj().GlobalErrors = function(j$) {
|
||||
function GlobalErrors(global) {
|
||||
var handlers = [];
|
||||
const handlers = [];
|
||||
global = global || j$.getGlobal();
|
||||
|
||||
var onerror = function onerror() {
|
||||
var handler = handlers[handlers.length - 1];
|
||||
const onerror = function onerror() {
|
||||
const handler = handlers[handlers.length - 1];
|
||||
|
||||
if (handler) {
|
||||
handler.apply(null, Array.prototype.slice.call(arguments, 0));
|
||||
@@ -17,11 +17,11 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
|
||||
this.jasmineHandlers = {};
|
||||
this.installOne_ = function installOne_(errorType, jasmineMessage) {
|
||||
function taggedOnError(error) {
|
||||
var substituteMsg;
|
||||
|
||||
if (j$.isError_(error)) {
|
||||
error.jasmineMessage = jasmineMessage + ': ' + error;
|
||||
} else {
|
||||
let substituteMsg;
|
||||
|
||||
if (error) {
|
||||
substituteMsg = jasmineMessage + ': ' + error;
|
||||
} else {
|
||||
@@ -40,7 +40,7 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
|
||||
error = new Error(substituteMsg);
|
||||
}
|
||||
|
||||
var handler = handlers[handlers.length - 1];
|
||||
const handler = handlers[handlers.length - 1];
|
||||
|
||||
if (handler) {
|
||||
handler(error);
|
||||
@@ -56,14 +56,14 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
|
||||
global.process.on(errorType, taggedOnError);
|
||||
|
||||
this.uninstall = function uninstall() {
|
||||
var errorTypes = Object.keys(this.originalHandlers);
|
||||
for (var iType = 0; iType < errorTypes.length; iType++) {
|
||||
var errorType = errorTypes[iType];
|
||||
const errorTypes = Object.keys(this.originalHandlers);
|
||||
for (const errorType of errorTypes) {
|
||||
global.process.removeListener(
|
||||
errorType,
|
||||
this.jasmineHandlers[errorType]
|
||||
);
|
||||
for (var i = 0; i < this.originalHandlers[errorType].length; i++) {
|
||||
|
||||
for (let i = 0; i < this.originalHandlers[errorType].length; i++) {
|
||||
global.process.on(errorType, this.originalHandlers[errorType][i]);
|
||||
}
|
||||
delete this.originalHandlers[errorType];
|
||||
@@ -81,10 +81,12 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
|
||||
this.installOne_('uncaughtException', 'Uncaught exception');
|
||||
this.installOne_('unhandledRejection', 'Unhandled promise rejection');
|
||||
} else {
|
||||
var originalHandler = global.onerror;
|
||||
const originalHandler = global.onerror;
|
||||
global.onerror = onerror;
|
||||
|
||||
var browserRejectionHandler = function browserRejectionHandler(event) {
|
||||
const browserRejectionHandler = function browserRejectionHandler(
|
||||
event
|
||||
) {
|
||||
if (j$.isError_(event.reason)) {
|
||||
event.reason.jasmineMessage =
|
||||
'Unhandled promise rejection: ' + event.reason;
|
||||
|
||||
@@ -6,8 +6,8 @@ getJasmineRequireObj().JsApiReporter = function(j$) {
|
||||
* @hideconstructor
|
||||
*/
|
||||
function JsApiReporter(options) {
|
||||
var timer = options.timer || new j$.Timer(),
|
||||
status = 'loaded';
|
||||
const timer = options.timer || new j$.Timer();
|
||||
let status = 'loaded';
|
||||
|
||||
this.started = false;
|
||||
this.finished = false;
|
||||
@@ -19,7 +19,7 @@ getJasmineRequireObj().JsApiReporter = function(j$) {
|
||||
timer.start();
|
||||
};
|
||||
|
||||
var executionTime;
|
||||
let executionTime;
|
||||
|
||||
this.jasmineDone = function(runDetails) {
|
||||
this.finished = true;
|
||||
@@ -39,7 +39,7 @@ getJasmineRequireObj().JsApiReporter = function(j$) {
|
||||
return status;
|
||||
};
|
||||
|
||||
var suites = [],
|
||||
const suites = [],
|
||||
suites_hash = {};
|
||||
|
||||
this.suiteStarted = function(result) {
|
||||
@@ -81,7 +81,7 @@ getJasmineRequireObj().JsApiReporter = function(j$) {
|
||||
return suites_hash;
|
||||
};
|
||||
|
||||
var specs = [];
|
||||
const specs = [];
|
||||
|
||||
this.specDone = function(result) {
|
||||
specs.push(result);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
getJasmineRequireObj().MockDate = function(j$) {
|
||||
function MockDate(global) {
|
||||
var self = this;
|
||||
var currentTime = 0;
|
||||
const self = this;
|
||||
let currentTime = 0;
|
||||
|
||||
if (!global || !global.Date) {
|
||||
self.install = function() {};
|
||||
@@ -10,7 +10,7 @@ getJasmineRequireObj().MockDate = function(j$) {
|
||||
return self;
|
||||
}
|
||||
|
||||
var GlobalDate = global.Date;
|
||||
const GlobalDate = global.Date;
|
||||
|
||||
self.install = function(mockDate) {
|
||||
if (mockDate instanceof GlobalDate) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
getJasmineRequireObj().Order = function() {
|
||||
function Order(options) {
|
||||
this.random = 'random' in options ? options.random : true;
|
||||
var seed = (this.seed = options.seed || generateSeed());
|
||||
const seed = (this.seed = options.seed || generateSeed());
|
||||
this.sort = this.random ? randomOrder : naturalOrder;
|
||||
|
||||
function naturalOrder(items) {
|
||||
@@ -9,7 +9,7 @@ getJasmineRequireObj().Order = function() {
|
||||
}
|
||||
|
||||
function randomOrder(items) {
|
||||
var copy = items.slice();
|
||||
const copy = items.slice();
|
||||
copy.sort(function(a, b) {
|
||||
return jenkinsHash(seed + a.id) - jenkinsHash(seed + b.id);
|
||||
});
|
||||
@@ -26,7 +26,7 @@ getJasmineRequireObj().Order = function() {
|
||||
// used in conjunction with a seed
|
||||
|
||||
function jenkinsHash(key) {
|
||||
var hash, i;
|
||||
let hash, i;
|
||||
for (hash = i = 0; i < key.length; ++i) {
|
||||
hash += key.charCodeAt(i);
|
||||
hash += hash << 10;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
getJasmineRequireObj().QueueRunner = function(j$) {
|
||||
var nextid = 1;
|
||||
let nextid = 1;
|
||||
|
||||
function StopExecutionError() {}
|
||||
StopExecutionError.prototype = new Error();
|
||||
j$.StopExecutionError = StopExecutionError;
|
||||
|
||||
function once(fn, onTwice) {
|
||||
var called = false;
|
||||
let called = false;
|
||||
return function(arg) {
|
||||
if (called) {
|
||||
if (onTwice) {
|
||||
@@ -66,7 +66,7 @@ getJasmineRequireObj().QueueRunner = function(j$) {
|
||||
}
|
||||
|
||||
QueueRunner.prototype.execute = function() {
|
||||
var self = this;
|
||||
const self = this;
|
||||
this.handleFinalError = function(message, source, lineno, colno, error) {
|
||||
// Older browsers would send the error as the first parameter. HTML5
|
||||
// specifies the the five parameters above. The error instance should
|
||||
@@ -92,57 +92,57 @@ getJasmineRequireObj().QueueRunner = function(j$) {
|
||||
};
|
||||
|
||||
QueueRunner.prototype.attempt = function attempt(iterativeIndex) {
|
||||
var self = this,
|
||||
completedSynchronously = true,
|
||||
handleError = function handleError(error) {
|
||||
// TODO probably shouldn't next() right away here.
|
||||
// That makes debugging async failures much more confusing.
|
||||
onException(error);
|
||||
let timeoutId;
|
||||
let timedOut;
|
||||
const self = this;
|
||||
let completedSynchronously = true;
|
||||
function handleError(error) {
|
||||
// TODO probably shouldn't next() right away here.
|
||||
// That makes debugging async failures much more confusing.
|
||||
onException(error);
|
||||
}
|
||||
const cleanup = once(function cleanup() {
|
||||
if (timeoutId !== void 0) {
|
||||
self.clearTimeout(timeoutId);
|
||||
}
|
||||
self.globalErrors.popListener(handleError);
|
||||
});
|
||||
const next = once(
|
||||
function next(err) {
|
||||
cleanup();
|
||||
|
||||
if (typeof err !== 'undefined') {
|
||||
if (!(err instanceof StopExecutionError) && !err.jasmineMessage) {
|
||||
self.fail(err);
|
||||
}
|
||||
self.recordError_(iterativeIndex);
|
||||
}
|
||||
|
||||
function runNext() {
|
||||
self.run(self.nextFnIx_(iterativeIndex));
|
||||
}
|
||||
|
||||
if (completedSynchronously) {
|
||||
self.setTimeout(runNext);
|
||||
} else {
|
||||
runNext();
|
||||
}
|
||||
},
|
||||
cleanup = once(function cleanup() {
|
||||
if (timeoutId !== void 0) {
|
||||
self.clearTimeout(timeoutId);
|
||||
function() {
|
||||
try {
|
||||
if (!timedOut) {
|
||||
self.onMultipleDone();
|
||||
}
|
||||
} catch (error) {
|
||||
// Any error we catch here is probably due to a bug in Jasmine,
|
||||
// and it's not likely to end up anywhere useful if we let it
|
||||
// propagate. Log it so it can at least show up when debugging.
|
||||
console.error(error);
|
||||
}
|
||||
self.globalErrors.popListener(handleError);
|
||||
}),
|
||||
next = once(
|
||||
function next(err) {
|
||||
cleanup();
|
||||
|
||||
if (typeof err !== 'undefined') {
|
||||
if (!(err instanceof StopExecutionError) && !err.jasmineMessage) {
|
||||
self.fail(err);
|
||||
}
|
||||
self.recordError_(iterativeIndex);
|
||||
}
|
||||
|
||||
function runNext() {
|
||||
self.run(self.nextFnIx_(iterativeIndex));
|
||||
}
|
||||
|
||||
if (completedSynchronously) {
|
||||
self.setTimeout(runNext);
|
||||
} else {
|
||||
runNext();
|
||||
}
|
||||
},
|
||||
function() {
|
||||
try {
|
||||
if (!timedOut) {
|
||||
self.onMultipleDone();
|
||||
}
|
||||
} catch (error) {
|
||||
// Any error we catch here is probably due to a bug in Jasmine,
|
||||
// and it's not likely to end up anywhere useful if we let it
|
||||
// propagate. Log it so it can at least show up when debugging.
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
),
|
||||
timedOut = false,
|
||||
queueableFn = self.queueableFns[iterativeIndex],
|
||||
timeoutId,
|
||||
maybeThenable;
|
||||
}
|
||||
);
|
||||
timedOut = false;
|
||||
const queueableFn = self.queueableFns[iterativeIndex];
|
||||
|
||||
next.fail = function nextFail() {
|
||||
self.fail.apply(null, arguments);
|
||||
@@ -153,10 +153,11 @@ getJasmineRequireObj().QueueRunner = function(j$) {
|
||||
self.globalErrors.pushListener(handleError);
|
||||
|
||||
if (queueableFn.timeout !== undefined) {
|
||||
var timeoutInterval = queueableFn.timeout || j$.DEFAULT_TIMEOUT_INTERVAL;
|
||||
const timeoutInterval =
|
||||
queueableFn.timeout || j$.DEFAULT_TIMEOUT_INTERVAL;
|
||||
timeoutId = self.setTimeout(function() {
|
||||
timedOut = true;
|
||||
var error = new Error(
|
||||
const error = new Error(
|
||||
'Timeout - Async function did not complete within ' +
|
||||
timeoutInterval +
|
||||
'ms ' +
|
||||
@@ -173,6 +174,8 @@ getJasmineRequireObj().QueueRunner = function(j$) {
|
||||
}
|
||||
|
||||
try {
|
||||
let maybeThenable;
|
||||
|
||||
if (queueableFn.fn.length === 0) {
|
||||
maybeThenable = queueableFn.fn.call(self.userContext);
|
||||
|
||||
@@ -210,16 +213,15 @@ getJasmineRequireObj().QueueRunner = function(j$) {
|
||||
};
|
||||
|
||||
QueueRunner.prototype.run = function(recursiveIndex) {
|
||||
var length = this.queueableFns.length,
|
||||
self = this,
|
||||
iterativeIndex;
|
||||
const length = this.queueableFns.length;
|
||||
const self = this;
|
||||
|
||||
for (
|
||||
iterativeIndex = recursiveIndex;
|
||||
let iterativeIndex = recursiveIndex;
|
||||
iterativeIndex < length;
|
||||
iterativeIndex = this.nextFnIx_(iterativeIndex)
|
||||
) {
|
||||
var result = this.attempt(iterativeIndex);
|
||||
const result = this.attempt(iterativeIndex);
|
||||
|
||||
if (!result.completedSynchronously) {
|
||||
return;
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
getJasmineRequireObj().ReportDispatcher = function(j$) {
|
||||
function ReportDispatcher(methods, queueRunnerFactory, onLateError) {
|
||||
var dispatchedMethods = methods || [];
|
||||
const dispatchedMethods = methods || [];
|
||||
|
||||
for (var i = 0; i < dispatchedMethods.length; i++) {
|
||||
var method = dispatchedMethods[i];
|
||||
for (const method of dispatchedMethods) {
|
||||
this[method] = (function(m) {
|
||||
return function() {
|
||||
dispatch(m, arguments);
|
||||
@@ -11,8 +10,8 @@ getJasmineRequireObj().ReportDispatcher = function(j$) {
|
||||
})(method);
|
||||
}
|
||||
|
||||
var reporters = [];
|
||||
var fallbackReporter = null;
|
||||
let reporters = [];
|
||||
let fallbackReporter = null;
|
||||
|
||||
this.addReporter = function(reporter) {
|
||||
reporters.push(reporter);
|
||||
@@ -32,11 +31,10 @@ getJasmineRequireObj().ReportDispatcher = function(j$) {
|
||||
if (reporters.length === 0 && fallbackReporter !== null) {
|
||||
reporters.push(fallbackReporter);
|
||||
}
|
||||
var onComplete = args[args.length - 1];
|
||||
const onComplete = args[args.length - 1];
|
||||
args = j$.util.argsToArray(args).splice(0, args.length - 1);
|
||||
var fns = [];
|
||||
for (var i = 0; i < reporters.length; i++) {
|
||||
var reporter = reporters[i];
|
||||
const fns = [];
|
||||
for (const reporter of reporters) {
|
||||
addFn(fns, reporter, method, args);
|
||||
}
|
||||
|
||||
@@ -56,12 +54,12 @@ getJasmineRequireObj().ReportDispatcher = function(j$) {
|
||||
}
|
||||
|
||||
function addFn(fns, reporter, method, args) {
|
||||
var fn = reporter[method];
|
||||
const fn = reporter[method];
|
||||
if (!fn) {
|
||||
return;
|
||||
}
|
||||
|
||||
var thisArgs = j$.util.cloneArgs(args);
|
||||
const thisArgs = j$.util.cloneArgs(args);
|
||||
if (fn.length <= 1) {
|
||||
fns.push({
|
||||
fn: function() {
|
||||
|
||||
@@ -100,16 +100,16 @@ getJasmineRequireObj().Spec = function(j$) {
|
||||
};
|
||||
|
||||
Spec.prototype.execute = function(onComplete, excluded, failSpecWithNoExp) {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
var onStart = {
|
||||
const onStart = {
|
||||
fn: function(done) {
|
||||
self.timer.start();
|
||||
self.onStart(self, done);
|
||||
}
|
||||
};
|
||||
|
||||
var complete = {
|
||||
const complete = {
|
||||
fn: function(done) {
|
||||
if (self.autoCleanClosures) {
|
||||
self.queueableFn.fn = null;
|
||||
@@ -126,9 +126,9 @@ getJasmineRequireObj().Spec = function(j$) {
|
||||
type: 'specCleanup'
|
||||
};
|
||||
|
||||
var fns = this.beforeAndAfterFns();
|
||||
const fns = this.beforeAndAfterFns();
|
||||
|
||||
var runnerConfig = {
|
||||
const runnerConfig = {
|
||||
isLeaf: true,
|
||||
queueableFns: [...fns.befores, this.queueableFn, ...fns.afters],
|
||||
onException: function() {
|
||||
@@ -289,8 +289,8 @@ getJasmineRequireObj().Spec = function(j$) {
|
||||
});
|
||||
};
|
||||
|
||||
var extractCustomPendingMessage = function(e) {
|
||||
var fullMessage = e.toString(),
|
||||
const extractCustomPendingMessage = function(e) {
|
||||
const fullMessage = e.toString(),
|
||||
boilerplateStart = fullMessage.indexOf(Spec.pendingSpecExceptionMessage),
|
||||
boilerplateEnd =
|
||||
boilerplateStart + Spec.pendingSpecExceptionMessage.length;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
getJasmineRequireObj().Spy = function(j$) {
|
||||
var nextOrder = (function() {
|
||||
var order = 0;
|
||||
const nextOrder = (function() {
|
||||
let order = 0;
|
||||
|
||||
return function() {
|
||||
return order++;
|
||||
@@ -15,9 +15,29 @@ getJasmineRequireObj().Spy = function(j$) {
|
||||
* @hideconstructor
|
||||
*/
|
||||
function Spy(name, matchersUtil, optionals) {
|
||||
const spy = function(context, args, invokeNew) {
|
||||
/**
|
||||
* @name Spy.callData
|
||||
* @property {object} object - `this` context for the invocation.
|
||||
* @property {number} invocationOrder - Order of the invocation.
|
||||
* @property {Array} args - The arguments passed for this invocation.
|
||||
* @property returnValue - The value that was returned from this invocation.
|
||||
*/
|
||||
const callData = {
|
||||
object: context,
|
||||
invocationOrder: nextOrder(),
|
||||
args: Array.prototype.slice.apply(args)
|
||||
};
|
||||
|
||||
callTracker.track(callData);
|
||||
const returnValue = strategyDispatcher.exec(context, args, invokeNew);
|
||||
callData.returnValue = returnValue;
|
||||
|
||||
return returnValue;
|
||||
};
|
||||
const { originalFn, customStrategies, defaultStrategyFn } = optionals || {};
|
||||
|
||||
var numArgs = typeof originalFn === 'function' ? originalFn.length : 0,
|
||||
const numArgs = typeof originalFn === 'function' ? originalFn.length : 0,
|
||||
wrapper = makeFunc(numArgs, function(context, args, invokeNew) {
|
||||
return spy(context, args, invokeNew);
|
||||
}),
|
||||
@@ -32,27 +52,7 @@ getJasmineRequireObj().Spy = function(j$) {
|
||||
},
|
||||
matchersUtil
|
||||
),
|
||||
callTracker = new j$.CallTracker(),
|
||||
spy = function(context, args, invokeNew) {
|
||||
/**
|
||||
* @name Spy.callData
|
||||
* @property {object} object - `this` context for the invocation.
|
||||
* @property {number} invocationOrder - Order of the invocation.
|
||||
* @property {Array} args - The arguments passed for this invocation.
|
||||
* @property returnValue - The value that was returned from this invocation.
|
||||
*/
|
||||
var callData = {
|
||||
object: context,
|
||||
invocationOrder: nextOrder(),
|
||||
args: Array.prototype.slice.apply(args)
|
||||
};
|
||||
|
||||
callTracker.track(callData);
|
||||
var returnValue = strategyDispatcher.exec(context, args, invokeNew);
|
||||
callData.returnValue = returnValue;
|
||||
|
||||
return returnValue;
|
||||
};
|
||||
callTracker = new j$.CallTracker();
|
||||
|
||||
function makeFunc(length, fn) {
|
||||
switch (length) {
|
||||
@@ -99,7 +99,7 @@ getJasmineRequireObj().Spy = function(j$) {
|
||||
}
|
||||
}
|
||||
|
||||
for (var prop in originalFn) {
|
||||
for (const prop in originalFn) {
|
||||
if (prop === 'and' || prop === 'calls') {
|
||||
throw new Error(
|
||||
"Jasmine spies would overwrite the 'and' and 'calls' properties on the object being spied upon"
|
||||
@@ -144,15 +144,15 @@ getJasmineRequireObj().Spy = function(j$) {
|
||||
}
|
||||
|
||||
function SpyStrategyDispatcher(strategyArgs, matchersUtil) {
|
||||
var baseStrategy = new j$.SpyStrategy(strategyArgs);
|
||||
var argsStrategies = new StrategyDict(function() {
|
||||
const baseStrategy = new j$.SpyStrategy(strategyArgs);
|
||||
const argsStrategies = new StrategyDict(function() {
|
||||
return new j$.SpyStrategy(strategyArgs);
|
||||
}, matchersUtil);
|
||||
|
||||
this.and = baseStrategy;
|
||||
|
||||
this.exec = function(spy, args, invokeNew) {
|
||||
var strategy = argsStrategies.get(args);
|
||||
let strategy = argsStrategies.get(args);
|
||||
|
||||
if (!strategy) {
|
||||
if (argsStrategies.any() && !baseStrategy.isConfigured()) {
|
||||
@@ -187,7 +187,7 @@ getJasmineRequireObj().Spy = function(j$) {
|
||||
};
|
||||
|
||||
StrategyDict.prototype.getOrCreate = function(args) {
|
||||
var strategy = this.get(args);
|
||||
let strategy = this.get(args);
|
||||
|
||||
if (!strategy) {
|
||||
strategy = this.strategyFactory();
|
||||
@@ -201,9 +201,7 @@ getJasmineRequireObj().Spy = function(j$) {
|
||||
};
|
||||
|
||||
StrategyDict.prototype.get = function(args) {
|
||||
var i;
|
||||
|
||||
for (i = 0; i < this.strategies.length; i++) {
|
||||
for (let i = 0; i < this.strategies.length; i++) {
|
||||
if (this.matchersUtil.equals(args, this.strategies[i].args)) {
|
||||
return this.strategies[i].strategy;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ getJasmineRequireObj().SpyFactory = function(j$) {
|
||||
getDefaultStrategyFn,
|
||||
getMatchersUtil
|
||||
) {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
this.createSpy = function(name, originalFn) {
|
||||
return j$.Spy(name, getMatchersUtil(), {
|
||||
@@ -15,7 +15,7 @@ getJasmineRequireObj().SpyFactory = function(j$) {
|
||||
};
|
||||
|
||||
this.createSpyObj = function(baseName, methodNames, propertyNames) {
|
||||
var baseNameIsCollection =
|
||||
const baseNameIsCollection =
|
||||
j$.isObject_(baseName) || j$.isArray_(baseName);
|
||||
|
||||
if (baseNameIsCollection) {
|
||||
@@ -24,22 +24,21 @@ getJasmineRequireObj().SpyFactory = function(j$) {
|
||||
baseName = 'unknown';
|
||||
}
|
||||
|
||||
var obj = {};
|
||||
var spy, descriptor;
|
||||
const obj = {};
|
||||
|
||||
var methods = normalizeKeyValues(methodNames);
|
||||
for (var i = 0; i < methods.length; i++) {
|
||||
spy = obj[methods[i][0]] = self.createSpy(
|
||||
const methods = normalizeKeyValues(methodNames);
|
||||
for (let i = 0; i < methods.length; i++) {
|
||||
const spy = (obj[methods[i][0]] = self.createSpy(
|
||||
baseName + '.' + methods[i][0]
|
||||
);
|
||||
));
|
||||
if (methods[i].length > 1) {
|
||||
spy.and.returnValue(methods[i][1]);
|
||||
}
|
||||
}
|
||||
|
||||
var properties = normalizeKeyValues(propertyNames);
|
||||
for (var i = 0; i < properties.length; i++) {
|
||||
descriptor = {
|
||||
const properties = normalizeKeyValues(propertyNames);
|
||||
for (let i = 0; i < properties.length; i++) {
|
||||
const descriptor = {
|
||||
enumerable: true,
|
||||
get: self.createSpy(baseName + '.' + properties[i][0] + '.get'),
|
||||
set: self.createSpy(baseName + '.' + properties[i][0] + '.set')
|
||||
@@ -60,13 +59,13 @@ getJasmineRequireObj().SpyFactory = function(j$) {
|
||||
}
|
||||
|
||||
function normalizeKeyValues(object) {
|
||||
var result = [];
|
||||
const result = [];
|
||||
if (j$.isArray_(object)) {
|
||||
for (var i = 0; i < object.length; i++) {
|
||||
for (let i = 0; i < object.length; i++) {
|
||||
result.push([object[i]]);
|
||||
}
|
||||
} else if (j$.isObject_(object)) {
|
||||
for (var key in object) {
|
||||
for (const key in object) {
|
||||
if (object.hasOwnProperty(key)) {
|
||||
result.push([key, object[key]]);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
var spyOnMsg = j$.formatErrorMsg('<spyOn>', 'spyOn(<object>, <methodName>)');
|
||||
var spyOnPropertyMsg = j$.formatErrorMsg(
|
||||
const spyOnMsg = j$.formatErrorMsg(
|
||||
'<spyOn>',
|
||||
'spyOn(<object>, <methodName>)'
|
||||
);
|
||||
const spyOnPropertyMsg = j$.formatErrorMsg(
|
||||
'<spyOnProperty>',
|
||||
'spyOnProperty(<object>, <propName>, [accessType])'
|
||||
);
|
||||
|
||||
function SpyRegistry(options) {
|
||||
options = options || {};
|
||||
var global = options.global || j$.getGlobal();
|
||||
var createSpy = options.createSpy;
|
||||
var currentSpies =
|
||||
const global = options.global || j$.getGlobal();
|
||||
const createSpy = options.createSpy;
|
||||
const currentSpies =
|
||||
options.currentSpies ||
|
||||
function() {
|
||||
return [];
|
||||
@@ -20,7 +23,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
};
|
||||
|
||||
this.spyOn = function(obj, methodName) {
|
||||
var getErrorMsg = spyOnMsg;
|
||||
const getErrorMsg = spyOnMsg;
|
||||
|
||||
if (j$.util.isUndefined(obj) || obj === null) {
|
||||
throw new Error(
|
||||
@@ -48,7 +51,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
}
|
||||
}
|
||||
|
||||
var descriptor = Object.getOwnPropertyDescriptor(obj, methodName);
|
||||
const descriptor = Object.getOwnPropertyDescriptor(obj, methodName);
|
||||
|
||||
if (descriptor && !(descriptor.writable || descriptor.set)) {
|
||||
throw new Error(
|
||||
@@ -56,9 +59,9 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var originalMethod = obj[methodName],
|
||||
spiedMethod = createSpy(methodName, originalMethod),
|
||||
restoreStrategy;
|
||||
const originalMethod = obj[methodName];
|
||||
const spiedMethod = createSpy(methodName, originalMethod);
|
||||
let restoreStrategy;
|
||||
|
||||
if (
|
||||
Object.prototype.hasOwnProperty.call(obj, methodName) ||
|
||||
@@ -85,7 +88,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
};
|
||||
|
||||
this.spyOnProperty = function(obj, propertyName, accessType) {
|
||||
var getErrorMsg = spyOnPropertyMsg;
|
||||
const getErrorMsg = spyOnPropertyMsg;
|
||||
|
||||
accessType = accessType || 'get';
|
||||
|
||||
@@ -103,7 +106,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
throw new Error(getErrorMsg('No property name supplied'));
|
||||
}
|
||||
|
||||
var descriptor = j$.util.getPropertyDescriptor(obj, propertyName);
|
||||
const descriptor = j$.util.getPropertyDescriptor(obj, propertyName);
|
||||
|
||||
if (!descriptor) {
|
||||
throw new Error(getErrorMsg(propertyName + ' property does not exist'));
|
||||
@@ -138,9 +141,9 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
}
|
||||
}
|
||||
|
||||
var originalDescriptor = j$.util.clone(descriptor),
|
||||
spy = createSpy(propertyName, descriptor[accessType]),
|
||||
restoreStrategy;
|
||||
const originalDescriptor = j$.util.clone(descriptor);
|
||||
const spy = createSpy(propertyName, descriptor[accessType]);
|
||||
let restoreStrategy;
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(obj, propertyName)) {
|
||||
restoreStrategy = function() {
|
||||
@@ -170,7 +173,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var pointer = obj,
|
||||
let pointer = obj,
|
||||
propsToSpyOn = [],
|
||||
properties,
|
||||
propertiesToSkip = [];
|
||||
@@ -190,24 +193,24 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
pointer = Object.getPrototypeOf(pointer);
|
||||
}
|
||||
|
||||
for (var i = 0; i < propsToSpyOn.length; i++) {
|
||||
this.spyOn(obj, propsToSpyOn[i]);
|
||||
for (const prop of propsToSpyOn) {
|
||||
this.spyOn(obj, prop);
|
||||
}
|
||||
|
||||
return obj;
|
||||
};
|
||||
|
||||
this.clearSpies = function() {
|
||||
var spies = currentSpies();
|
||||
for (var i = spies.length - 1; i >= 0; i--) {
|
||||
var spyEntry = spies[i];
|
||||
const spies = currentSpies();
|
||||
for (let i = spies.length - 1; i >= 0; i--) {
|
||||
const spyEntry = spies[i];
|
||||
spyEntry.restoreObjectToOriginalState();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function getProps(obj, includeNonEnumerable) {
|
||||
var enumerableProperties = Object.keys(obj);
|
||||
const enumerableProperties = Object.keys(obj);
|
||||
|
||||
if (!includeNonEnumerable) {
|
||||
return enumerableProperties;
|
||||
@@ -222,10 +225,9 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
}
|
||||
|
||||
function getSpyableFunctionProps(obj, propertiesToCheck) {
|
||||
var props = [],
|
||||
prop;
|
||||
for (var i = 0; i < propertiesToCheck.length; i++) {
|
||||
prop = propertiesToCheck[i];
|
||||
const props = [];
|
||||
|
||||
for (const prop of propertiesToCheck) {
|
||||
if (
|
||||
Object.prototype.hasOwnProperty.call(obj, prop) &&
|
||||
isSpyableProp(obj, prop)
|
||||
@@ -237,14 +239,15 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
||||
}
|
||||
|
||||
function isSpyableProp(obj, prop) {
|
||||
var value, descriptor;
|
||||
let value;
|
||||
try {
|
||||
value = obj[prop];
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (value instanceof Function) {
|
||||
descriptor = Object.getOwnPropertyDescriptor(obj, prop);
|
||||
const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
|
||||
return (descriptor.writable || descriptor.set) && descriptor.configurable;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -5,7 +5,7 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
|
||||
function SpyStrategy(options) {
|
||||
options = options || {};
|
||||
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
/**
|
||||
* Get the identifying information for the spy.
|
||||
@@ -19,9 +19,8 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
|
||||
this.getSpy = options.getSpy || function() {};
|
||||
this.plan = this._defaultPlan = function() {};
|
||||
|
||||
var k,
|
||||
cs = options.customStrategies || {};
|
||||
for (k in cs) {
|
||||
const cs = options.customStrategies || {};
|
||||
for (const k in cs) {
|
||||
if (j$.util.has(cs, k) && !this[k]) {
|
||||
this[k] = createCustomPlan(cs[k]);
|
||||
}
|
||||
@@ -58,7 +57,7 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
|
||||
|
||||
function createCustomPlan(factory) {
|
||||
return function() {
|
||||
var plan = factory.apply(null, arguments);
|
||||
const plan = factory.apply(null, arguments);
|
||||
|
||||
if (!j$.isFunction_(plan)) {
|
||||
throw new Error('Spy strategy must return a function');
|
||||
@@ -76,10 +75,10 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
|
||||
* @function
|
||||
*/
|
||||
SpyStrategy.prototype.exec = function(context, args, invokeNew) {
|
||||
var contextArgs = [context].concat(
|
||||
const contextArgs = [context].concat(
|
||||
args ? Array.prototype.slice.call(args) : []
|
||||
);
|
||||
var target = this.plan.bind.apply(this.plan, contextArgs);
|
||||
const target = this.plan.bind.apply(this.plan, contextArgs);
|
||||
|
||||
return invokeNew ? new target() : target();
|
||||
};
|
||||
@@ -117,7 +116,7 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
|
||||
* @param {...*} values - Values to be returned on subsequent calls to the spy.
|
||||
*/
|
||||
SpyStrategy.prototype.returnValues = function() {
|
||||
var values = Array.prototype.slice.call(arguments);
|
||||
const values = Array.prototype.slice.call(arguments);
|
||||
this.plan = function() {
|
||||
return values.shift();
|
||||
};
|
||||
@@ -132,7 +131,7 @@ getJasmineRequireObj().SpyStrategy = function(j$) {
|
||||
* @param {Error|Object|String} something Thing to throw
|
||||
*/
|
||||
SpyStrategy.prototype.throwError = function(something) {
|
||||
var error = j$.isString_(something) ? new Error(something) : something;
|
||||
const error = j$.isString_(something) ? new Error(something) : something;
|
||||
this.plan = function() {
|
||||
throw error;
|
||||
};
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
getJasmineRequireObj().StackTrace = function(j$) {
|
||||
function StackTrace(error) {
|
||||
var lines = error.stack.split('\n').filter(function(line) {
|
||||
let lines = error.stack.split('\n').filter(function(line) {
|
||||
return line !== '';
|
||||
});
|
||||
|
||||
var extractResult = extractMessage(error.message, lines);
|
||||
const extractResult = extractMessage(error.message, lines);
|
||||
|
||||
if (extractResult) {
|
||||
this.message = extractResult.message;
|
||||
lines = extractResult.remainder;
|
||||
}
|
||||
|
||||
var parseResult = tryParseFrames(lines);
|
||||
const parseResult = tryParseFrames(lines);
|
||||
this.frames = parseResult.frames;
|
||||
this.style = parseResult.style;
|
||||
}
|
||||
|
||||
var framePatterns = [
|
||||
const framePatterns = [
|
||||
// Node, Chrome, Edge
|
||||
// e.g. " at QueueRunner.run (http://localhost:8888/__jasmine__/jasmine.js:4320:20)"
|
||||
// Note that the "function name" can include a surprisingly large set of
|
||||
@@ -46,16 +46,15 @@ getJasmineRequireObj().StackTrace = function(j$) {
|
||||
// regexes should capture the function name (if any) as group 1
|
||||
// and the file, line, and column as group 2.
|
||||
function tryParseFrames(lines) {
|
||||
var style = null;
|
||||
var frames = lines.map(function(line) {
|
||||
var convertedLine = first(framePatterns, function(pattern) {
|
||||
var overallMatch = line.match(pattern.re),
|
||||
fileLineColMatch;
|
||||
let style = null;
|
||||
const frames = lines.map(function(line) {
|
||||
const convertedLine = first(framePatterns, function(pattern) {
|
||||
const overallMatch = line.match(pattern.re);
|
||||
if (!overallMatch) {
|
||||
return null;
|
||||
}
|
||||
|
||||
fileLineColMatch = overallMatch[pattern.fileLineColIx].match(
|
||||
const fileLineColMatch = overallMatch[pattern.fileLineColIx].match(
|
||||
/^(.*):(\d+):\d+$/
|
||||
);
|
||||
if (!fileLineColMatch) {
|
||||
@@ -81,10 +80,8 @@ getJasmineRequireObj().StackTrace = function(j$) {
|
||||
}
|
||||
|
||||
function first(items, fn) {
|
||||
var i, result;
|
||||
|
||||
for (i = 0; i < items.length; i++) {
|
||||
result = fn(items[i]);
|
||||
for (const item of items) {
|
||||
const result = fn(item);
|
||||
|
||||
if (result) {
|
||||
return result;
|
||||
@@ -93,7 +90,7 @@ getJasmineRequireObj().StackTrace = function(j$) {
|
||||
}
|
||||
|
||||
function extractMessage(message, stackLines) {
|
||||
var len = messagePrefixLength(message, stackLines);
|
||||
const len = messagePrefixLength(message, stackLines);
|
||||
|
||||
if (len > 0) {
|
||||
return {
|
||||
@@ -108,10 +105,9 @@ getJasmineRequireObj().StackTrace = function(j$) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
var messageLines = message.split('\n');
|
||||
var i;
|
||||
const messageLines = message.split('\n');
|
||||
|
||||
for (i = 1; i < messageLines.length; i++) {
|
||||
for (let i = 1; i < messageLines.length; i++) {
|
||||
if (messageLines[i] !== stackLines[i]) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -35,9 +35,9 @@ getJasmineRequireObj().Suite = function(j$) {
|
||||
};
|
||||
|
||||
Suite.prototype.getFullName = function() {
|
||||
var fullName = [];
|
||||
const fullName = [];
|
||||
for (
|
||||
var parentSuite = this;
|
||||
let parentSuite = this;
|
||||
parentSuite;
|
||||
parentSuite = parentSuite.parentSuite
|
||||
) {
|
||||
@@ -89,8 +89,8 @@ getJasmineRequireObj().Suite = function(j$) {
|
||||
};
|
||||
|
||||
function removeFns(queueableFns) {
|
||||
for (var i = 0; i < queueableFns.length; i++) {
|
||||
queueableFns[i].fn = null;
|
||||
for (const qf of queueableFns) {
|
||||
qf.fn = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().Timer = function() {
|
||||
var defaultNow = (function(Date) {
|
||||
const defaultNow = (function(Date) {
|
||||
return function() {
|
||||
return new Date().getTime();
|
||||
};
|
||||
@@ -8,8 +8,8 @@ getJasmineRequireObj().Timer = function() {
|
||||
function Timer(options) {
|
||||
options = options || {};
|
||||
|
||||
var now = options.now || defaultNow,
|
||||
startTime;
|
||||
const now = options.now || defaultNow;
|
||||
let startTime;
|
||||
|
||||
this.start = function() {
|
||||
startTime = now();
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
getJasmineRequireObj().TreeProcessor = function() {
|
||||
function TreeProcessor(attrs) {
|
||||
var tree = attrs.tree,
|
||||
runnableIds = attrs.runnableIds,
|
||||
queueRunnerFactory = attrs.queueRunnerFactory,
|
||||
nodeStart = attrs.nodeStart || function() {},
|
||||
nodeComplete = attrs.nodeComplete || function() {},
|
||||
failSpecWithNoExpectations = !!attrs.failSpecWithNoExpectations,
|
||||
orderChildren =
|
||||
attrs.orderChildren ||
|
||||
function(node) {
|
||||
return node.children;
|
||||
},
|
||||
excludeNode =
|
||||
attrs.excludeNode ||
|
||||
function(node) {
|
||||
return false;
|
||||
},
|
||||
stats = { valid: true },
|
||||
processed = false,
|
||||
defaultMin = Infinity,
|
||||
defaultMax = 1 - Infinity;
|
||||
const tree = attrs.tree;
|
||||
const runnableIds = attrs.runnableIds;
|
||||
const queueRunnerFactory = attrs.queueRunnerFactory;
|
||||
const nodeStart = attrs.nodeStart || function() {};
|
||||
const nodeComplete = attrs.nodeComplete || function() {};
|
||||
const failSpecWithNoExpectations = !!attrs.failSpecWithNoExpectations;
|
||||
const orderChildren =
|
||||
attrs.orderChildren ||
|
||||
function(node) {
|
||||
return node.children;
|
||||
};
|
||||
const excludeNode =
|
||||
attrs.excludeNode ||
|
||||
function(node) {
|
||||
return false;
|
||||
};
|
||||
let stats = { valid: true };
|
||||
let processed = false;
|
||||
const defaultMin = Infinity;
|
||||
const defaultMax = 1 - Infinity;
|
||||
|
||||
this.processTree = function() {
|
||||
processNode(tree, true);
|
||||
@@ -36,7 +36,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
throw 'invalid order';
|
||||
}
|
||||
|
||||
var childFns = wrapChildren(tree, 0);
|
||||
const childFns = wrapChildren(tree, 0);
|
||||
|
||||
queueRunnerFactory({
|
||||
queueableFns: childFns,
|
||||
@@ -52,7 +52,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
};
|
||||
|
||||
function runnableIndex(id) {
|
||||
for (var i = 0; i < runnableIds.length; i++) {
|
||||
for (let i = 0; i < runnableIds.length; i++) {
|
||||
if (runnableIds[i] === id) {
|
||||
return i;
|
||||
}
|
||||
@@ -60,14 +60,14 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
}
|
||||
|
||||
function processNode(node, parentExcluded) {
|
||||
var executableIndex = runnableIndex(node.id);
|
||||
const executableIndex = runnableIndex(node.id);
|
||||
|
||||
if (executableIndex !== undefined) {
|
||||
parentExcluded = false;
|
||||
}
|
||||
|
||||
if (!node.children) {
|
||||
var excluded = parentExcluded || excludeNode(node);
|
||||
const excluded = parentExcluded || excludeNode(node);
|
||||
stats[node.id] = {
|
||||
excluded: excluded,
|
||||
willExecute: !excluded && !node.markedPending,
|
||||
@@ -82,12 +82,12 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
]
|
||||
};
|
||||
} else {
|
||||
var hasExecutableChild = false;
|
||||
let hasExecutableChild = false;
|
||||
|
||||
var orderedChildren = orderChildren(node);
|
||||
const orderedChildren = orderChildren(node);
|
||||
|
||||
for (var i = 0; i < orderedChildren.length; i++) {
|
||||
var child = orderedChildren[i];
|
||||
for (let i = 0; i < orderedChildren.length; i++) {
|
||||
const child = orderedChildren[i];
|
||||
|
||||
processNode(child, parentExcluded);
|
||||
|
||||
@@ -95,7 +95,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
return;
|
||||
}
|
||||
|
||||
var childStats = stats[child.id];
|
||||
const childStats = stats[child.id];
|
||||
|
||||
hasExecutableChild = hasExecutableChild || childStats.willExecute;
|
||||
}
|
||||
@@ -127,7 +127,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
nodeStats,
|
||||
executableIndex
|
||||
) {
|
||||
var currentSegment = {
|
||||
let currentSegment = {
|
||||
index: 0,
|
||||
owner: node,
|
||||
nodes: [],
|
||||
@@ -146,8 +146,8 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
);
|
||||
}
|
||||
|
||||
for (var i = 0; i < orderedChildSegments.length; i++) {
|
||||
var childSegment = orderedChildSegments[i],
|
||||
for (let i = 0; i < orderedChildSegments.length; i++) {
|
||||
const childSegment = orderedChildSegments[i],
|
||||
maxIndex = childSegment.max,
|
||||
minIndex = childSegment.min;
|
||||
|
||||
@@ -172,15 +172,15 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
}
|
||||
|
||||
function orderChildSegments(children) {
|
||||
var specifiedOrder = [],
|
||||
const specifiedOrder = [],
|
||||
unspecifiedOrder = [];
|
||||
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
var child = children[i],
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
const child = children[i],
|
||||
segments = stats[child.id].segments;
|
||||
|
||||
for (var j = 0; j < segments.length; j++) {
|
||||
var seg = segments[j];
|
||||
for (let j = 0; j < segments.length; j++) {
|
||||
const seg = segments[j];
|
||||
|
||||
if (seg.min === defaultMin) {
|
||||
unspecifiedOrder.push(seg);
|
||||
@@ -201,7 +201,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
if (node.children) {
|
||||
return {
|
||||
fn: function(done) {
|
||||
var onStart = {
|
||||
const onStart = {
|
||||
fn: function(next) {
|
||||
nodeStart(node, next);
|
||||
}
|
||||
@@ -209,7 +209,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
|
||||
queueRunnerFactory({
|
||||
onComplete: function() {
|
||||
var args = Array.prototype.slice.call(arguments, [0]);
|
||||
const args = Array.prototype.slice.call(arguments, [0]);
|
||||
node.cleanupBeforeAfter();
|
||||
nodeComplete(node, node.getResult(), function() {
|
||||
done.apply(undefined, args);
|
||||
@@ -240,10 +240,10 @@ getJasmineRequireObj().TreeProcessor = function() {
|
||||
}
|
||||
|
||||
function wrapChildren(node, segmentNumber) {
|
||||
var result = [],
|
||||
const result = [],
|
||||
segmentChildren = stats[node.id].segments[segmentNumber].nodes;
|
||||
|
||||
for (var i = 0; i < segmentChildren.length; i++) {
|
||||
for (let i = 0; i < segmentChildren.length; i++) {
|
||||
result.push(
|
||||
executeNode(segmentChildren[i].owner, segmentChildren[i].index)
|
||||
);
|
||||
|
||||
@@ -2,9 +2,9 @@ getJasmineRequireObj().UserContext = function(j$) {
|
||||
function UserContext() {}
|
||||
|
||||
UserContext.fromExisting = function(oldContext) {
|
||||
var context = new UserContext();
|
||||
const context = new UserContext();
|
||||
|
||||
for (var prop in oldContext) {
|
||||
for (const prop in oldContext) {
|
||||
if (oldContext.hasOwnProperty(prop)) {
|
||||
context[prop] = oldContext[prop];
|
||||
}
|
||||
|
||||
@@ -19,8 +19,7 @@ getJasmineRequireObj().ArrayContaining = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (var i = 0; i < this.sample.length; i++) {
|
||||
var item = this.sample[i];
|
||||
for (const item of this.sample) {
|
||||
if (!matchersUtil.contains(other, item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -19,8 +19,7 @@ getJasmineRequireObj().ArrayWithExactContents = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (var i = 0; i < this.sample.length; i++) {
|
||||
var item = this.sample[i];
|
||||
for (const item of this.sample) {
|
||||
if (!matchersUtil.contains(other, item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ getJasmineRequireObj().MapContaining = function(j$) {
|
||||
for (const [key, value] of this.sample) {
|
||||
// for each key/value pair in `sample`
|
||||
// there should be at least one pair in `other` whose key and value both match
|
||||
var hasMatch = false;
|
||||
let hasMatch = false;
|
||||
for (const [oKey, oValue] of other) {
|
||||
if (
|
||||
matchersUtil.equals(oKey, key) &&
|
||||
|
||||
@@ -27,7 +27,7 @@ getJasmineRequireObj().ObjectContaining = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (var property in this.sample) {
|
||||
for (const property in this.sample) {
|
||||
if (
|
||||
!hasProperty(other, property) ||
|
||||
!matchersUtil.equals(this.sample[property], other[property])
|
||||
@@ -47,7 +47,7 @@ getJasmineRequireObj().ObjectContaining = function(j$) {
|
||||
};
|
||||
}
|
||||
|
||||
var filteredOther = {};
|
||||
const filteredOther = {};
|
||||
Object.keys(this.sample).forEach(function(k) {
|
||||
// eq short-circuits comparison of objects that have different key sets,
|
||||
// so include all keys even if undefined.
|
||||
|
||||
@@ -17,7 +17,7 @@ getJasmineRequireObj().SetContaining = function(j$) {
|
||||
// for each item in `sample` there should be at least one matching item in `other`
|
||||
// (not using `matchersUtil.contains` because it compares set members by reference,
|
||||
// not by deep value equality)
|
||||
var hasMatch = false;
|
||||
let hasMatch = false;
|
||||
for (const oItem of other) {
|
||||
if (matchersUtil.equals(oItem, item)) {
|
||||
hasMatch = true;
|
||||
|
||||
@@ -43,7 +43,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
|
||||
* @default 5000
|
||||
* @since 1.3.0
|
||||
*/
|
||||
var DEFAULT_TIMEOUT_INTERVAL = 5000;
|
||||
let DEFAULT_TIMEOUT_INTERVAL = 5000;
|
||||
Object.defineProperty(j$, 'DEFAULT_TIMEOUT_INTERVAL', {
|
||||
get: function() {
|
||||
return DEFAULT_TIMEOUT_INTERVAL;
|
||||
@@ -67,7 +67,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
|
||||
* @return {Env}
|
||||
*/
|
||||
j$.getEnv = function(options) {
|
||||
var env = (j$.currentEnv_ = j$.currentEnv_ || new j$.Env(options));
|
||||
const env = (j$.currentEnv_ = j$.currentEnv_ || new j$.Env(options));
|
||||
//jasmine. singletons in here (setTimeout blah blah).
|
||||
return env;
|
||||
};
|
||||
@@ -208,7 +208,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
|
||||
return func.name;
|
||||
}
|
||||
|
||||
var matches =
|
||||
const matches =
|
||||
func.toString().match(/^\s*function\s*(\w+)\s*\(/) ||
|
||||
func.toString().match(/^\s*\[object\s*(\w+)Constructor\]/);
|
||||
|
||||
@@ -216,7 +216,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
|
||||
};
|
||||
|
||||
j$.isPending_ = function(promise) {
|
||||
var sentinel = {};
|
||||
const sentinel = {};
|
||||
return Promise.race([promise, Promise.resolve(sentinel)]).then(
|
||||
function(result) {
|
||||
return result === sentinel;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
getJasmineRequireObj().formatErrorMsg = function() {
|
||||
function generateErrorMsg(domain, usage) {
|
||||
var usageDefinition = usage ? '\nUsage: ' + usage : '';
|
||||
const usageDefinition = usage ? '\nUsage: ' + usage : '';
|
||||
|
||||
return function errorMsg(msg) {
|
||||
return domain + ' : ' + msg + usageDefinition;
|
||||
|
||||
@@ -14,7 +14,7 @@ getJasmineRequireObj().toBePending = function(j$) {
|
||||
if (!j$.isPromiseLike(actual)) {
|
||||
throw new Error('Expected toBePending to be called on a promise.');
|
||||
}
|
||||
var want = {};
|
||||
const want = {};
|
||||
return Promise.race([actual, Promise.resolve(want)]).then(
|
||||
function(got) {
|
||||
return { pass: want === got };
|
||||
|
||||
@@ -23,7 +23,7 @@ getJasmineRequireObj().toBeRejectedWithError = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var expected = getExpectedFromArgs(arg1, arg2, matchersUtil);
|
||||
const expected = getExpectedFromArgs(arg1, arg2, matchersUtil);
|
||||
|
||||
return actualPromise.then(
|
||||
function() {
|
||||
@@ -52,7 +52,7 @@ getJasmineRequireObj().toBeRejectedWithError = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var actualMessage = actual.message;
|
||||
const actualMessage = actual.message;
|
||||
|
||||
if (
|
||||
actualMessage === expected.message ||
|
||||
@@ -94,7 +94,7 @@ getJasmineRequireObj().toBeRejectedWithError = function(j$) {
|
||||
}
|
||||
|
||||
function getExpectedFromArgs(arg1, arg2, matchersUtil) {
|
||||
var error, message;
|
||||
let error, message;
|
||||
|
||||
if (isErrorConstructor(arg1)) {
|
||||
error = arg1;
|
||||
|
||||
@@ -63,7 +63,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
|
||||
if (j$.isNumber_(haystack.length)) {
|
||||
// Objects that are shaped like arrays but aren't iterable
|
||||
for (var i = 0; i < haystack.length; i++) {
|
||||
for (let i = 0; i < haystack.length; i++) {
|
||||
if (this.equals(haystack[i], needle)) {
|
||||
return true;
|
||||
}
|
||||
@@ -74,8 +74,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
};
|
||||
|
||||
MatchersUtil.prototype.buildFailureMessage = function() {
|
||||
var self = this;
|
||||
var args = Array.prototype.slice.call(arguments, 0),
|
||||
const self = this;
|
||||
const args = Array.prototype.slice.call(arguments, 0),
|
||||
matcherName = args[0],
|
||||
isNot = args[1],
|
||||
actual = args[2],
|
||||
@@ -84,14 +84,14 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
return ' ' + s.toLowerCase();
|
||||
});
|
||||
|
||||
var message =
|
||||
let message =
|
||||
'Expected ' +
|
||||
self.pp(actual) +
|
||||
(isNot ? ' not ' : ' ') +
|
||||
englishyPredicate;
|
||||
|
||||
if (expected.length > 0) {
|
||||
for (var i = 0; i < expected.length; i++) {
|
||||
for (let i = 0; i < expected.length; i++) {
|
||||
if (i > 0) {
|
||||
message += ',';
|
||||
}
|
||||
@@ -110,7 +110,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
diffBuilder
|
||||
) {
|
||||
if (j$.isFunction_(b.valuesForDiff_)) {
|
||||
var values = b.valuesForDiff_(a, this.pp);
|
||||
const values = b.valuesForDiff_(a, this.pp);
|
||||
this.eq_(values.other, values.self, aStack, bStack, diffBuilder);
|
||||
} else {
|
||||
diffBuilder.recordMismatch();
|
||||
@@ -124,14 +124,15 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
bStack,
|
||||
diffBuilder
|
||||
) {
|
||||
var asymmetricA = j$.isAsymmetricEqualityTester_(a),
|
||||
asymmetricB = j$.isAsymmetricEqualityTester_(b),
|
||||
result;
|
||||
const asymmetricA = j$.isAsymmetricEqualityTester_(a);
|
||||
const asymmetricB = j$.isAsymmetricEqualityTester_(b);
|
||||
|
||||
if (asymmetricA === asymmetricB) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
let result;
|
||||
|
||||
if (asymmetricA) {
|
||||
result = a.asymmetricMatch(b, this);
|
||||
if (!result) {
|
||||
@@ -168,11 +169,10 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
// Equality function lovingly adapted from isEqual in
|
||||
// [Underscore](http://underscorejs.org)
|
||||
MatchersUtil.prototype.eq_ = function(a, b, aStack, bStack, diffBuilder) {
|
||||
var result = true,
|
||||
self = this,
|
||||
i;
|
||||
let result = true;
|
||||
const self = this;
|
||||
|
||||
var asymmetricResult = this.asymmetricMatch_(
|
||||
const asymmetricResult = this.asymmetricMatch_(
|
||||
a,
|
||||
b,
|
||||
aStack,
|
||||
@@ -183,8 +183,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
return asymmetricResult;
|
||||
}
|
||||
|
||||
for (i = 0; i < this.customTesters_.length; i++) {
|
||||
var customTesterResult = this.customTesters_[i](a, b);
|
||||
for (const tester of this.customTesters_) {
|
||||
const customTesterResult = tester(a, b);
|
||||
if (!j$.util.isUndefined(customTesterResult)) {
|
||||
if (!customTesterResult) {
|
||||
diffBuilder.recordMismatch();
|
||||
@@ -218,7 +218,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
var className = Object.prototype.toString.call(a);
|
||||
const className = Object.prototype.toString.call(a);
|
||||
if (className != Object.prototype.toString.call(b)) {
|
||||
diffBuilder.recordMismatch();
|
||||
return false;
|
||||
@@ -276,8 +276,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var aIsDomNode = j$.isDomNode(a);
|
||||
var bIsDomNode = j$.isDomNode(b);
|
||||
const aIsDomNode = j$.isDomNode(a);
|
||||
const bIsDomNode = j$.isDomNode(b);
|
||||
if (aIsDomNode && bIsDomNode) {
|
||||
// At first try to use DOM3 method isEqualNode
|
||||
result = a.isEqualNode(b);
|
||||
@@ -291,15 +291,15 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var aIsPromise = j$.isPromise(a);
|
||||
var bIsPromise = j$.isPromise(b);
|
||||
const aIsPromise = j$.isPromise(a);
|
||||
const bIsPromise = j$.isPromise(b);
|
||||
if (aIsPromise && bIsPromise) {
|
||||
return a === b;
|
||||
}
|
||||
|
||||
// Assume equality for cyclic structures. The algorithm for detecting cyclic
|
||||
// structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
|
||||
var length = aStack.length;
|
||||
let length = aStack.length;
|
||||
while (length--) {
|
||||
// Linear search. Performance is inversely proportional to the number of
|
||||
// unique nested structures.
|
||||
@@ -310,12 +310,12 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
// Add the first object to the stack of traversed objects.
|
||||
aStack.push(a);
|
||||
bStack.push(b);
|
||||
var size = 0;
|
||||
let size = 0;
|
||||
// Recursively compare objects and arrays.
|
||||
// Compare array lengths to determine if a deep comparison is necessary.
|
||||
if (className == '[object Array]') {
|
||||
var aLength = a.length;
|
||||
var bLength = b.length;
|
||||
const aLength = a.length;
|
||||
const bLength = b.length;
|
||||
|
||||
diffBuilder.withPath('length', function() {
|
||||
if (aLength !== bLength) {
|
||||
@@ -324,7 +324,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
}
|
||||
});
|
||||
|
||||
for (i = 0; i < aLength || i < bLength; i++) {
|
||||
for (let i = 0; i < aLength || i < bLength; i++) {
|
||||
diffBuilder.withPath(i, function() {
|
||||
if (i >= bLength) {
|
||||
diffBuilder.recordMismatch(
|
||||
@@ -352,8 +352,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var keysA = [];
|
||||
var keysB = [];
|
||||
const keysA = [];
|
||||
const keysB = [];
|
||||
a.forEach(function(valueA, keyA) {
|
||||
keysA.push(keyA);
|
||||
});
|
||||
@@ -363,18 +363,17 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
|
||||
// For both sets of keys, check they map to equal values in both maps.
|
||||
// Keep track of corresponding keys (in insertion order) in order to handle asymmetric obj keys.
|
||||
var mapKeys = [keysA, keysB];
|
||||
var cmpKeys = [keysB, keysA];
|
||||
var mapIter, mapKey, mapValueA, mapValueB;
|
||||
var cmpIter, cmpKey;
|
||||
for (i = 0; result && i < mapKeys.length; i++) {
|
||||
mapIter = mapKeys[i];
|
||||
cmpIter = cmpKeys[i];
|
||||
const mapKeys = [keysA, keysB];
|
||||
const cmpKeys = [keysB, keysA];
|
||||
for (let i = 0; result && i < mapKeys.length; i++) {
|
||||
const mapIter = mapKeys[i];
|
||||
const cmpIter = cmpKeys[i];
|
||||
|
||||
for (var j = 0; result && j < mapIter.length; j++) {
|
||||
mapKey = mapIter[j];
|
||||
cmpKey = cmpIter[j];
|
||||
mapValueA = a.get(mapKey);
|
||||
for (let j = 0; result && j < mapIter.length; j++) {
|
||||
const mapKey = mapIter[j];
|
||||
const cmpKey = cmpIter[j];
|
||||
const mapValueA = a.get(mapKey);
|
||||
let mapValueB;
|
||||
|
||||
// Only use the cmpKey when one of the keys is asymmetric and the corresponding key matches,
|
||||
// otherwise explicitly look up the mapKey in the other Map since we want keys with unique
|
||||
@@ -408,35 +407,30 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var valuesA = [];
|
||||
const valuesA = [];
|
||||
a.forEach(function(valueA) {
|
||||
valuesA.push(valueA);
|
||||
});
|
||||
var valuesB = [];
|
||||
const valuesB = [];
|
||||
b.forEach(function(valueB) {
|
||||
valuesB.push(valueB);
|
||||
});
|
||||
|
||||
// For both sets, check they are all contained in the other set
|
||||
var setPairs = [[valuesA, valuesB], [valuesB, valuesA]];
|
||||
var stackPairs = [[aStack, bStack], [bStack, aStack]];
|
||||
var baseValues, baseValue, baseStack;
|
||||
var otherValues, otherValue, otherStack;
|
||||
var found;
|
||||
var prevStackSize;
|
||||
for (i = 0; result && i < setPairs.length; i++) {
|
||||
baseValues = setPairs[i][0];
|
||||
otherValues = setPairs[i][1];
|
||||
baseStack = stackPairs[i][0];
|
||||
otherStack = stackPairs[i][1];
|
||||
const setPairs = [[valuesA, valuesB], [valuesB, valuesA]];
|
||||
const stackPairs = [[aStack, bStack], [bStack, aStack]];
|
||||
for (let i = 0; result && i < setPairs.length; i++) {
|
||||
const baseValues = setPairs[i][0];
|
||||
const otherValues = setPairs[i][1];
|
||||
const baseStack = stackPairs[i][0];
|
||||
const otherStack = stackPairs[i][1];
|
||||
// For each value in the base set...
|
||||
for (var k = 0; result && k < baseValues.length; k++) {
|
||||
baseValue = baseValues[k];
|
||||
found = false;
|
||||
for (const baseValue of baseValues) {
|
||||
let found = false;
|
||||
// ... test that it is present in the other set
|
||||
for (var l = 0; !found && l < otherValues.length; l++) {
|
||||
otherValue = otherValues[l];
|
||||
prevStackSize = baseStack.length;
|
||||
for (let j = 0; !found && j < otherValues.length; j++) {
|
||||
const otherValue = otherValues[j];
|
||||
const prevStackSize = baseStack.length;
|
||||
// compare by value equality
|
||||
found = this.eq_(
|
||||
baseValue,
|
||||
@@ -465,7 +459,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
} else {
|
||||
// Objects with different constructors are not equivalent, but `Object`s
|
||||
// or `Array`s from different frames are.
|
||||
var aCtor = a.constructor,
|
||||
const aCtor = a.constructor,
|
||||
bCtor = b.constructor;
|
||||
if (
|
||||
aCtor !== bCtor &&
|
||||
@@ -483,8 +477,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
}
|
||||
|
||||
// Deep compare objects.
|
||||
var aKeys = MatchersUtil.keys(a, className == '[object Array]'),
|
||||
key;
|
||||
const aKeys = MatchersUtil.keys(a, className == '[object Array]');
|
||||
size = aKeys.length;
|
||||
|
||||
// Ensure that both objects contain the same number of properties before comparing deep equality.
|
||||
@@ -495,8 +488,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (i = 0; i < size; i++) {
|
||||
key = aKeys[i];
|
||||
for (const key of aKeys) {
|
||||
// Deep compare each member
|
||||
if (!j$.util.has(b, key)) {
|
||||
diffBuilder.recordMismatch(
|
||||
@@ -525,18 +517,18 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
};
|
||||
|
||||
MatchersUtil.keys = function(obj, isArray) {
|
||||
var allKeys = (function(o) {
|
||||
var keys = [];
|
||||
for (var key in o) {
|
||||
const allKeys = (function(o) {
|
||||
const keys = [];
|
||||
for (const key in o) {
|
||||
if (j$.util.has(o, key)) {
|
||||
keys.push(key);
|
||||
}
|
||||
}
|
||||
|
||||
var symbols = Object.getOwnPropertySymbols(o);
|
||||
for (var i = 0; i < symbols.length; i++) {
|
||||
if (o.propertyIsEnumerable(symbols[i])) {
|
||||
keys.push(symbols[i]);
|
||||
const symbols = Object.getOwnPropertySymbols(o);
|
||||
for (const sym of symbols) {
|
||||
if (o.propertyIsEnumerable(sym)) {
|
||||
keys.push(sym);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -551,10 +543,10 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
return allKeys;
|
||||
}
|
||||
|
||||
var extraKeys = [];
|
||||
for (var i = 0; i < allKeys.length; i++) {
|
||||
if (typeof allKeys[i] === 'symbol' || !/^[0-9]+$/.test(allKeys[i])) {
|
||||
extraKeys.push(allKeys[i]);
|
||||
const extraKeys = [];
|
||||
for (const k of allKeys) {
|
||||
if (typeof k === 'symbol' || !/^[0-9]+$/.test(k)) {
|
||||
extraKeys.push(k);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -574,7 +566,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
}
|
||||
|
||||
function objectKeysAreDifferentFormatter(pp, actual, expected, path) {
|
||||
var missingProperties = extraKeysAndValues(expected, actual),
|
||||
const missingProperties = extraKeysAndValues(expected, actual),
|
||||
extraProperties = extraKeysAndValues(actual, expected),
|
||||
missingPropertiesMessage = formatKeyValuePairs(pp, missingProperties),
|
||||
extraPropertiesMessage = formatKeyValuePairs(pp, extraProperties),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().requireAsyncMatchers = function(jRequire, j$) {
|
||||
var availableMatchers = [
|
||||
const availableMatchers = [
|
||||
'toBePending',
|
||||
'toBeResolved',
|
||||
'toBeRejected',
|
||||
@@ -9,8 +9,7 @@ getJasmineRequireObj().requireAsyncMatchers = function(jRequire, j$) {
|
||||
],
|
||||
matchers = {};
|
||||
|
||||
for (var i = 0; i < availableMatchers.length; i++) {
|
||||
var name = availableMatchers[i];
|
||||
for (const name of availableMatchers) {
|
||||
matchers[name] = jRequire[name](j$);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().requireMatchers = function(jRequire, j$) {
|
||||
var availableMatchers = [
|
||||
const availableMatchers = [
|
||||
'nothing',
|
||||
'toBe',
|
||||
'toBeCloseTo',
|
||||
@@ -35,8 +35,7 @@ getJasmineRequireObj().requireMatchers = function(jRequire, j$) {
|
||||
],
|
||||
matchers = {};
|
||||
|
||||
for (var i = 0; i < availableMatchers.length; i++) {
|
||||
var name = availableMatchers[i];
|
||||
for (const name of availableMatchers) {
|
||||
matchers[name] = jRequire[name](j$);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ getJasmineRequireObj().toBe = function(j$) {
|
||||
* expect(thing).toBe(realThing);
|
||||
*/
|
||||
function toBe(matchersUtil) {
|
||||
var tip =
|
||||
const tip =
|
||||
' Tip: To check for deep equality, use .toEqual() instead of .toBe().';
|
||||
|
||||
return {
|
||||
compare: function(actual, expected) {
|
||||
var result = {
|
||||
const result = {
|
||||
pass: actual === expected
|
||||
};
|
||||
|
||||
|
||||
@@ -35,9 +35,9 @@ getJasmineRequireObj().toBeCloseTo = function() {
|
||||
};
|
||||
}
|
||||
|
||||
var pow = Math.pow(10, precision + 1);
|
||||
var delta = Math.abs(expected - actual);
|
||||
var maxDelta = Math.pow(10, -precision) / 2;
|
||||
const pow = Math.pow(10, precision + 1);
|
||||
const delta = Math.abs(expected - actual);
|
||||
const maxDelta = Math.pow(10, -precision) / 2;
|
||||
|
||||
return {
|
||||
pass: Math.round(delta * pow) <= maxDelta * pow
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toBeInstanceOf = function(j$) {
|
||||
var usageError = j$.formatErrorMsg(
|
||||
const usageError = j$.formatErrorMsg(
|
||||
'<toBeInstanceOf>',
|
||||
'expect(value).toBeInstanceOf(<ConstructorFunction>)'
|
||||
);
|
||||
@@ -18,15 +18,15 @@ getJasmineRequireObj().toBeInstanceOf = function(j$) {
|
||||
function toBeInstanceOf(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual, expected) {
|
||||
var actualType =
|
||||
actual && actual.constructor
|
||||
? j$.fnNameFor(actual.constructor)
|
||||
: matchersUtil.pp(actual),
|
||||
expectedType = expected
|
||||
? j$.fnNameFor(expected)
|
||||
: matchersUtil.pp(expected),
|
||||
expectedMatcher,
|
||||
pass;
|
||||
const actualType =
|
||||
actual && actual.constructor
|
||||
? j$.fnNameFor(actual.constructor)
|
||||
: matchersUtil.pp(actual);
|
||||
const expectedType = expected
|
||||
? j$.fnNameFor(expected)
|
||||
: matchersUtil.pp(expected);
|
||||
let expectedMatcher;
|
||||
let pass;
|
||||
|
||||
try {
|
||||
expectedMatcher = new j$.Any(expected);
|
||||
|
||||
@@ -10,7 +10,7 @@ getJasmineRequireObj().toBeNaN = function(j$) {
|
||||
function toBeNaN(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual) {
|
||||
var result = {
|
||||
const result = {
|
||||
pass: actual !== actual
|
||||
};
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ getJasmineRequireObj().toBeNegativeInfinity = function(j$) {
|
||||
function toBeNegativeInfinity(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual) {
|
||||
var result = {
|
||||
const result = {
|
||||
pass: actual === Number.NEGATIVE_INFINITY
|
||||
};
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ getJasmineRequireObj().toBePositiveInfinity = function(j$) {
|
||||
function toBePositiveInfinity(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual) {
|
||||
var result = {
|
||||
const result = {
|
||||
pass: actual === Number.POSITIVE_INFINITY
|
||||
};
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ getJasmineRequireObj().toEqual = function(j$) {
|
||||
function toEqual(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual, expected) {
|
||||
var result = {
|
||||
const result = {
|
||||
pass: false
|
||||
},
|
||||
diffBuilder = new j$.DiffBuilder({ prettyPrinter: matchersUtil.pp });
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toHaveBeenCalled = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toHaveBeenCalled>',
|
||||
'expect(<spyObj>).toHaveBeenCalled()'
|
||||
);
|
||||
@@ -16,7 +16,7 @@ getJasmineRequireObj().toHaveBeenCalled = function(j$) {
|
||||
function toHaveBeenCalled(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual) {
|
||||
var result = {};
|
||||
const result = {};
|
||||
|
||||
if (!j$.isSpy(actual)) {
|
||||
throw new Error(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toHaveBeenCalledBefore = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toHaveBeenCalledBefore>',
|
||||
'expect(<spyObj>).toHaveBeenCalledBefore(<spyObj>)'
|
||||
);
|
||||
@@ -31,7 +31,7 @@ getJasmineRequireObj().toHaveBeenCalledBefore = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var result = { pass: false };
|
||||
const result = { pass: false };
|
||||
|
||||
if (!firstSpy.calls.count()) {
|
||||
result.message =
|
||||
@@ -44,8 +44,8 @@ getJasmineRequireObj().toHaveBeenCalledBefore = function(j$) {
|
||||
return result;
|
||||
}
|
||||
|
||||
var latest1stSpyCall = firstSpy.calls.mostRecent().invocationOrder;
|
||||
var first2ndSpyCall = latterSpy.calls.first().invocationOrder;
|
||||
const latest1stSpyCall = firstSpy.calls.mostRecent().invocationOrder;
|
||||
const first2ndSpyCall = latterSpy.calls.first().invocationOrder;
|
||||
|
||||
result.pass = latest1stSpyCall < first2ndSpyCall;
|
||||
|
||||
@@ -57,8 +57,8 @@ getJasmineRequireObj().toHaveBeenCalledBefore = function(j$) {
|
||||
latterSpy.and.identity +
|
||||
', but it was';
|
||||
} else {
|
||||
var first1stSpyCall = firstSpy.calls.first().invocationOrder;
|
||||
var latest2ndSpyCall = latterSpy.calls.mostRecent().invocationOrder;
|
||||
const first1stSpyCall = firstSpy.calls.first().invocationOrder;
|
||||
const latest2ndSpyCall = latterSpy.calls.mostRecent().invocationOrder;
|
||||
|
||||
if (first1stSpyCall < first2ndSpyCall) {
|
||||
result.message =
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toHaveBeenCalledOnceWith>',
|
||||
'expect(<spyObj>).toHaveBeenCalledOnceWith(...arguments)'
|
||||
);
|
||||
@@ -16,7 +16,7 @@ getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$) {
|
||||
function toHaveBeenCalledOnceWith(util) {
|
||||
return {
|
||||
compare: function() {
|
||||
var args = Array.prototype.slice.call(arguments, 0),
|
||||
const args = Array.prototype.slice.call(arguments, 0),
|
||||
actual = args[0],
|
||||
expectedArgs = args.slice(1);
|
||||
|
||||
@@ -26,7 +26,7 @@ getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var prettyPrintedCalls = actual.calls
|
||||
const prettyPrintedCalls = actual.calls
|
||||
.allArgs()
|
||||
.map(function(argsForCall) {
|
||||
return ' ' + util.pp(argsForCall);
|
||||
@@ -53,7 +53,7 @@ getJasmineRequireObj().toHaveBeenCalledOnceWith = function(j$) {
|
||||
|
||||
function getDiffs() {
|
||||
return actual.calls.allArgs().map(function(argsForCall, callIx) {
|
||||
var diffBuilder = new j$.DiffBuilder();
|
||||
const diffBuilder = new j$.DiffBuilder();
|
||||
util.equals(argsForCall, expectedArgs, diffBuilder);
|
||||
return diffBuilder.getMessage();
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toHaveBeenCalledTimes = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toHaveBeenCalledTimes>',
|
||||
'expect(<spyObj>).toHaveBeenCalledTimes(<Number>)'
|
||||
);
|
||||
@@ -24,7 +24,7 @@ getJasmineRequireObj().toHaveBeenCalledTimes = function(j$) {
|
||||
);
|
||||
}
|
||||
|
||||
var args = Array.prototype.slice.call(arguments, 0),
|
||||
const args = Array.prototype.slice.call(arguments, 0),
|
||||
result = { pass: false };
|
||||
|
||||
if (!j$.isNumber_(expected)) {
|
||||
@@ -36,8 +36,8 @@ getJasmineRequireObj().toHaveBeenCalledTimes = function(j$) {
|
||||
}
|
||||
|
||||
actual = args[0];
|
||||
var calls = actual.calls.count();
|
||||
var timesMessage = expected === 1 ? 'once' : expected + ' times';
|
||||
const calls = actual.calls.count();
|
||||
const timesMessage = expected === 1 ? 'once' : expected + ' times';
|
||||
result.pass = calls === expected;
|
||||
result.message = result.pass
|
||||
? 'Expected spy ' +
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toHaveBeenCalledWith = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toHaveBeenCalledWith>',
|
||||
'expect(<spyObj>).toHaveBeenCalledWith(...arguments)'
|
||||
);
|
||||
@@ -16,7 +16,7 @@ getJasmineRequireObj().toHaveBeenCalledWith = function(j$) {
|
||||
function toHaveBeenCalledWith(matchersUtil) {
|
||||
return {
|
||||
compare: function() {
|
||||
var args = Array.prototype.slice.call(arguments, 0),
|
||||
const args = Array.prototype.slice.call(arguments, 0),
|
||||
actual = args[0],
|
||||
expectedArgs = args.slice(1),
|
||||
result = { pass: false };
|
||||
@@ -57,16 +57,16 @@ getJasmineRequireObj().toHaveBeenCalledWith = function(j$) {
|
||||
};
|
||||
} else {
|
||||
result.message = function() {
|
||||
var prettyPrintedCalls = actual.calls
|
||||
const prettyPrintedCalls = actual.calls
|
||||
.allArgs()
|
||||
.map(function(argsForCall) {
|
||||
return ' ' + matchersUtil.pp(argsForCall);
|
||||
});
|
||||
|
||||
var diffs = actual.calls
|
||||
const diffs = actual.calls
|
||||
.allArgs()
|
||||
.map(function(argsForCall, callIx) {
|
||||
var diffBuilder = new j$.DiffBuilder();
|
||||
const diffBuilder = new j$.DiffBuilder();
|
||||
matchersUtil.equals(argsForCall, expectedArgs, diffBuilder);
|
||||
return (
|
||||
'Call ' +
|
||||
|
||||
@@ -12,7 +12,7 @@ getJasmineRequireObj().toHaveSize = function(j$) {
|
||||
function toHaveSize() {
|
||||
return {
|
||||
compare: function(actual, expected) {
|
||||
var result = {
|
||||
const result = {
|
||||
pass: false
|
||||
};
|
||||
|
||||
@@ -37,7 +37,7 @@ getJasmineRequireObj().toHaveSize = function(j$) {
|
||||
};
|
||||
}
|
||||
|
||||
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
||||
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
||||
function isLength(value) {
|
||||
return (
|
||||
typeof value == 'number' &&
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toHaveSpyInteractions = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toHaveSpyInteractions>',
|
||||
'expect(<spyObj>).toHaveSpyInteractions()'
|
||||
);
|
||||
@@ -16,7 +16,7 @@ getJasmineRequireObj().toHaveSpyInteractions = function(j$) {
|
||||
function toHaveSpyInteractions(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual) {
|
||||
var result = {};
|
||||
const result = {};
|
||||
|
||||
if (!j$.isObject_(actual)) {
|
||||
throw new Error(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toMatch = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toMatch>',
|
||||
'expect(<expectation>).toMatch(<string> || <regexp>)'
|
||||
);
|
||||
@@ -21,7 +21,7 @@ getJasmineRequireObj().toMatch = function(j$) {
|
||||
throw new Error(getErrorMsg('Expected is not a String or a RegExp'));
|
||||
}
|
||||
|
||||
var regexp = new RegExp(expected);
|
||||
const regexp = new RegExp(expected);
|
||||
|
||||
return {
|
||||
pass: regexp.test(actual)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toThrow = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toThrow>',
|
||||
'expect(function() {<expectation>}).toThrow()'
|
||||
);
|
||||
@@ -17,9 +17,9 @@ getJasmineRequireObj().toThrow = function(j$) {
|
||||
function toThrow(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual, expected) {
|
||||
var result = { pass: false },
|
||||
threw = false,
|
||||
thrown;
|
||||
const result = { pass: false };
|
||||
let threw = false;
|
||||
let thrown;
|
||||
|
||||
if (typeof actual != 'function') {
|
||||
throw new Error(getErrorMsg('Actual is not a Function'));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toThrowError = function(j$) {
|
||||
var getErrorMsg = j$.formatErrorMsg(
|
||||
const getErrorMsg = j$.formatErrorMsg(
|
||||
'<toThrowError>',
|
||||
'expect(function() {<expectation>}).toThrowError(<ErrorConstructor>, <message>)'
|
||||
);
|
||||
@@ -21,13 +21,14 @@ getJasmineRequireObj().toThrowError = function(j$) {
|
||||
function toThrowError(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual) {
|
||||
var errorMatcher = getMatcher.apply(null, arguments),
|
||||
thrown;
|
||||
const errorMatcher = getMatcher.apply(null, arguments);
|
||||
|
||||
if (typeof actual != 'function') {
|
||||
throw new Error(getErrorMsg('Actual is not a Function'));
|
||||
}
|
||||
|
||||
let thrown;
|
||||
|
||||
try {
|
||||
actual();
|
||||
return fail('Expected function to throw an Error.');
|
||||
@@ -50,7 +51,7 @@ getJasmineRequireObj().toThrowError = function(j$) {
|
||||
};
|
||||
|
||||
function getMatcher() {
|
||||
var expected, errorType;
|
||||
let expected, errorType;
|
||||
|
||||
if (arguments[2]) {
|
||||
errorType = arguments[1];
|
||||
@@ -106,15 +107,15 @@ getJasmineRequireObj().toThrowError = function(j$) {
|
||||
}
|
||||
}
|
||||
|
||||
var errorTypeDescription = errorType
|
||||
const errorTypeDescription = errorType
|
||||
? j$.fnNameFor(errorType)
|
||||
: 'an exception';
|
||||
|
||||
function thrownDescription(thrown) {
|
||||
var thrownName = errorType
|
||||
? j$.fnNameFor(thrown.constructor)
|
||||
: 'an exception',
|
||||
thrownMessage = '';
|
||||
const thrownName = errorType
|
||||
? j$.fnNameFor(thrown.constructor)
|
||||
: 'an exception';
|
||||
let thrownMessage = '';
|
||||
|
||||
if (expected) {
|
||||
thrownMessage = ' with message ' + matchersUtil.pp(thrown.message);
|
||||
@@ -176,7 +177,7 @@ getJasmineRequireObj().toThrowError = function(j$) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var Surrogate = function() {};
|
||||
const Surrogate = function() {};
|
||||
Surrogate.prototype = type.prototype;
|
||||
return j$.isError_(new Surrogate());
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().toThrowMatching = function(j$) {
|
||||
var usageError = j$.formatErrorMsg(
|
||||
const usageError = j$.formatErrorMsg(
|
||||
'<toThrowMatching>',
|
||||
'expect(function() {<expectation>}).toThrowMatching(<Predicate>)'
|
||||
);
|
||||
@@ -16,8 +16,6 @@ getJasmineRequireObj().toThrowMatching = function(j$) {
|
||||
function toThrowMatching(matchersUtil) {
|
||||
return {
|
||||
compare: function(actual, predicate) {
|
||||
var thrown;
|
||||
|
||||
if (typeof actual !== 'function') {
|
||||
throw new Error(usageError('Actual is not a Function'));
|
||||
}
|
||||
@@ -26,6 +24,8 @@ getJasmineRequireObj().toThrowMatching = function(j$) {
|
||||
throw new Error(usageError('Predicate is not a Function'));
|
||||
}
|
||||
|
||||
let thrown;
|
||||
|
||||
try {
|
||||
actual();
|
||||
return fail('Expected function to throw an exception.');
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
// eslint-disable-next-line no-unused-vars,no-var
|
||||
var getJasmineRequireObj = (function(jasmineGlobal) {
|
||||
var jasmineRequire;
|
||||
let jasmineRequire;
|
||||
|
||||
if (
|
||||
typeof module !== 'undefined' &&
|
||||
@@ -29,7 +29,7 @@ var getJasmineRequireObj = (function(jasmineGlobal) {
|
||||
}
|
||||
|
||||
getJasmineRequire().core = function(jRequire) {
|
||||
var j$ = {};
|
||||
const j$ = {};
|
||||
|
||||
jRequire.base(j$, jasmineGlobal);
|
||||
j$.util = jRequire.util(j$);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
getJasmineRequireObj().interface = function(jasmine, env) {
|
||||
var jasmineInterface = {
|
||||
const jasmineInterface = {
|
||||
/**
|
||||
* Callback passed to parts of the Jasmine base interface.
|
||||
*
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
getJasmineRequireObj().util = function(j$) {
|
||||
var util = {};
|
||||
const util = {};
|
||||
|
||||
util.inherit = function(childClass, parentClass) {
|
||||
var Subclass = function() {};
|
||||
const Subclass = function() {};
|
||||
Subclass.prototype = parentClass.prototype;
|
||||
childClass.prototype = new Subclass();
|
||||
};
|
||||
|
||||
util.argsToArray = function(args) {
|
||||
var arrayOfArgs = [];
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
const arrayOfArgs = [];
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
arrayOfArgs.push(args[i]);
|
||||
}
|
||||
return arrayOfArgs;
|
||||
@@ -20,7 +20,7 @@ getJasmineRequireObj().util = function(j$) {
|
||||
};
|
||||
|
||||
util.arrayContains = function(array, search) {
|
||||
var i = array.length;
|
||||
let i = array.length;
|
||||
while (i--) {
|
||||
if (array[i] === search) {
|
||||
return true;
|
||||
@@ -34,8 +34,8 @@ getJasmineRequireObj().util = function(j$) {
|
||||
return obj.slice();
|
||||
}
|
||||
|
||||
var cloned = {};
|
||||
for (var prop in obj) {
|
||||
const cloned = {};
|
||||
for (const prop in obj) {
|
||||
if (obj.hasOwnProperty(prop)) {
|
||||
cloned[prop] = obj[prop];
|
||||
}
|
||||
@@ -45,10 +45,10 @@ getJasmineRequireObj().util = function(j$) {
|
||||
};
|
||||
|
||||
util.cloneArgs = function(args) {
|
||||
var clonedArgs = [];
|
||||
var argsAsArray = j$.util.argsToArray(args);
|
||||
for (var i = 0; i < argsAsArray.length; i++) {
|
||||
var str = Object.prototype.toString.apply(argsAsArray[i]),
|
||||
const clonedArgs = [];
|
||||
const argsAsArray = j$.util.argsToArray(args);
|
||||
for (let i = 0; i < argsAsArray.length; i++) {
|
||||
const str = Object.prototype.toString.apply(argsAsArray[i]),
|
||||
primitives = /^\[object (Boolean|String|RegExp|Number)/;
|
||||
|
||||
// All falsey values are either primitives, `null`, or `undefined.
|
||||
@@ -64,7 +64,7 @@ getJasmineRequireObj().util = function(j$) {
|
||||
};
|
||||
|
||||
util.getPropertyDescriptor = function(obj, methodName) {
|
||||
var descriptor,
|
||||
let descriptor,
|
||||
proto = obj;
|
||||
|
||||
do {
|
||||
@@ -87,12 +87,12 @@ getJasmineRequireObj().util = function(j$) {
|
||||
};
|
||||
|
||||
function callerFile() {
|
||||
var trace = new j$.StackTrace(util.errorWithStack());
|
||||
const trace = new j$.StackTrace(util.errorWithStack());
|
||||
return trace.frames[2].file;
|
||||
}
|
||||
|
||||
util.jasmineFile = (function() {
|
||||
var result;
|
||||
let result;
|
||||
|
||||
return function() {
|
||||
if (!result) {
|
||||
@@ -113,7 +113,7 @@ getJasmineRequireObj().util = function(j$) {
|
||||
// exceeded. But on all currently supported JS runtimes, setTimeout calls
|
||||
// the callback immediately when the timeout is greater than 2147483647
|
||||
// (the maximum value of a signed 32 bit integer).
|
||||
var max = 2147483647;
|
||||
const max = 2147483647;
|
||||
|
||||
if (timeout > max) {
|
||||
throw new Error(
|
||||
|
||||
Reference in New Issue
Block a user