@@ -28,6 +28,98 @@ test('invalid register form', async ({ page }) => {
2828 await expect ( page . getByText ( 'Must contain at least one' ) ) . toBeVisible ( ) ;
2929} ) ;
3030
31+ test ( 'invalid login attempts' , async ( { page } ) => {
32+ await page . goto ( testDomain ) ;
33+
34+ // Test with wrong password
35+ await page . getByRole ( 'textbox' , { name : 'Email' } ) . fill ( testUser1Email ) ;
36+ await page . getByRole ( 'textbox' , { name : 'Password' } ) . fill ( 'wrong_password' ) ;
37+ await page . getByRole ( 'button' , { name : 'Login' } ) . click ( ) ;
38+ await expect ( page . getByText ( 'Email-address or password wrong.' ) ) . toBeVisible ( ) ;
39+
40+ // Test with non-existent email
41+ await page . getByRole ( 'textbox' , { name :
'Email' } ) . fill ( '[email protected] ' ) ; 42+ await page . getByRole ( 'textbox' , { name : 'Password' } ) . fill ( testPassword1 ) ;
43+ await page . getByRole ( 'button' , { name : 'Login' } ) . click ( ) ;
44+ await expect ( page . getByText ( 'Email-address or password wrong.' ) ) . toBeVisible ( ) ;
45+ } ) ;
46+
47+ test ( 'navigation and logout' , async ( { page } ) => {
48+ await login ( page , testUser1Email , testPassword1 ) ;
49+
50+ // Test navigation to different pages
51+ await page . getByRole ( 'link' , { name : 'Token' } ) . click ( ) ;
52+ await expect ( page . getByRole ( 'heading' , { name : 'Create authorization token' } ) ) . toBeVisible ( ) ;
53+
54+ await page . getByRole ( 'link' , { name : 'Account' } ) . click ( ) ;
55+ await expect ( page . getByRole ( 'heading' , { name : 'Account information' } ) ) . toBeVisible ( ) ;
56+
57+ // Test logout
58+ await page . getByRole ( 'button' , { name : 'Logout' , exact : true } ) . click ( ) ;
59+ await expect ( page . getByRole ( 'button' , { name : 'Login' } ) ) . toBeVisible ( ) ;
60+ } ) ;
61+
62+ test ( 'token management' , async ( { page } ) => {
63+ await login ( page , testUser1Email , testPassword1 ) ;
64+
65+ await page . getByRole ( 'link' , { name : 'Token' } ) . click ( ) ;
66+
67+ // Create a token
68+ await page . getByRole ( 'textbox' , { name : 'Name' } ) . fill ( 'Test Token 1' ) ;
69+ await page . getByRole ( 'button' , { name : 'Create token' } ) . click ( ) ;
70+
71+ // Verify token appears in list
72+ await expect ( page . getByText ( 'Test Token 1' ) ) . toBeVisible ( ) ;
73+
74+ // Create another token
75+ await page . getByRole ( 'textbox' , { name : 'Name' } ) . clear ( ) ;
76+ await page . getByRole ( 'textbox' , { name : 'Name' } ) . fill ( 'Test Token 2' ) ;
77+ await page . getByRole ( 'button' , { name : 'Create token' } ) . click ( ) ;
78+
79+ // Verify both tokens exist
80+ await expect ( page . getByText ( 'Test Token 1' ) ) . toBeVisible ( ) ;
81+ await expect ( page . getByText ( 'Test Token 2' ) ) . toBeVisible ( ) ;
82+
83+ // Delete a token
84+ await page . getByRole ( 'button' , { name : 'Delete' } ) . nth ( 0 ) . click ( ) ;
85+ await expect ( page . getByText ( 'Test Token 1' ) ) . not . toBeVisible ( ) ;
86+ await expect ( page . getByText ( 'Test Token 2' ) ) . toBeVisible ( ) ;
87+ } ) ;
88+
89+ test ( 'account information validation' , async ( { page } ) => {
90+ await login ( page , testUser1Email , testPassword1 ) ;
91+
92+ await page . getByRole ( 'link' , { name : 'Account' } ) . click ( ) ;
93+
94+ // Test invalid name (empty)
95+ await page . getByLabel ( 'Name' ) . clear ( ) ;
96+ await page . getByRole ( 'button' , { name : 'Save changes' } ) . click ( ) ;
97+ await expect ( page . getByText ( 'The name must not be empty' ) ) . toBeVisible ( ) ;
98+
99+ await page . getByLabel ( 'Email-address' ) . clear ( ) ;
100+ await page . getByLabel ( 'Email-address' ) . fill ( testUser1Email ) ;
101+ await page . getByRole ( 'button' , { name : 'Save changes' } ) . click ( ) ;
102+ } ) ;
103+
104+ test ( 'password change dialog validation' , async ( { page } ) => {
105+ await login ( page , testUser1Email , testPassword1 ) ;
106+
107+ await page . getByRole ( 'link' , { name : 'Account' } ) . click ( ) ;
108+ await page . getByRole ( 'button' , { name : 'Change password' } ) . click ( ) ;
109+
110+ await page . getByLabel ( 'Current password' ) . fill ( testPassword1 ) ;
111+ await page . getByLabel ( 'New password' ) . fill ( 'weak' ) ;
112+ await page . getByRole ( 'dialog' ) . getByRole ( 'button' , { name : 'Change password' } ) . click ( ) ;
113+ await expect ( page . getByText ( 'Must contain at least one' ) ) . toBeVisible ( ) ;
114+
115+ await page . getByLabel ( 'Current password' ) . clear ( ) ;
116+ await page . getByLabel ( 'Current password' ) . fill ( 'wrong_password' ) ;
117+ await page . getByLabel ( 'New password' ) . clear ( ) ;
118+ await page . getByLabel ( 'New password' ) . fill ( 'ValidPassword123!' ) ;
119+ await page . getByRole ( 'dialog' ) . getByRole ( 'button' , { name : 'Change password' } ) . click ( ) ;
120+ await page . getByRole ( 'button' , { name : 'Close' } ) . click ( ) ;
121+ } ) ;
122+
31123test ( 'charger lifecycle' , async ( { page } ) => {
32124 test . slow ( ) ;
33125
@@ -142,6 +234,8 @@ test('change accountname', async ({page}) => {
142234 await expect ( page . getByRole ( 'heading' , { name : 'Account information' } ) ) . toBeVisible ( ) ;
143235} ) ;
144236
237+ // ===== TESTS AFTER THIS POINT CREATE NEW USERS OR USE DIFFERENT CREDENTIALS =====
238+
145239test ( 'change password' , async ( { page} ) => {
146240 await login ( page , testUser2Email , testPassword1 ) ;
147241
0 commit comments