@@ -81,18 +81,38 @@ test.describe('Basic functionality', () => {
81
81
82
82
test ( 'toast is not removed when hovered' , async ( { page } ) => {
83
83
await page . getByTestId ( 'default-button' ) . click ( ) ;
84
+
85
+ // Wait for toast to be visible first
86
+ await expect ( page . locator ( '[data-sonner-toast]' ) ) . toBeVisible ( ) ;
87
+
88
+ // Hover the toast
84
89
await page . hover ( '[data-sonner-toast]' ) ;
85
- const timeout = new Promise ( ( resolve ) => setTimeout ( resolve , 5000 ) ) ;
86
- await timeout ;
90
+
91
+ // Wait a bit to ensure hover is registered
92
+ await page . waitForTimeout ( 100 ) ;
93
+
94
+ // Create a longer timeout to verify toast persists
95
+ await page . waitForTimeout ( 5000 ) ;
96
+
97
+ // Verify toast is still visible
98
+ await expect ( page . locator ( '[data-sonner-toast]' ) ) . toBeVisible ( ) ;
87
99
await expect ( page . locator ( '[data-sonner-toast]' ) ) . toHaveCount ( 1 ) ;
88
100
} ) ;
89
101
90
102
test ( 'toast is not removed if duration is set to infinity' , async ( { page } ) => {
91
103
await page . getByTestId ( 'infinity-toast' ) . click ( ) ;
92
- await page . hover ( '[data-sonner-toast]' ) ;
93
- const timeout = new Promise ( ( resolve ) => setTimeout ( resolve , 5000 ) ) ;
94
- await timeout ;
95
- await expect ( page . locator ( '[data-sonner-toast]' ) ) . toHaveCount ( 1 ) ;
104
+
105
+ await expect ( page . locator ( '[data-sonner-toast]' ) ) . toBeVisible ( ) ;
106
+
107
+ const toast = page . locator ( '[data-sonner-toast]' ) ;
108
+ await toast . hover ( { force : true } ) ;
109
+
110
+ await page . waitForTimeout ( 100 ) ;
111
+
112
+ await page . waitForTimeout ( 5000 ) ;
113
+
114
+ await expect ( toast ) . toBeVisible ( ) ;
115
+ await expect ( toast ) . toHaveCount ( 1 ) ;
96
116
} ) ;
97
117
98
118
test ( 'toast is not removed when event prevented in action' , async ( { page } ) => {
0 commit comments