Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
jasmine-node
Advanced tools
This branch is in-development. Not recommended for use
This node.js module makes the wonderful Pivotal Lab's jasmine spec framework available in node.js.
Version 2.0.0
of Jasmine is currently included with node-jasmine.
To install the latest official version, use NPM:
npm install jasmine-node -g
To install the latest bleeding edge version, clone this repository and check
out the beta
branch.
Write the specifications for your code in *.js
and *.coffee
files in the spec/
directory.
You can use sub-directories to better organise your specs. In the specs use describe()
, it()
etc. exactly
as you would in client-side jasmine specs.
Note: your specification files must be named as *spec.js
, *spec.coffee
or *spec.litcoffee
,
which matches the regular expression /spec\.(js|coffee|litcoffee)$/i
;
otherwise jasmine-node won't find them!
For example, sampleSpecs.js
is wrong, sampleSpec.js
is right.
If you have installed the npm package, you can run it with:
jasmine-node spec/
If you aren't using npm, you should add pwd
/lib to the $NODE_PATH
environment variable, then run:
node lib/jasmine-node/cli.js
You can supply the following arguments:
--autoTest
- rerun automatically the specs when a file changes--watchFolders PATH
- when used with --autoTest, watches the given path(s) and runs all tests if a change is detected--noColor
- do not use color coding for output-m, --match REGEXP
- load only specs containing "REGEXPspec"--matchAll
- relax requirement of "spec" in spec file names--verbose
- print extra information per each test run--coffee
- load coffee-script which allows execution .coffee files--forceExit
- force exit once tests complete.--captureExceptions
- listen to global exceptions, report them and exit (interferes with Domains)--noStackTrace
- suppress the stack trace generated from a test failure--version
- show the current version-h, --help
- display this help and exitIndividual files to test can be added as bare arguments to the end of the args.
Example:
jasmine-node --coffee spec/AsyncSpec.coffee spec/CoffeeSpec.coffee spec/SampleSpec.js
jasmine-node includes an alternate syntax for writing asynchronous tests. Accepting
a done callback in the specification will trigger jasmine-node to run the test
asynchronously waiting until the done()
callback is called.
var request = require('request');
it("should respond with hello world", function(done) {
request("http://localhost:3000/hello", function(error, response, body){
expect(body).toEqual("hello world");
done();
});
});
An asynchronous test will fail after 5000
ms if done()
is not called. This timeout
can be changed by setting jasmine.getEnv().defaultTimeoutInterval
or by passing a timeout
interval in the specification.
var request = require('request');
it("should respond with hello world", function(done) {
request("http://localhost:3000/hello", function(error, response, body){
done();
});
}, 250); // timeout after 250 ms
or
var request = require('request');
jasmine.getEnv().defaultTimeoutInterval = 500;
it("should respond with hello world", function(done) {
request("http://localhost:3000/hello", function(error, response, body){
done();
}); // timeout after 500 ms
});
Checkout spec/SampleSpecs.js
to see how to use it.
Often you'll want to capture an uncaught exception and log it to the console,
this is accomplished by using the --captureExceptions
flag. Exceptions will
be reported to the console, but jasmine-node will attempt to recover and
continue. It was decided to not change the current functionality until 2.0
. So,
until then, jasmine-node will still return 0
and continue on without this flag.
You require a module, but it doesn't exist, ie require('Q')
instead of
require('q')
. Jasmine-Node reports the error to the console, but carries on
and returns 0
. This messes up Travis-CI because you need it to return a
non-zero status while doing CI tests.
Before --captureExceptions
> jasmine-node --coffee spec
> echo $status
0
Run jasmine node with the --captureExceptions
flag.
> jasmine-node --coffee --captureExceptions spec
> echo $status
1
Jasmine node can display Growl notifications of test
run summaries in addition to other reports.
Growl must be installed separately, see node-growl
for platform-specific instructions. Pass the --growl
flag to enable the notifications.
Install the dependent packages by running:
npm install
Run the specs before you send your pull request and ensure all pass:
specs.sh
iit
, ddescribe
(thanks to mgcrea)util.print
to stdout.write
(thanks to nrstott)--growl
(thanks to
AlphaHydrae)beforeEach
and afterEach
now properly handle the async-timeout function--version
--watch
feature
(thanks to davegb3)0.6
(thanks to abe33)--config
flag for changeable testing environments--autotest
now works as expected, jasmine clock now responds to the fake ticking as requested, and removed the path.exists warning1.3.1
, fixed fs missing, catching uncaught exceptions, other fixesFAQs
DOM-less simple JavaScript BDD testing framework for Node
The npm package jasmine-node receives a total of 7,688 weekly downloads. As such, jasmine-node popularity was classified as popular.
We found that jasmine-node demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.