class ToastComponent { constructor(page) { this.page = page; } container() { return this.page.locator('.toastsContainer'); } toasts() { return this.page.locator('.toastsContainer .toastContainer'); } async getToastTitles() { const titles = await this.page.locator('.toastsContainer .toastTitle').allTextContents(); return titles.map(t => t.trim()).filter(Boolean); } _page() { return this.page.page || this.page; } async hasToastContaining(text) { try { await this._page().waitForFunction( (expected) => { const titles = document.querySelectorAll('.toastsContainer .toastTitle'); return Array.from(titles).some(t => t.textContent.trim().includes(expected)); }, text, { timeout: 3000 } ); return true; } catch { return false; } } } module.exports = ToastComponent;