diff --git a/e2e-per-member.cjs b/e2e-per-member.cjs index a1f3642..fa1fc74 100644 --- a/e2e-per-member.cjs +++ b/e2e-per-member.cjs @@ -75,7 +75,7 @@ async function main() { await memberPage.locator('.form-card .field:has-text("Relation to you") input').fill('nephew'); await memberPage.locator('.form-card .field:has-text("Description") input').fill('Member personal bequest'); await memberPage.locator('.form-card .field:has-text("Value") input').fill('3000'); - await memberPage.locator('.form-card .field:has-text("Recipient email") input').fill('nephew@example.com'); + await memberPage.locator('.form-card .field:has-text("Recipient email") input').fill('wanjauhari@gmail.com'); await memberPage.locator('.form-card button.btn-primary', { hasText: 'Add bequest' }).click(); const memberBequestSaved = await memberPage.locator('.bequest-row', { hasText: 'My Nephew' }).waitFor({ state: 'visible', timeout: 10000 }).then(() => true).catch(() => false); record('Member: authors their own Wassiyah bequest with heir email', memberBequestSaved); @@ -129,7 +129,7 @@ async function main() { await notifyBtn.click(); await agentPage.locator('.notify-status', { hasText: /Sent|Failed/ }).waitFor({ state: 'visible', timeout: 15000 }).catch(() => {}); const statusText = await agentPage.locator('.notify-status').textContent().catch(() => ''); - record('Mutawalli: heir notification call completes (Sent, or a clear "not configured" message)', statusText.includes('Sent') || statusText.includes('Failed'), statusText); + record('Mutawalli: heir notification actually sends via the real SMTP relay', statusText.includes('Sent'), statusText); } } diff --git a/e2e-trust.cjs b/e2e-trust.cjs index cb9ec6b..82bf6ef 100644 --- a/e2e-trust.cjs +++ b/e2e-trust.cjs @@ -51,9 +51,7 @@ async function main() { await trustInputs.nth(1).fill('Faridah binti Omar'); await trustInputs.nth(2).fill('Equal split among 3 children'); await page.locator('button.btn-primary', { hasText: 'Add trust setup' }).click(); - await page.waitForTimeout(600); - - const trustRowVisible = await page.locator('.nomination-row', { hasText: 'Land Parcel' }).isVisible(); + const trustRowVisible = await page.locator('.nomination-row', { hasText: 'Land Parcel' }).waitFor({ state: 'visible', timeout: 10000 }).then(() => true).catch(() => false); record('Nomination: trust setup row created for land parcel', trustRowVisible); const exportBtnVisible = await page.locator('.nomination-row', { hasText: 'Land Parcel' }).locator('.export-btn').isVisible(); diff --git a/src/lib/MutawalliDashboard.svelte b/src/lib/MutawalliDashboard.svelte index 8e4ac36..bcdbfb9 100644 --- a/src/lib/MutawalliDashboard.svelte +++ b/src/lib/MutawalliDashboard.svelte @@ -107,7 +107,7 @@ async function sendHeirNotifications() { notifyStatus = 'Sending…'; try { - await notifyHeirs(selectedMemberId); + await notifyHeirs(selectedMemberId, familyId); notifyStatus = 'Sent.'; } catch (e) { notifyStatus = 'Failed: ' + e.message; diff --git a/src/lib/db.js b/src/lib/db.js index 56f4305..a594ae2 100644 --- a/src/lib/db.js +++ b/src/lib/db.js @@ -273,8 +273,8 @@ export async function setMemberAttestorConfirmed(id, confirmed) { } /** Sends the heir notification email via the notify-heirs Edge Function. */ -export async function notifyHeirs(memberId) { - const { data, error } = await supabase.functions.invoke('notify-heirs', { body: { memberId } }); +export async function notifyHeirs(memberId, familyId) { + const { data, error } = await supabase.functions.invoke('notify-heirs', { body: { memberId, familyId } }); if (error) throw error; return data; }