# cypress-soap-wiremock-client

> Mock Soap requests using wiremock mock server within cypress tests.

Latest version **1.1.0** (published 2021-05-12) · ISC license · 0 weekly downloads

## Install

```sh
npm install cypress-soap-wiremock-client
pnpm add cypress-soap-wiremock-client
yarn add cypress-soap-wiremock-client
bun add cypress-soap-wiremock-client
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2021-05-12 |
| First published | 2021-05-12 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 6.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Abdul Wahab Qureshi |
| Maintainers | forceedge01 |
| Keywords | cypress, soap, soa, wiremock, xml |

## Links

- npm: https://www.npmjs.com/package/cypress-soap-wiremock-client
- npm.io page: https://npm.io/package/cypress-soap-wiremock-client

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 1.1.0 (latest) — 2021-05-12
- 1.0.0 — 2021-05-12

## README

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

---
_Source: https://npm.io/package/cypress-soap-wiremock-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
