Socket
Socket
Sign inDemoInstall

jasmine-core

Package Overview
Dependencies
0
Maintainers
2
Versions
62
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.4.0 to 3.5.0

.gitattributes

59

.github/CONTRIBUTING.md

@@ -33,3 +33,2 @@ # Developing for Jasmine Core

* `/src` contains all of the source files
* `/src/console` - Node.js-specific files
* `/src/core` - generic source files

@@ -51,4 +50,2 @@ * `/src/html` - browser-specific files

__This is new for Jasmine 2.0.__
This file does all of the setup necessary for Jasmine to work. It loads all of the code, creates an `Env`, attaches the global functions, and builds the reporter. It also sets up the execution of the `Env` - for browsers this is in `window.onload`. While the default in `lib` is appropriate for browsers, projects may wish to customize this file.

@@ -60,26 +57,24 @@

* Browser Minimum
* IE8
* Firefox 3.x
* Chrome ??
* Safari 5
Jasmine supports the following environments:
* Browsers
* IE10+
* Edge Latest
* Firefox Latest
* Chrome Latest
* Safari 8+
* Node.js
* 8
* 10
* 12
## Development
All source code belongs in `src/`. The `core/` directory contains the bulk of Jasmine's functionality. This code should remain browser- and environment-agnostic. If your feature or fix cannot be, as mentioned above, please degrade gracefully. Any code that should only be in a non-browser environment should live in `src/console/`. Any code that depends on a browser (specifically, it expects `window` to be the global or `document` is present) should live in `src/html/`.
All source code belongs in `src/`. The `core/` directory contains the bulk of Jasmine's functionality. This code should remain browser- and environment-agnostic. If your feature or fix cannot be, as mentioned above, please degrade gracefully. Any code that depends on a browser (specifically, it expects `window` to be the global or `document` is present) should live in `src/html/`.
### Install Dependencies
Jasmine Core relies on Ruby and Node.js.
Jasmine Core relies on Node.js.
To install the Ruby dependencies, you will need Ruby, Rubygems, and Bundler available. Then:
$ bundle
...will install all of the Ruby dependencies. If the ffi gem fails to build its native extensions, you may need to manually install some system dependencies. On Ubuntu:
$ apt-get install gcc ruby ruby-dev libxml2 libxml2-dev libxslt1-dev
...should get you to the point that `bundle` can install everything.
To install the Node dependencies, you will need Node.js, Npm, and [Grunt](http://gruntjs.com/), the [grunt-cli](https://github.com/gruntjs/grunt-cli) and ensure that `grunt` is on your path.

@@ -91,5 +86,5 @@

$ grunt
$ npm test
...if you see that JSHint runs, your system is ready.
...you should see tests run and eslint checking formatting.

@@ -105,3 +100,3 @@ ### How to write new Jasmine code

* _Write code in the style of the rest of the repo_ - Jasmine should look like a cohesive whole
* _Ensure the *entire* test suite is green_ in all the big browsers, Node, and JSHint - your contribution shouldn't break Jasmine for other users
* _Ensure the *entire* test suite is green_ in all the big browsers, Node, and ESLint - your contribution shouldn't break Jasmine for other users

@@ -112,14 +107,8 @@ Follow these tips and your pull request, patch, or suggestion is much more likely to be integrated.

Jasmine uses the [Jasmine Ruby gem](http://github.com/jasmine/jasmine-gem) to test itself in browser.
Jasmine uses some internal tooling to test itself in browser on Travis. This tooling _should_ work locally as well.
$ bundle exec rake jasmine
$ node ci.js
...and then visit `http://localhost:8888` to run specs.
You can also set the `JASMINE_BROWSER` environment variable to specify which browser should be used.
Jasmine uses the [Jasmine NPM package](http://github.com/jasmine/jasmine-npm) to test itself in a Node.js/npm environment.
$ grunt execSpecsInNode
...and then the results will print to the console. All specs run except those that expect a browser (the specs in `spec/html` are ignored).
The easiest way to run the tests in **Internet Explorer** is to run a VM that has IE installed. It's easy to do this with VirtualBox.

@@ -132,3 +121,3 @@

1. Run the VM and start IE.
1. With `bundle exec rake jasmine` running on your host machine, navigate to `http://10.0.2.2:8888` in IE.
1. With `npm run serve` running on your host machine, navigate to `http://10.0.2.2:8888` in IE.

@@ -138,4 +127,4 @@ ## Before Committing or Submitting a Pull Request

1. Ensure all specs are green in browser *and* node
1. Ensure JSHint is green with `grunt jshint`
1. Build `jasmine.js` with `grunt buildDistribution` and run all specs again - this ensures that your changes self-test well
1. Ensure eslint and prettier are clean as part of your `npm test` command. You can run `npm run cleanup` to have prettier re-write the files.
1. Build `jasmine.js` with `npm run build` and run all specs again - this ensures that your changes self-test well
1. Revert your changes to `jasmine.js` and `jasmine-html.js`

@@ -142,0 +131,0 @@ * We do this because `jasmine.js` and `jasmine-html.js` are auto-generated (as you've seen in the previous steps) and accepting multiple pull requests when this auto-generated file changes causes lots of headaches

@@ -9,2 +9,52 @@ MANIFEST.in

./lib/jasmine-core/core.py
./node_modules/node-gyp/gyp/PRESUBMIT.py
./node_modules/node-gyp/gyp/gyp_main.py
./node_modules/node-gyp/gyp/setup.py
./node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py
./node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py
./node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py
./node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py
./node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py
./node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py
./node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py
./node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py
./node_modules/node-gyp/gyp/pylib/gyp/__init__.py
./node_modules/node-gyp/gyp/pylib/gyp/common.py
./node_modules/node-gyp/gyp/pylib/gyp/common_test.py
./node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py
./node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py
./node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py
./node_modules/node-gyp/gyp/pylib/gyp/input.py
./node_modules/node-gyp/gyp/pylib/gyp/input_test.py
./node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py
./node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py
./node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py
./node_modules/node-gyp/gyp/pylib/gyp/ordered_dict.py
./node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py
./node_modules/node-gyp/gyp/pylib/gyp/win_tool.py
./node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py
./node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py
./node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py
./node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/android.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py
./node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py
./node_modules/node-gyp/gyp/tools/graphviz.py
./node_modules/node-gyp/gyp/tools/pretty_gyp.py
./node_modules/node-gyp/gyp/tools/pretty_sln.py
./node_modules/node-gyp/gyp/tools/pretty_vcproj.py
./node_modules/node-gyp/test/fixtures/test-charmap.py
./node_modules/node-gyp/tools/gyp/pylib/gyp/generator/compile_commands_json.py
./node_modules/walkdir/test/comparison/find.py

@@ -11,0 +61,0 @@ images/__init__.py

@@ -55,4 +55,3 @@ /*

ResultsStateBuilder.prototype.specStarted = function(result) {
};
ResultsStateBuilder.prototype.specStarted = function(result) {};

@@ -75,6 +74,6 @@ ResultsStateBuilder.prototype.specDone = function(result) {

function HtmlReporter(options) {
var config = function() { return (options.env && options.env.configuration()) || {}; },
var config = function() {
return (options.env && options.env.configuration()) || {};
},
getContainer = options.getContainer,

@@ -84,5 +83,5 @@ createElement = options.createElement,

navigateWithNewParam = options.navigateWithNewParam || function() {},
addToExistingQueryString = options.addToExistingQueryString || defaultQueryString,
addToExistingQueryString =
options.addToExistingQueryString || defaultQueryString,
filterSpecs = options.filterSpecs,
timer = options.timer || j$.noopTimer,
htmlReporterMain,

@@ -94,11 +93,21 @@ symbols,

clearPrior();
htmlReporterMain = createDom('div', {className: 'jasmine_html-reporter'},
createDom('div', {className: 'jasmine-banner'},
createDom('a', {className: 'jasmine-title', href: 'http://jasmine.github.io/', target: '_blank'}),
createDom('span', {className: 'jasmine-version'}, j$.version)
htmlReporterMain = createDom(
'div',
{ className: 'jasmine_html-reporter' },
createDom(
'div',
{ className: 'jasmine-banner' },
createDom('a', {
className: 'jasmine-title',
href: 'http://jasmine.github.io/',
target: '_blank'
}),
createDom('span', { className: 'jasmine-version' }, j$.version)
),
createDom('ul', {className: 'jasmine-symbol-summary'}),
createDom('div', {className: 'jasmine-alert'}),
createDom('div', {className: 'jasmine-results'},
createDom('div', {className: 'jasmine-failures'})
createDom('ul', { className: 'jasmine-symbol-summary' }),
createDom('div', { className: 'jasmine-alert' }),
createDom(
'div',
{ className: 'jasmine-results' },
createDom('div', { className: 'jasmine-failures' })
)

@@ -112,6 +121,5 @@ );

totalSpecsDefined = options.totalSpecsDefined || 0;
timer.start();
};
var summary = createDom('div', {className: 'jasmine-summary'});
var summary = createDom('div', { className: 'jasmine-summary' });

@@ -141,16 +149,22 @@ var stateBuilder = new ResultsStateBuilder();

if(noExpectations(result) && typeof console !== 'undefined' && typeof console.error !== 'undefined') {
console.error('Spec \'' + result.fullName + '\' has no expectations.');
if (noExpectations(result)) {
var noSpecMsg = "Spec '" + result.fullName + "' has no expectations.";
if (result.status === 'failed') {
console.error(noSpecMsg);
} else {
console.warn(noSpecMsg);
}
}
if (!symbols){
if (!symbols) {
symbols = find('.jasmine-symbol-summary');
}
symbols.appendChild(createDom('li', {
symbols.appendChild(
createDom('li', {
className: this.displaySpecInCorrectFormat(result),
id: 'spec_' + result.id,
title: result.fullName
}
));
})
);

@@ -165,8 +179,12 @@ if (result.status === 'failed') {

this.displaySpecInCorrectFormat = function(result) {
return noExpectations(result) ? 'jasmine-empty' : this.resultStatus(result.status);
return noExpectations(result) && result.status === 'passed'
? 'jasmine-empty'
: this.resultStatus(result.status);
};
this.resultStatus = function(status) {
if(status === 'excluded') {
return config().hideDisabled ? 'jasmine-excluded-no-display' : 'jasmine-excluded';
if (status === 'excluded') {
return config().hideDisabled
? 'jasmine-excluded-no-display'
: 'jasmine-excluded';
}

@@ -181,3 +199,9 @@ return 'jasmine-' + status;

var i;
alert.appendChild(createDom('span', {className: 'jasmine-duration'}, 'finished in ' + timer.elapsed() / 1000 + 's'));
alert.appendChild(
createDom(
'span',
{ className: 'jasmine-duration' },
'finished in ' + doneResult.totalTime / 1000 + 's'
)
);

@@ -187,7 +211,18 @@ banner.appendChild(optionsMenu(config()));

if (stateBuilder.specsExecuted < totalSpecsDefined) {
var skippedMessage = 'Ran ' + stateBuilder.specsExecuted + ' of ' + totalSpecsDefined + ' specs - run all';
var skippedMessage =
'Ran ' +
stateBuilder.specsExecuted +
' of ' +
totalSpecsDefined +
' specs - run all';
var skippedLink = addToExistingQueryString('spec', '');
alert.appendChild(
createDom('span', {className: 'jasmine-bar jasmine-skipped'},
createDom('a', {href: skippedLink, title: 'Run all specs'}, skippedMessage)
createDom(
'span',
{ className: 'jasmine-bar jasmine-skipped' },
createDom(
'a',
{ href: skippedLink, title: 'Run all specs' },
skippedMessage
)
)

@@ -202,4 +237,10 @@ );

if (totalSpecsDefined > 0 || failed) {
statusBarMessage += pluralize('spec', stateBuilder.specsExecuted) + ', ' + pluralize('failure', stateBuilder.failureCount);
if (stateBuilder.pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', stateBuilder.pendingSpecCount); }
statusBarMessage +=
pluralize('spec', stateBuilder.specsExecuted) +
', ' +
pluralize('failure', stateBuilder.failureCount);
if (stateBuilder.pendingSpecCount) {
statusBarMessage +=
', ' + pluralize('pending spec', stateBuilder.pendingSpecCount);
}
}

@@ -211,3 +252,7 @@

statusBarClassName += ' jasmine-incomplete ';
statusBarMessage = 'Incomplete: ' + doneResult.incompleteReason + ', ' + statusBarMessage;
statusBarMessage =
'Incomplete: ' +
doneResult.incompleteReason +
', ' +
statusBarMessage;
} else {

@@ -219,9 +264,25 @@ statusBarClassName += ' jasmine-failed ';

if (order && order.random) {
seedBar = createDom('span', {className: 'jasmine-seed-bar'},
seedBar = createDom(
'span',
{ className: 'jasmine-seed-bar' },
', randomized with seed ',
createDom('a', {title: 'randomized with seed ' + order.seed, href: seedHref(order.seed)}, order.seed)
createDom(
'a',
{
title: 'randomized with seed ' + order.seed,
href: seedHref(order.seed)
},
order.seed
)
);
}
alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage, seedBar));
alert.appendChild(
createDom(
'span',
{ className: statusBarClassName },
statusBarMessage,
seedBar
)
);

@@ -231,4 +292,10 @@ var errorBarClassName = 'jasmine-bar jasmine-errored';

for(i = 0; i < globalFailures.length; i++) {
alert.appendChild(createDom('span', {className: errorBarClassName}, globalFailureMessage(globalFailures[i])));
for (i = 0; i < globalFailures.length; i++) {
alert.appendChild(
createDom(
'span',
{ className: errorBarClassName },
globalFailureMessage(globalFailures[i])
)
);
}

@@ -241,3 +308,5 @@

if (failure.filename) {
return prefix + ' in ' + failure.filename + ' line ' + failure.lineno;
return (
prefix + ' in ' + failure.filename + ' line ' + failure.lineno
);
} else {

@@ -254,5 +323,11 @@ return prefix;

var warningBarClassName = 'jasmine-bar jasmine-warning';
for(i = 0; i < deprecationWarnings.length; i++) {
for (i = 0; i < deprecationWarnings.length; i++) {
var warning = deprecationWarnings[i];
alert.appendChild(createDom('span', {className: warningBarClassName}, 'DEPRECATION: ' + warning));
alert.appendChild(
createDom(
'span',
{ className: warningBarClassName },
'DEPRECATION: ' + warning
)
);
}

@@ -267,9 +342,25 @@

alert.appendChild(
createDom('span', {className: 'jasmine-menu jasmine-bar jasmine-spec-list'},
createDom(
'span',
{ className: 'jasmine-menu jasmine-bar jasmine-spec-list' },
createDom('span', {}, 'Spec List | '),
createDom('a', {className: 'jasmine-failures-menu', href: '#'}, 'Failures')));
createDom(
'a',
{ className: 'jasmine-failures-menu', href: '#' },
'Failures'
)
)
);
alert.appendChild(
createDom('span', {className: 'jasmine-menu jasmine-bar jasmine-failure-list'},
createDom('a', {className: 'jasmine-spec-list-menu', href: '#'}, 'Spec List'),
createDom('span', {}, ' | Failures ')));
createDom(
'span',
{ className: 'jasmine-menu jasmine-bar jasmine-failure-list' },
createDom(
'a',
{ className: 'jasmine-spec-list-menu', href: '#' },
'Spec List'
),
createDom('span', {}, ' | Failures ')
)
);

@@ -295,7 +386,8 @@ find('.jasmine-failures-menu').onclick = function() {

function failureDom(result) {
var failure =
createDom('div', {className: 'jasmine-spec-detail jasmine-failed'},
failureDescription(result, stateBuilder.currentParent),
createDom('div', {className: 'jasmine-messages'})
);
var failure = createDom(
'div',
{ className: 'jasmine-spec-detail jasmine-failed' },
failureDescription(result, stateBuilder.currentParent),
createDom('div', { className: 'jasmine-messages' })
);
var messages = failure.childNodes[1];

@@ -305,6 +397,28 @@

var expectation = result.failedExpectations[i];
messages.appendChild(createDom('div', {className: 'jasmine-result-message'}, expectation.message));
messages.appendChild(createDom('div', {className: 'jasmine-stack-trace'}, expectation.stack));
messages.appendChild(
createDom(
'div',
{ className: 'jasmine-result-message' },
expectation.message
)
);
messages.appendChild(
createDom(
'div',
{ className: 'jasmine-stack-trace' },
expectation.stack
)
);
}
if (result.failedExpectations.length === 0) {
messages.appendChild(
createDom(
'div',
{ className: 'jasmine-result-message' },
'Spec has no expectations'
)
);
}
return failure;

@@ -321,5 +435,16 @@ }

if (resultNode.type === 'suite') {
var suiteListNode = createDom('ul', {className: 'jasmine-suite', id: 'suite-' + resultNode.result.id},
createDom('li', {className: 'jasmine-suite-detail jasmine-' + resultNode.result.status},
createDom('a', {href: specHref(resultNode.result)}, resultNode.result.description)
var suiteListNode = createDom(
'ul',
{ className: 'jasmine-suite', id: 'suite-' + resultNode.result.id },
createDom(
'li',
{
className:
'jasmine-suite-detail jasmine-' + resultNode.result.status
},
createDom(
'a',
{ href: specHref(resultNode.result) },
resultNode.result.description
)
)

@@ -333,18 +458,30 @@ );

if (domParent.getAttribute('class') !== 'jasmine-specs') {
specListNode = createDom('ul', {className: 'jasmine-specs'});
specListNode = createDom('ul', { className: 'jasmine-specs' });
domParent.appendChild(specListNode);
}
var specDescription = resultNode.result.description;
if(noExpectations(resultNode.result)) {
if (noExpectations(resultNode.result)) {
specDescription = 'SPEC HAS NO EXPECTATIONS ' + specDescription;
}
if(resultNode.result.status === 'pending' && resultNode.result.pendingReason !== '') {
specDescription = specDescription + ' PENDING WITH MESSAGE: ' + resultNode.result.pendingReason;
if (
resultNode.result.status === 'pending' &&
resultNode.result.pendingReason !== ''
) {
specDescription =
specDescription +
' PENDING WITH MESSAGE: ' +
resultNode.result.pendingReason;
}
specListNode.appendChild(
createDom('li', {
createDom(
'li',
{
className: 'jasmine-' + resultNode.result.status,
id: 'spec-' + resultNode.result.id
},
createDom('a', {href: specHref(resultNode.result)}, specDescription)
createDom(
'a',
{ href: specHref(resultNode.result) },
specDescription
)
)

@@ -357,6 +494,12 @@ );

function optionsMenu(config) {
var optionsMenuDom = createDom('div', { className: 'jasmine-run-options' },
var optionsMenuDom = createDom(
'div',
{ className: 'jasmine-run-options' },
createDom('span', { className: 'jasmine-trigger' }, 'Options'),
createDom('div', { className: 'jasmine-payload' },
createDom('div', { className: 'jasmine-stop-on-failure' },
createDom(
'div',
{ className: 'jasmine-payload' },
createDom(
'div',
{ className: 'jasmine-stop-on-failure' },
createDom('input', {

@@ -367,4 +510,11 @@ className: 'jasmine-fail-fast',

}),
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-fail-fast' }, 'stop execution on spec failure')),
createDom('div', { className: 'jasmine-throw-failures' },
createDom(
'label',
{ className: 'jasmine-label', for: 'jasmine-fail-fast' },
'stop execution on spec failure'
)
),
createDom(
'div',
{ className: 'jasmine-throw-failures' },
createDom('input', {

@@ -375,4 +525,11 @@ className: 'jasmine-throw',

}),
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-throw-failures' }, 'stop spec on expectation failure')),
createDom('div', { className: 'jasmine-random-order' },
createDom(
'label',
{ className: 'jasmine-label', for: 'jasmine-throw-failures' },
'stop spec on expectation failure'
)
),
createDom(
'div',
{ className: 'jasmine-random-order' },
createDom('input', {

@@ -383,4 +540,11 @@ className: 'jasmine-random',

}),
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-random-order' }, 'run tests in random order')),
createDom('div', { className: 'jasmine-hide-disabled' },
createDom(
'label',
{ className: 'jasmine-label', for: 'jasmine-random-order' },
'run tests in random order'
)
),
createDom(
'div',
{ className: 'jasmine-hide-disabled' },
createDom('input', {

@@ -391,3 +555,8 @@ className: 'jasmine-disabled',

}),
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-hide-disabled' }, 'hide disabled tests'))
createDom(
'label',
{ className: 'jasmine-label', for: 'jasmine-hide-disabled' },
'hide disabled tests'
)
)
)

@@ -402,3 +571,5 @@ );

var throwCheckbox = optionsMenuDom.querySelector('#jasmine-throw-failures');
var throwCheckbox = optionsMenuDom.querySelector(
'#jasmine-throw-failures'
);
throwCheckbox.checked = config.oneFailurePerSpec;

@@ -409,3 +580,5 @@ throwCheckbox.onclick = function() {

var randomCheckbox = optionsMenuDom.querySelector('#jasmine-random-order');
var randomCheckbox = optionsMenuDom.querySelector(
'#jasmine-random-order'
);
randomCheckbox.checked = config.random;

@@ -428,3 +601,6 @@ randomCheckbox.onclick = function() {

if (isOpen.test(optionsPayload.className)) {
optionsPayload.className = optionsPayload.className.replace(isOpen, '');
optionsPayload.className = optionsPayload.className.replace(
isOpen,
''
);
} else {

@@ -439,4 +615,10 @@ optionsPayload.className += ' jasmine-open';

function failureDescription(result, suite) {
var wrapper = createDom('div', {className: 'jasmine-description'},
createDom('a', {title: result.description, href: specHref(result)}, result.description)
var wrapper = createDom(
'div',
{ className: 'jasmine-description' },
createDom(
'a',
{ title: result.description, href: specHref(result) },
result.description
)
);

@@ -447,3 +629,7 @@ var suiteLink;

wrapper.insertBefore(createTextNode(' > '), wrapper.firstChild);
suiteLink = createDom('a', {href: suiteHref(suite)}, suite.result.description);
suiteLink = createDom(
'a',
{ href: suiteHref(suite) },
suite.result.description
);
wrapper.insertBefore(suiteLink, wrapper.firstChild);

@@ -470,3 +656,3 @@

if (result && result.deprecationWarnings) {
for(var i = 0; i < result.deprecationWarnings.length; i++) {
for (var i = 0; i < result.deprecationWarnings.length; i++) {
var warning = result.deprecationWarnings[i].message;

@@ -488,3 +674,3 @@ if (!j$.util.arrayContains(warning)) {

if(oldReporter) {
if (oldReporter) {
getContainer().removeChild(oldReporter);

@@ -521,3 +707,3 @@ }

function pluralize(singular, count) {
var word = (count == 1 ? singular : singular + 's');
var word = count == 1 ? singular : singular + 's';

@@ -544,4 +730,9 @@ return '' + count + ' ' + word;

function noExpectations(result) {
return (result.failedExpectations.length + result.passedExpectations.length) === 0 &&
result.status === 'passed';
var allExpectations =
result.failedExpectations.length + result.passedExpectations.length;
return (
allExpectations === 0 &&
(result.status === 'passed' || result.status === 'failed')
);
}

@@ -569,3 +760,6 @@

function HtmlSpecFilter(options) {
var filterString = options && options.filterString() && options.filterString().replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
var filterString =
options &&
options.filterString() &&
options.filterString().replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
var filterPattern = new RegExp(filterString);

@@ -607,5 +801,7 @@

function QueryString(options) {
this.navigateWithNewParam = function(key, value) {
options.getWindowLocation().search = this.fullStringWithNewParam(key, value);
options.getWindowLocation().search = this.fullStringWithNewParam(
key,
value
);
};

@@ -628,3 +824,5 @@

for (var prop in paramMap) {
qStrPairs.push(encodeURIComponent(prop) + '=' + encodeURIComponent(paramMap[prop]));
qStrPairs.push(
encodeURIComponent(prop) + '=' + encodeURIComponent(paramMap[prop])
);
}

@@ -653,3 +851,2 @@ return '?' + qStrPairs.join('&');

}
}

@@ -656,0 +853,0 @@

{
"name": "jasmine-core",
"license": "MIT",
"version": "3.4.0",
"version": "3.5.0",
"repository": {

@@ -16,3 +16,10 @@ "type": "git",

"scripts": {
"test": "grunt jshint execSpecsInNode"
"posttest": "eslint src/**/*.js spec/**/*.js && prettier --check src/**/*.js spec/**/*.js",
"test": "grunt --stack execSpecsInNode",
"cleanup": "prettier --write src/**/*.js spec/**/*.js",
"build": "grunt buildDistribution",
"serve": "node spec/support/localJasmineBrowser.js",
"serve:performance": "node spec/support/localJasmineBrowser.js jasmine-browser-performance.json",
"ci": "node spec/support/ci.js",
"ci:performance": "node spec/support/ci.js jasmine-browser-performance.json"
},

@@ -23,3 +30,5 @@ "description": "Official packaging of Jasmine's core files for use by Node.js projects.",

"devDependencies": {
"acorn": "^6.0.0",
"ejs": "^2.5.5",
"eslint": "^5.16.0",
"express": "^4.16.4",

@@ -31,13 +40,52 @@ "fast-glob": "^2.2.6",

"grunt-contrib-concat": "^1.0.1",
"grunt-contrib-jshint": "^2.0.0",
"grunt-css-url-embed": "^1.11.1",
"grunt-sass": "^3.0.2",
"jasmine": "^3.3.1",
"jsdom": "^13.1.0",
"jasmine": "^3.4.0",
"jasmine-browser-runner": "0.3.0",
"jsdom": "^15.0.0",
"load-grunt-tasks": "^4.0.0",
"node-sass": "^4.11.0",
"prettier": "1.17.1",
"selenium-webdriver": "^3.6.0",
"shelljs": "^0.8.3",
"temp": "^0.9.0"
},
"prettier": {
"singleQuote": true
},
"eslintConfig": {
"rules": {
"quotes": [
"error",
"single",
{
"avoidEscape": true
}
],
"no-unused-vars": [
"error",
{
"args": "none"
}
],
"block-spacing": "error",
"comma-dangle": [
"error",
"never"
],
"func-call-spacing": [
"error",
"never"
],
"key-spacing": "error",
"no-tabs": "error",
"no-trailing-spaces": "error",
"no-whitespace-before-property": "error",
"semi": [
"error",
"always"
],
"space-before-blocks": "error"
}
}
}

@@ -55,4 +55,5 @@ <a name="README">[<img src="https://rawgithub.com/jasmine/jasmine/master/images/jasmine-horizontal.svg" width="400px" />](http://jasmine.github.io)</a>

Jasmine tests itself across many browsers (Safari, Chrome, Firefox, PhantomJS, Microsoft Edge, and new Internet Explorer) as well as nodejs. To see the exact version tests are run against look at our [.travis.yml](https://github.com/jasmine/jasmine/blob/master/.travis.yml)
Jasmine tests itself across many browsers (Safari, Chrome, Firefox, Microsoft Edge, and new Internet Explorer) as well as nodejs. To see the exact version tests are run against look at our [.travis.yml](https://github.com/jasmine/jasmine/blob/master/.travis.yml)
[![Sauce Test Status](https://saucelabs.com/browser-matrix/jasmine-js.svg)](https://saucelabs.com/u/jasmine-js)

@@ -83,2 +84,2 @@ ## Support

## License
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjasmine%2Fjasmine.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjasmine%2Fjasmine?ref=badge_large)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjasmine%2Fjasmine.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjasmine%2Fjasmine?ref=badge_large)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc