Mail Visual Regression library based on Email on Acid API service.
- Install
@researchgate/emailonacid-snapshot
package as devDependency:
# yarn
yarn add --dev @researchgate/emailonacid-snapshot
# npm
npm install --save-dev @researchgate/emailonacid-snapshot
-
Define
process.env.EOA_API_KEY
andprocess.env.EOA_ACCOUNT_PASSWORD
API credentials. -
Use
createEmail
with your favorite test runner:
const { createEmail } = require('@researchgate/emailonacid-snapshot');
async function run() {
const email = await createEmail('<html><!-- static markup --></html>');
const screenshot = await email.screenshot('outlook07');
// assert screenshot at this point
await email.clean();
}
run();
Check options docs and examples for futher setup.
You can provide config with either one of package.json#emailonacid
,
emailonacid.config.js
, and .emailonacidrc.json
.
Note: clients
and plugins
options are not merged but overridden.
clients
<?Array<string>> List of default clients to create tests with.credentials
<Object>apiKey
<string> EoA API key. Defaults toprocess.env.EOA_API_KEY
.accountPassword
EoA API password. Defaults toprocess.env.EOA_ACCOUNT_PASSWORD
.
debug
<?boolean> Enables verbose debug logging. Defaults toprocess.env.DEBUG
orprocess.env.EOA_DEBUG
.plugins
<?Array<Function>> List of plugins to apply for each test. Default plugins are ThreadBustingPlugin, ContentRendererPlugin, LocalCopyPlugin, ContentCroppingPlugin. If you're willing to implement custom plugin, check one of those plugins for reference.poll
<?Object> Polling options
See TypeScript typings for more API details.
import { createEmail } from '@researchgate/emailonacid-snapshot';
Creates new email with default and global options. Returns email instance object.
import { configureCreateEmail } from '@researchgate/emailonacid-snapshot';
Creates new email factory with default, global and provided options. Helpful for
creating multiple createEmail
functions to defined different set of targets or
different renderers.
import { withDefaultPlugins } from '@researchgate/emailonacid-snapshot/config';
Merges user-provided config with list of default plugins.
import { withOverridableClients } from '@researchgate/emailonacid-snapshot/config';
Merges user-provided config with a dynamic list of clients which can be
overridden via EOA_CLIENTS
environment variable.
MIT © ResearchGate