jasmine-core
Advanced tools
Comparing version 2.0.4 to 2.1.0
@@ -103,3 +103,3 @@ # Developing for Jasmine Core | ||
Jasmine uses Node.js with a custom runner to test outside of a browser. | ||
Jasmine uses the [Jasmine NPM package](http://github.com/pivotal/jasmine-npm) to test itself in a Node.js/npm environment. | ||
@@ -106,0 +106,0 @@ $ grunt execSpecsInNode |
@@ -57,4 +57,7 @@ /* | ||
none: '\x1B[0m' | ||
}; | ||
}, | ||
failedSuites = []; | ||
print('ConsoleReporter is deprecated and will be removed in a future version.'); | ||
this.jasmineStarted = function() { | ||
@@ -93,5 +96,8 @@ specCount = 0; | ||
print('Finished in ' + seconds + ' ' + plural('second', seconds)); | ||
printNewline(); | ||
for(i = 0; i < failedSuites.length; i++) { | ||
suiteFailureDetails(failedSuites[i]); | ||
} | ||
onComplete(failureCount === 0); | ||
@@ -121,2 +127,9 @@ }; | ||
this.suiteDone = function(result) { | ||
if (result.failedExpectations && result.failedExpectations.length > 0) { | ||
failureCount++; | ||
failedSuites.push(result); | ||
} | ||
}; | ||
return this; | ||
@@ -166,2 +179,13 @@ | ||
} | ||
function suiteFailureDetails(result) { | ||
for (var i = 0; i < result.failedExpectations.length; i++) { | ||
printNewline(); | ||
print(colored('red', 'An error was thrown in an afterAll')); | ||
printNewline(); | ||
print(colored('red', 'AfterAll ' + result.failedExpectations[i].message)); | ||
} | ||
printNewline(); | ||
} | ||
} | ||
@@ -168,0 +192,0 @@ |
module.exports = require("./jasmine-core/jasmine.js"); | ||
module.exports.boot = require('./jasmine-core/node_boot.js'); | ||
module.exports.files = (function() { | ||
var path = require('path'), | ||
fs = require('fs'); | ||
var path = require('path'), | ||
fs = require('fs'); | ||
var rootPath = path.join(__dirname, "jasmine-core"), | ||
bootFiles = ['boot.js'], | ||
nodeBootFiles = ['node_boot.js'], | ||
cssFiles = [], | ||
jsFiles = [], | ||
jsFilesToSkip = ['jasmine.js'].concat(bootFiles, nodeBootFiles); | ||
var rootPath = path.join(__dirname, "jasmine-core"), | ||
bootFiles = ['boot.js'], | ||
nodeBootFiles = ['node_boot.js'], | ||
cssFiles = [], | ||
jsFiles = [], | ||
jsFilesToSkip = ['jasmine.js'].concat(bootFiles, nodeBootFiles); | ||
fs.readdirSync(rootPath).forEach(function(file) { | ||
if(fs.statSync(path.join(rootPath, file)).isFile()) { | ||
switch(path.extname(file)) { | ||
case '.css': | ||
cssFiles.push(file); | ||
break; | ||
case '.js': | ||
if (jsFilesToSkip.indexOf(file) < 0) { | ||
jsFiles.push(file); | ||
} | ||
break; | ||
fs.readdirSync(rootPath).forEach(function(file) { | ||
if(fs.statSync(path.join(rootPath, file)).isFile()) { | ||
switch(path.extname(file)) { | ||
case '.css': | ||
cssFiles.push(file); | ||
break; | ||
case '.js': | ||
if (jsFilesToSkip.indexOf(file) < 0) { | ||
jsFiles.push(file); | ||
} | ||
break; | ||
} | ||
}); | ||
} | ||
}); | ||
return { | ||
path: rootPath, | ||
bootDir: rootPath, | ||
bootFiles: bootFiles, | ||
nodeBootFiles: nodeBootFiles, | ||
cssFiles: cssFiles, | ||
jsFiles: ['jasmine.js'].concat(jsFiles), | ||
imagesDir: path.join(__dirname, '../images') | ||
}; | ||
}()); | ||
module.exports.files = { | ||
path: rootPath, | ||
bootDir: rootPath, | ||
bootFiles: bootFiles, | ||
nodeBootFiles: nodeBootFiles, | ||
cssFiles: cssFiles, | ||
jsFiles: ['jasmine.js'].concat(jsFiles), | ||
imagesDir: path.join(__dirname, '../images') | ||
}; |
@@ -24,3 +24,3 @@ /* | ||
/** | ||
Starting with version 2.0, this file "boots" Jasmine, performing all of the necessary initialization before executing the loaded environment and all of a project's specs. This file should be loaded after `jasmine.js`, but before any project source files or spec files are loaded. Thus this file can also be used to customize Jasmine for a project. | ||
Starting with version 2.0, this file "boots" Jasmine, performing all of the necessary initialization before executing the loaded environment and all of a project's specs. This file should be loaded after `jasmine.js` and `jasmine_html.js`, but before any project source files or spec files are loaded. Thus this file can also be used to customize Jasmine for a project. | ||
@@ -27,0 +27,0 @@ If a project is using Jasmine via the standalone distribution, this file can be customized directly. If a project is using Jasmine via the [Ruby gem][jasmine-gem], this file can be copied into the support directory via `jasmine copy_boot_js`. Other environments (e.g., Python) will have different mechanisms. |
describe("Player", function() { | ||
var Player = require('../../jasmine_examples/Player.js'); | ||
var Song = require('../../jasmine_examples/Song.js'); | ||
var Player = require('../src/Player.js'); | ||
var Song = require('../src/Song.js'); | ||
var player; | ||
@@ -5,0 +5,0 @@ var song; |
@@ -49,3 +49,4 @@ /* | ||
htmlReporterMain, | ||
symbols; | ||
symbols, | ||
failedSuites = []; | ||
@@ -87,2 +88,6 @@ this.initialize = function() { | ||
this.suiteDone = function(result) { | ||
if (result.status == 'failed') { | ||
failedSuites.push(result); | ||
} | ||
if (currentParent == topResults) { | ||
@@ -101,3 +106,3 @@ return; | ||
this.specDone = function(result) { | ||
if(noExpectations(result) && console && console.error) { | ||
if(noExpectations(result) && typeof console !== 'undefined' && typeof console.error !== 'undefined') { | ||
console.error('Spec \'' + result.fullName + '\' has no expectations.'); | ||
@@ -184,2 +189,11 @@ } | ||
for(i = 0; i < failedSuites.length; i++) { | ||
var failedSuite = failedSuites[i]; | ||
for(var j = 0; j < failedSuite.failedExpectations.length; j++) { | ||
var errorBarMessage = 'AfterAll ' + failedSuite.failedExpectations[j].message; | ||
var errorBarClassName = 'bar errored'; | ||
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessage)); | ||
} | ||
} | ||
var results = find('.results'); | ||
@@ -186,0 +200,0 @@ results.appendChild(summary); |
/* | ||
http://www.JSON.org/json2.js | ||
2009-08-17 | ||
json2.js | ||
2014-02-04 | ||
@@ -11,2 +11,10 @@ Public Domain. | ||
This code should be minified before deployment. | ||
See http://javascript.crockford.com/jsmin.html | ||
USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO | ||
NOT CONTROL. | ||
This file creates a global JSON object containing two methods: stringify | ||
@@ -140,11 +148,5 @@ and parse. | ||
redistribute. | ||
This code should be minified before deployment. | ||
See http://javascript.crockford.com/jsmin.html | ||
USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO | ||
NOT CONTROL. | ||
*/ | ||
/*jslint evil: true */ | ||
/*jslint evil: true, regexp: true */ | ||
@@ -158,3 +160,2 @@ /*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, | ||
"use strict"; | ||
@@ -164,7 +165,8 @@ // Create a JSON object only if one does not already exist. We create the | ||
if (!this.JSON) { | ||
this.JSON = {}; | ||
if (typeof JSON !== 'object') { | ||
JSON = {}; | ||
} | ||
(function () { | ||
'use strict'; | ||
@@ -178,33 +180,26 @@ function f(n) { | ||
Date.prototype.toJSON = function (key) { | ||
Date.prototype.toJSON = function () { | ||
return isFinite(this.valueOf()) ? | ||
this.getUTCFullYear() + '-' + | ||
f(this.getUTCMonth() + 1) + '-' + | ||
f(this.getUTCDate()) + 'T' + | ||
f(this.getUTCHours()) + ':' + | ||
f(this.getUTCMinutes()) + ':' + | ||
f(this.getUTCSeconds()) + 'Z' : null; | ||
return isFinite(this.valueOf()) | ||
? this.getUTCFullYear() + '-' + | ||
f(this.getUTCMonth() + 1) + '-' + | ||
f(this.getUTCDate()) + 'T' + | ||
f(this.getUTCHours()) + ':' + | ||
f(this.getUTCMinutes()) + ':' + | ||
f(this.getUTCSeconds()) + 'Z' | ||
: null; | ||
}; | ||
String.prototype.toJSON = | ||
Number.prototype.toJSON = | ||
Boolean.prototype.toJSON = function (key) { | ||
return this.valueOf(); | ||
}; | ||
String.prototype.toJSON = | ||
Number.prototype.toJSON = | ||
Boolean.prototype.toJSON = function () { | ||
return this.valueOf(); | ||
}; | ||
} | ||
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, | ||
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, | ||
var cx, | ||
escapable, | ||
gap, | ||
indent, | ||
meta = { // table of character substitutions | ||
'\b': '\\b', | ||
'\t': '\\t', | ||
'\n': '\\n', | ||
'\f': '\\f', | ||
'\r': '\\r', | ||
'"' : '\\"', | ||
'\\': '\\\\' | ||
}, | ||
meta, | ||
rep; | ||
@@ -221,9 +216,8 @@ | ||
escapable.lastIndex = 0; | ||
return escapable.test(string) ? | ||
'"' + string.replace(escapable, function (a) { | ||
var c = meta[a]; | ||
return typeof c === 'string' ? c : | ||
'\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); | ||
}) + '"' : | ||
'"' + string + '"'; | ||
return escapable.test(string) ? '"' + string.replace(escapable, function (a) { | ||
var c = meta[a]; | ||
return typeof c === 'string' | ||
? c | ||
: '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); | ||
}) + '"' : '"' + string + '"'; | ||
} | ||
@@ -233,2 +227,3 @@ | ||
function str(key, holder) { | ||
// Produce a string from holder[key]. | ||
@@ -311,7 +306,7 @@ | ||
v = partial.length === 0 ? '[]' : | ||
gap ? '[\n' + gap + | ||
partial.join(',\n' + gap) + '\n' + | ||
mind + ']' : | ||
'[' + partial.join(',') + ']'; | ||
v = partial.length === 0 | ||
? '[]' | ||
: gap | ||
? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' | ||
: '[' + partial.join(',') + ']'; | ||
gap = mind; | ||
@@ -326,4 +321,4 @@ return v; | ||
for (i = 0; i < length; i += 1) { | ||
k = rep[i]; | ||
if (typeof k === 'string') { | ||
if (typeof rep[i] === 'string') { | ||
k = rep[i]; | ||
v = str(k, value); | ||
@@ -340,3 +335,3 @@ if (v) { | ||
for (k in value) { | ||
if (Object.hasOwnProperty.call(value, k)) { | ||
if (Object.prototype.hasOwnProperty.call(value, k)) { | ||
v = str(k, value); | ||
@@ -353,5 +348,7 @@ if (v) { | ||
v = partial.length === 0 ? '{}' : | ||
gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + | ||
mind + '}' : '{' + partial.join(',') + '}'; | ||
v = partial.length === 0 | ||
? '{}' | ||
: gap | ||
? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' | ||
: '{' + partial.join(',') + '}'; | ||
gap = mind; | ||
@@ -365,3 +362,14 @@ return v; | ||
if (typeof JSON.stringify !== 'function') { | ||
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; | ||
meta = { // table of character substitutions | ||
'\b': '\\b', | ||
'\t': '\\t', | ||
'\n': '\\n', | ||
'\f': '\\f', | ||
'\r': '\\r', | ||
'"' : '\\"', | ||
'\\': '\\\\' | ||
}; | ||
JSON.stringify = function (value, replacer, space) { | ||
// The stringify method takes a value and an optional replacer, and an optional | ||
@@ -397,3 +405,3 @@ // space parameter, and returns a JSON text. The replacer can be a function | ||
(typeof replacer !== 'object' || | ||
typeof replacer.length !== 'number')) { | ||
typeof replacer.length !== 'number')) { | ||
throw new Error('JSON.stringify'); | ||
@@ -413,2 +421,3 @@ } | ||
if (typeof JSON.parse !== 'function') { | ||
cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; | ||
JSON.parse = function (text, reviver) { | ||
@@ -429,3 +438,3 @@ | ||
for (k in value) { | ||
if (Object.hasOwnProperty.call(value, k)) { | ||
if (Object.prototype.hasOwnProperty.call(value, k)) { | ||
v = walk(value, k); | ||
@@ -448,2 +457,3 @@ if (v !== undefined) { | ||
text = String(text); | ||
cx.lastIndex = 0; | ||
@@ -470,6 +480,6 @@ if (cx.test(text)) { | ||
if (/^[\],:{}\s]*$/. | ||
test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). | ||
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). | ||
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { | ||
if (/^[\],:{}\s]*$/ | ||
.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') | ||
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') | ||
.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { | ||
@@ -486,4 +496,5 @@ // In the third stage we use the eval function to compile the text into a | ||
return typeof reviver === 'function' ? | ||
walk({'': j}, '') : j; | ||
return typeof reviver === 'function' | ||
? walk({'': j}, '') | ||
: j; | ||
} | ||
@@ -490,0 +501,0 @@ |
{ | ||
"name": "jasmine-core", | ||
"license": "MIT", | ||
"version": "2.0.4", | ||
"version": "2.1.0", | ||
"repository": { | ||
@@ -6,0 +6,0 @@ "type": "git", |
@@ -56,10 +56,11 @@ <a name="README">[<img src="https://rawgithub.com/pivotal/jasmine/master/images/jasmine-horizontal.svg" width="400px" />](http://jasmine.github.io)</a> | ||
* [Davis W. Frank](mailto:dwfrank@pivotallabs.com), Pivotal Labs | ||
* [Rajan Agaskar](mailto:rajan@pivotallabs.com), Pivotal Labs | ||
* [Sheel Choksi](mailto:schoksi@pivotallabs.com), Pivotal Labs | ||
* [Davis W. Frank](mailto:dwfrank@pivotal.io), Pivotal Labs | ||
* [Rajan Agaskar](mailto:rajan@pivotal.io), Pivotal Labs | ||
* [Gregg Van Hove](mailto:ghove@pivotal.io), Pivotal Labs | ||
### Maintainers Emeritus | ||
* [Christian Williams](mailto:antixian666@gmail.com), Square | ||
* [Christian Williams](mailto:antixian666@gmail.com), Cloud Foundry | ||
* Sheel Choksi | ||
Copyright (c) 2008-2014 Pivotal Labs. This software is licensed under the MIT License. |
@@ -36,3 +36,3 @@ # How to work on a Jasmine Release | ||
1. Make sure you add the new ZIP file to git | ||
1. Should we still do this? Given we want to use guthub releases... | ||
1. Should we still do this? Given we want to use github releases... | ||
@@ -56,2 +56,9 @@ ### Release the Python egg | ||
### Release the docs | ||
Probably only need to do this when releasing a minor version, and not a patch version. | ||
1. `cp edge ${version}` to copy the current edge docs to the new version | ||
1. Add a link to the new version in `index.html` | ||
### Finally | ||
@@ -58,0 +65,0 @@ |
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
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
2157465
274
3702
66
0