2.2.1 • Published 5 months ago

nightwatch-plugin-mailhog v2.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

nightwatch-plugin-mailhog

A TypeScript based @nightwatchjs plugin for interacting with, and asserting on, data within a @mailhog instance.

Installation

npm install nightwatch-plugin-mailhog --save-dev

Configuration

Include the plugin, and its dependency on the @nightwatchjs/apitesting plugin, in your nightwatch.conf.js file.

plugins: ['@nightwatch/apitesting', 'nightwatch-plugin-mailhog']
// If you don't already have a global variables file, create one.
globals_path: 'nightwatch/globals.ts'

Define your mailhog API endpoint within your global variables file:

import {NightwatchGlobals} from 'nightwatch';

const globals: NightwatchGlobals = {
	mailhog: 'http://localhost:4566/mailhog/api',
};
export default globals;

Example Usage

import {type NightwatchTests} from 'nightwatch';
// Import type definition to enable intellisense for mailhog commands.
import 'nightwatch-plugin-mailhog';

const email: NightwatchTests = {
	async 'can retrieve messages'() {
		// Because this is using 0 for the check, it only confirms that the
		// MailHog API returns a 200 status code from the request.
		await browser.assert.mailhogInboxCount(0, 'greaterThanOrEqual');
	},

	async 'find by keyword and id'() {
		let email: MailHogItem | undefined = undefined;
		
		await browser.mailhog().findEmails('Subject, body, or recipient', items => {
			if (items.length > 0) {
				email = items[0];
			}
		});
		
		await browser.assert.ok(email !== undefined);
		await browser.assert.ok(email.Content.Body.includes('Some keywords'));
		await browser.assert.ok(email.Content.Headers.Subject[0].includes('Some keywords'));

		await browser.mailhog().getEmail(email.ID, found => {
			browser.assert.strictEqual(found.ID, email.ID);
		});
	},

	async 'retrieve one-time-password and delete'() {
		let otpCode: string | undefined = undefined;
		await browser.mailhog().getOneTimeCode('Your OTP subject', code => {
			otpCode = code;
		});
		await browser.assert.ok(otpCode);
	},

	async 'delete all messages'() {
		await browser.mailhog().deleteAllEmails();
	},
};

export default email;
2.2.1

5 months ago

2.1.3

5 months ago

2.1.2

5 months ago

2.1.1

5 months ago

2.1.0

5 months ago

2.0.1

6 months ago

2.0.0

6 months ago

1.0.7

7 months ago

1.0.6

7 months ago

1.0.5

7 months ago

1.0.4

7 months ago

1.0.3

7 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago