1+ import { test , expect } from "../setup" ;
2+ import { generateName , generateSKU , generateDescription , generateDate , generateEmail , generatePhoneNumber } from '../utils/faker' ;
3+
4+ test . describe ( "lead management" , ( ) => {
5+ test ( "should create a lead" , async ( { adminPage } ) => {
6+ /**
7+ * Go to the lead listing page.
8+ */
9+ await adminPage . goto ( "admin/leads" ) ;
10+
11+ await adminPage . getByRole ( 'link' , { name : 'Create Lead' } ) . click ( ) ;
12+
13+ /**
14+ * Fill the lead form.
15+ */
16+ await adminPage . fill ( 'input[name="title"]' , generateName ( ) ) ;
17+ await adminPage . fill ( 'textarea[name="description"]' , generateDescription ( ) ) ;
18+ await adminPage
19+ . locator ( 'select[name="lead_source_id"]' )
20+ . selectOption ( "1" ) ;
21+
22+ await adminPage . fill ( 'input[name="expected_close_date"]' , generateDate ( ) ) ;
23+
24+ await adminPage
25+ . locator ( 'select[name="lead_type_id"]' )
26+ . selectOption ( "1" ) ;
27+
28+ await adminPage
29+ . locator ( 'select[name="user_id"]' )
30+ . selectOption ( "1" ) ;
31+ await adminPage . fill ( 'input[name="lead_value"]' , '1000' ) ;
32+
33+ await adminPage . locator ( 'div' ) . filter ( { hasText : / ^ C l i c k t o A d d $ / } ) . nth ( 1 ) . click ( ) ;
34+ await adminPage . getByRole ( 'textbox' , { name : 'Search...' } ) . click ( ) ;
35+ await adminPage . getByRole ( 'textbox' , { name : 'Search...' } ) . fill ( generateName ( ) ) ;
36+ await adminPage . getByText ( 'Add as New' ) . click ( ) ;
37+
38+ await adminPage . fill ( 'input[name="person[emails][0][value]"]' , generateEmail ( ) ) ;
39+ await adminPage . fill ( 'input[name="person[contact_numbers][0][value]"]' , generatePhoneNumber ( ) ) ;
40+
41+ await adminPage . locator ( 'div' ) . filter ( { hasText : / ^ C l i c k t o a d d $ / } ) . nth ( 2 ) . click ( ) ;
42+ await adminPage . getByRole ( 'textbox' , { name : 'Search...' } ) . click ( ) ;
43+ await adminPage . getByRole ( 'textbox' , { name : 'Search...' } ) . fill ( generateName ( ) ) ;
44+ await adminPage . getByText ( 'Add as New' ) . click ( ) ;
45+
46+
47+ await adminPage . getByRole ( 'button' , { name : 'Save' } ) . click ( ) ;
48+
49+ await expect ( adminPage . getByText ( 'Lead created successfully.' , { exact : true } ) ) . toBeVisible ( ) ;
50+ } ) ;
51+ } ) ;
0 commit comments