WebdriverIO Gmail Service
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: 'AccountSupport@ubi.com', 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
Filter on the email address of the receiver.
Type: String
to
Filter on the email address of the sender.
Type: String
subject
Filter on the subject of the email.
Type: String
includeBody
Set to true to fetch decoded email bodies.
Type: boolean
includeAttachments
Set to true to fetch the base64-encoded email attachments.
Type: boolean
before
Filter messages received before the specified date.
Type: Date
after
Filter messages received after the specified date.
Type: Date
label
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
Type: String
For more information on WebdriverIO see the homepage.