REST API ɗin Mail.td an tsara shi don gwajin end-to-end — tabbatar da cewa rajistar, sake saita kalmar sirri, da hanyoyin aiki da imel ke jawo suna aiki daidai. Wannan jagora yana mai da hankali kan salo na haɗawa don kayan aikin gwaji na yau da kullun.
Don ƙa'idar endpoint na asali (sifofin buƙata/amsa), duba shafin API ko docs.mail.td.
Selenium / Playwright / Cypress
Salo: ƙirƙiri sabon akwatin sakonni kafin kowane gwaji, yi rajistar app ɗinka tare da wannan adireshin, sannan ka yi polling na API don imel na tabbatarwa.
// pseudocode — yana dacewa da kowane fata na gwaji
async function signUpFlow(page) {
// 1. Ƙirƙiri akwatin sakonni na ɗan lokaci
const mailbox = await fetch("https://api.mail.td/api/accounts", {
method: "POST",
headers: {
Authorization: "Bearer td_xxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
address: `test-${Date.now()}@mail.td`,
password: "secret"
})
}).then(r => r.json());
// 2. Yi rajistar app ɗinka tare da mailbox.address
await page.goto("/signup");
await page.fill("[name=email]", mailbox.address);
await page.click("button[type=submit]");
// 3. Yi polling don imel na tabbatarwa (har zuwa 30s)
for (let i = 0; i < 30; i++) {
const list = await fetch(
`https://api.mail.td/api/accounts/${mailbox.id}/messages`,
{ headers: { Authorization: "Bearer td_xxx" } }
).then(r => r.json());
if (list.messages.length > 0) {
// Amsar lissafin ba ta da jiki — samo bayanin saƙo don samun text_body
const msg = await fetch(
`https://api.mail.td/api/accounts/${mailbox.id}/messages/${list.messages[0].id}`,
{ headers: { Authorization: "Bearer td_xxx" } }
).then(r => r.json());
const link = extractLink(msg.text_body);
await page.goto(link);
break;
}
await new Promise(r => setTimeout(r, 1000));
}
}
Bututun CI/CD
Don GitHub Actions, GitLab CI, CircleCI, ko kowane bututun:
- Adana token na API a matsayin sirri na CI (jujjuya daga dashboard idan ya zube)
- Kowane aikin gwaji yana ƙirƙirar nasa akwatin sakonni — yana hana yanayin race tsakanin ayyukan layi ɗaya
- Yi amfani da adireshi na musamman a kowane gwaji (misali
test-${RUN_ID}-${TEST_ID}@mail.td) don sa debugging na rashin nasara ya zama mai sauƙi - Babu buƙatar tsabtacewa — akwatin sakonni suna ƙarewa atomatik, babu buƙatar rubutun tsabtace
Webhooks don bututu cikin sauri (Pro)
Polling yana ƙara latency ga kowane gwaji. Don dogon zaman gwaji, yi rajistar URL na webhook wanda zai karɓi POST lokacin da sabuwar imel ta zo. Gwajin ka yana jiran isar da webhook maimakon polling sau 30. Yana datsewa jira na yau da kullun na daƙiƙa 5–15 zuwa ƙasa da daƙiƙa 1.
Ana sa hannu Webhooks da HMAC-SHA256 — tabbatar da header na sa hannu kafin sarrafawa.
Saka SDK
npm install mailtd # Node.js / TypeScript
pip install mailtd # Python
go get github.com/mailtd/mailtd-go # Go
Don cikakken ƙa'idar endpoint, duba mail.td/api.