cypress-soap-wiremock-client

1.1.0 • Public • Published

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"
}

Package Sidebar

Install

npm i cypress-soap-wiremock-client

Weekly Downloads

1

Version

1.1.0

License

ISC

Unpacked Size

7 kB

Total Files

3

Last publish

Collaborators

  • forceedge01