New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

cucumber-assert

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cucumber-assert

An assertion library for cucumber.js providing cucumber compatible failures instead of exceptions

latest
Source
npmnpm
Version
2.0.1
Version published
Weekly downloads
1.9K
9.88%
Maintainers
1
Weekly downloads
 
Created
Source

cucumber-assert

Build Status

An assertion library for cucumber.js. It allows assertions in cucumber.js without extra-long stacktraces when an assertion fails.

Installation

npm install cucumber-assert

Note

As of Version 2.0, cucumber-assert uses Promises. If you need the old version without Promises, install Version 1.0.4:

npm install cucumber-assert@1.0.4

Example usage

var assert = require('cucumber-assert');

module.exports = function() {

	this.Given(/^the field E-Mail is filled with "([^"]*)"/, function (email, callback) {
		var fieldValue = this.getFieldValue('#password');
		assert.equal(fieldValue, email, 'Expected E-Mail to be ' + email).then(callback, callback);
	});

}

Multiple operations

If you need multiple assertions in one step, you can simply wait to resolve all the Promises. Since Promise.all() will resolve with an array of the results, Promise.all(...).then(callback) would result in a broken test, since calling the callback with a parameter tells cucumber, that something went wrong. You can either use Promise.all(...).then(() => callback()) or the provided .all() Method:

var assert = require('cucumber-assert');

module.exports = function() {

	this.Given(/^the form is filled out"/, function (callback) {
		var password = this.getFieldValue('#password');
		var name = this.getFieldValue('#name');
		var tosCheck = this.getFieldValue('#tos');
		
        var promises = [];
		promises.push(assert.notEqual(password, '', 'Expected E-Mail to not be empty'));
		promises.push(assert.notEqual(tosCheck, '', 'Expected Name not to be empty'));
		promises.push(assert.equal(tosCheck, 'checked', 'Expected TOS to be checked'));
        assert.all(promises).then(callback, callback);
	});

}

instead of

		Promise.all(promises).then(() => callback(), () => callback());

Available assertions

Generally cucumber-assert wraps the assertions available by default in node. For reference see http://nodejs.org/api/assert.html

The parameter "callback" is the callback provided by cucumber.js in step definitions and has to be passed always alongside the actual values and expectations.

equal(actual, expected, callback, [message])

assert.equal(password, '', 'Expected E-Mail to be empty').then(callback);

notEqual(actual, expected, [message])

assert.notEqual(password, '', 'Expected E-Mail not to be empty').then(callback);

deepEqual(actual, expected, [message])

assert.deepEqual(nestedObject, expectedNestedObject).then(callback);

notDeepEqual(actual, expected, [message])

assert.notDeepEqual(nestedObject, notExpectedNestedObject).then(callback);

strictEqual(actual, expected, [message])

assert.strictEqual(1, 1).then(callback);

notStrictEqual(actual, expected, [message])

assert.notStrictEqual(1, "1").then(callback);

throws(block, [error], [message])

assert.throws(someFunctionThatThrows).then(callback);

doesNotThrow(block, [message])

assert.doesNotThrow(someFunctionThatDoesNotThrow).then(callback);

ifError(value, [message])

assert.ifError(failsIfThisIsTrue).then(callback);

Changelog

See here

Keywords

cucumber.js

FAQs

Package last updated on 29 Mar 2018

Did you know?

Socket

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.

Install

Related posts