Playwright
There is no official plugin. Use fetch or Playwright's request API, wait up to 180 seconds, then delete the inbox so quota is released.
import { test, expect } from '@playwright/test';
test('reads the signup verification email', async ({ request }) => {
const key = process.env.INBOXRHINO_API_KEY!;
const created = await request.post('https://api.inboxrhino.in/v1/inboxes', {
headers: { Authorization: `Bearer ${key}` },
});
const inbox = await created.json();
// Trigger the app under test to send mail to inbox.data.address
const mail = await request.get(
`https://api.inboxrhino.in/v1/inboxes/${inbox.data.id}/messages?wait_seconds=180&limit=1&include=content&subject=Verify`,
{ headers: { Authorization: `Bearer ${key}` } },
);
expect(mail.ok()).toBeTruthy();
const body = await mail.json();
expect(body.data[0].subject).toMatch(/verify/i);
await request.delete(`https://api.inboxrhino.in/v1/inboxes/${inbox.data.id}`, {
headers: { Authorization: `Bearer ${key}` },
});
});Store INBOXRHINO_API_KEY as a CI secret. Use received_after if a previous matching email could still be in the inbox.