🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

cypress-soap-wiremock-client

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cypress-soap-wiremock-client

Mock Soap requests using wiremock mock server within cypress tests.

1.1.0
latest
npm
Version published
Weekly downloads
73
-36.52%
Maintainers
1
Weekly downloads
 
Created
Source

Introduction

Using Cypress to test a soap application? If you're looking to mock SOAP actions, then this library can help you do this.

Usage

A simple cypress test.

describe('the notifications display correctly for hte logged in user', function() {

	before(function() {
    	...
	});

	it('shows the number of notifications for the current user.', function() {
		cy.visit('http://localhost/notifications');
		cy.contains('Current Notifications: 23');
	});
});

With soap mocking.

# Import the library.
import soapMockClient from 'cypress-soap-wiremock-client';

Cypress setup.
...

describe('the notifications display correctly for hte logged in user', function() {
	before(function() {
	    soapMockClient.config({"baseUrl": "http://localhost:8888"});
	    soapMockClient.reset();
	})

	it('shows the number of notifications for the current user.', function() {
		# Encapsulate your existing cypress calls in the soapMockClient call.
	    soapMockClient.mockAndCall([
	        {
	        	"url": "/soa-mocks/mocknotificationserviceBinding",
	        	"action": "GetNotificationCount",
	        	"response": "soap/notification-count-response.txt"
	        }
	    ], () => {
	        cy.visit('http://localhost/notifications');
	        cy.contains('Current Notifications: 23');
	    });
	});
});

The above will execute the mock requests before running the tests ensuring mocks are ready. You can specify multiple mock objects in the array.

Modifying xml payload

# Import the library.
import soapMockClient from 'cypress-soap-wiremock-client';

Cypress setup.
...

describe('the notifications display correctly for hte logged in user', function() {
	before(function() {
	    soapMockClient.config({"baseUrl": "http://localhost:8888"});
	    soapMockClient.reset();
	})

	it('shows the number of notifications for the current user.', function() {
		# Encapsulate your existing cypress calls in the soapMockClient call.
	    soapMockClient.mockAndCall([
	        {
	        	"url": "/soa-mocks/mocknotificationserviceBinding",
	        	"action": "GetNotificationCount",
	        	"response": "soap/notification-count-response.txt",
	        	"callback": (xmlDoc, next) => {
	        		// Modify the xmlDoc here before passing it on. xmlDoc is a DOMParser object.
	        		xmlDoc.getElementsByTagName("NotificationCount")[0].childNodes[0].nodeValue = 500;

	        		next(xmlDoc);
	        	}
	        }
	    ], () => {
	        cy.visit('http://localhost/notifications');
	        cy.contains('Current Notifications: 23');
	    });
	});
});

All mock options:

{
    "url": "the endpoint that will serve the mock response from wiremock - required",
    "action": "The soap action - required",
    "response": "the location of the response xml file - required",
    "method": "The soap method expected to be used to call the endpoint - defaults to POST",
    "status": "the status code to return - defaults to 200",
    "callback": "A callback to manipulate the file xml contents before sending them off - defaults to just sending the file contents"
}

Keywords

cypress

FAQs

Package last updated on 12 May 2021

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