Skip to main content

Gmail Service

wdio-gmail-service is a 3rd party package, for more information please see GitHub | npm

A WebdriverIO plugin to fetch e-mails from Google Mail using Gmail Tester.

Installation

The easiest way is to keep wdio-gmail-service as a devDependency in your package.json.

{
"devDependencies": {
"wdio-gmail-service": "^1.0.0"
}
}

You can simply do it by:

npm install wdio-gmail-service --save-dev

Usage

Gmail Authentication

You'll need to follow the instructions at Gmail Tester to create the credentials.json (the OAuth2 Authentication file) and token.json (the OAuth2 token).

Configuration

Add the service by adding gmail to the service list, e.g.:

// wdio.conf.js
import path from 'path'

export const config = {
// ...
services: [['gmail', {
credentialsJsonPath: path.join(process.cwd(), './credentials.json'),
tokenJsonPath: join(process.cwd(), './token.json'),
intervalSec: 10,
timeoutSec: 60
}]]
// ...
};

Service Options

credentialsJsonPath

Absolute path to a credentials JSON file.

Type: string

Required: true

tokenJsonPath

Absolute path to a token JSON file.

Type: string

Required: true

intervalSec

The interval between Gmail inbox checks.

Type: number

Default: 10

Required: false

timeoutSec

The maximum time to wait for finding the email for the given filters.

Type: number

Default: 60

Required: false

Writing tests

In your WebdriverIO test, you can now check if an email was received.

describe('Example', () => {
it('Should check email', () => {
// perform some actions that will send an email to setup gmail account
const emails = await browser.checkInbox({ from: '[email protected]', subject: 'Ubisoft Password Change Request' });
expect(emails[0].body.html).toContain('https://account-uplay.ubi.com/en-GB/action/change-password?genomeid=')
})
})

checkInbox parameters

The command parameters require at least one of from, to, or subject:

from: String. Filter on the email address of the receiver.
to: String. Filter on the email address of the sender.
subject: String. Filter on the subject of the email.
includeBody: boolean. Set to true to fetch decoded email bodies.
includeAttachments: boolean. Set to true to fetch the base64-encoded email attachments.
before: Date. Filter messages received before the specified date.
after: Date. Filter messages received after the specified date.
label: String. The default label is 'INBOX', but can be changed to 'SPAM', 'TRASH' or a custom label. For a full list of built-in labels, see https://developers.google.com/gmail/api/guides/labels?hl=en


For more information on WebdriverIO see the homepage.