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": "^2.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', {
credentials: path.join(process.cwd(), './credentials.json'),
token: join(process.cwd(), './token.json'),
intervalSec: 10,
timeoutSec: 60
}]]
// ...
};
Service Options​
credentials​
Absolute path to a credentials JSON file.
Type: string | Credentials
Required: true
token​
Absolute path to a token JSON file.
Type: string | Record<string, unknown>
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.