A WebdriverIO plugin to fetch e-mails from Google Mail using Gmail Tester.
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
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).
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
}]]
// ...
};
Absolute path to a credentials JSON file.
Type: string
Required: true
Absolute path to a token JSON file.
Type: string
Required: true
The interval between Gmail inbox checks.
Type: number
Default: 10
Required: false
The maximum time to wait for finding the email for the given filters.
Type: number
Default: 60
Required: false
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
parametersThe 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.