@@ -7,67 +7,53 @@ import { MembershipRole } from "@calcom/prisma/enums";
7
7
import { moveUserToOrg } from "@lib/orgMigration" ;
8
8
9
9
import { test } from "./lib/fixtures" ;
10
- import { IS_STRIPE_ENABLED } from "./lib/testUtils" ;
10
+ import { IS_STRIPE_ENABLED , submitAndWaitForResponse } from "./lib/testUtils" ;
11
11
12
12
test . describe . configure ( { mode : "parallel" } ) ;
13
13
14
14
const IS_SELF_HOSTED = ! (
15
15
new URL ( WEBAPP_URL ) . hostname . endsWith ( ".cal.dev" ) || ! ! new URL ( WEBAPP_URL ) . hostname . endsWith ( ".cal.com" )
16
16
) ;
17
17
18
+ const TESTING_USERNAMES = [
19
+ {
20
+ username : "demousernamex" ,
21
+ description : "" ,
22
+ } ,
23
+ {
24
+ username : "demo.username" ,
25
+ description : " to include periods(or dots)" ,
26
+ } ,
27
+ ] ;
28
+
18
29
test . describe ( "Change username on settings" , ( ) => {
19
30
test . afterEach ( async ( { users } ) => {
20
31
await users . deleteAll ( ) ;
21
32
} ) ;
22
33
23
- test ( "User can change username" , async ( { page, users, prisma } ) => {
24
- const user = await users . create ( ) ;
25
-
26
- await user . apiLogin ( ) ;
27
- // Try to go homepage
28
- await page . goto ( "/settings/my-account/profile" ) ;
29
- // Change username from normal to normal
30
- const usernameInput = page . locator ( "[data-testid=username-input]" ) ;
31
-
32
- await usernameInput . fill ( "demousernamex" ) ;
33
- await page . click ( "[data-testid=update-username-btn]" ) ;
34
- await Promise . all ( [
35
- page . click ( "[data-testid=save-username]" ) ,
36
- page . getByTestId ( "toast-success" ) . waitFor ( ) ,
37
- ] ) ;
38
-
39
- const newUpdatedUser = await prisma . user . findUniqueOrThrow ( {
40
- where : {
41
- id : user . id ,
42
- } ,
43
- } ) ;
34
+ TESTING_USERNAMES . forEach ( ( item ) => {
35
+ test ( `User can change username${ item . description } ` , async ( { page, users, prisma } ) => {
36
+ const user = await users . create ( ) ;
37
+ await user . apiLogin ( ) ;
38
+ // Try to go homepage
39
+ await page . goto ( "/settings/my-account/profile" ) ;
40
+ // Change username from normal to normal
41
+ const usernameInput = page . locator ( "[data-testid=username-input]" ) ;
44
42
45
- expect ( newUpdatedUser . username ) . toBe ( "demousernamex" ) ;
46
- } ) ;
43
+ await usernameInput . fill ( item . username ) ;
44
+ await page . click ( "[data-testid=update-username-btn]" ) ;
45
+ await submitAndWaitForResponse ( page , "/api/trpc/viewer/updateProfile?batch=1" , {
46
+ action : ( ) => page . click ( "[data-testid=save-username]" ) ,
47
+ } ) ;
47
48
48
- test ( "User can change username to include periods(or dots)" , async ( { page, users, prisma } ) => {
49
- const user = await users . create ( ) ;
49
+ const newUpdatedUser = await prisma . user . findUniqueOrThrow ( {
50
+ where : {
51
+ id : user . id ,
52
+ } ,
53
+ } ) ;
50
54
51
- await user . apiLogin ( ) ;
52
- // Try to go homepage
53
- await page . goto ( "/settings/my-account/profile" ) ;
54
- // Change username from normal to normal
55
- const usernameInput = page . locator ( "[data-testid=username-input]" ) ;
56
- // User can change username to include dots(or periods)
57
- await usernameInput . fill ( "demo.username" ) ;
58
- await page . click ( "[data-testid=update-username-btn]" ) ;
59
- await Promise . all ( [
60
- page . click ( "[data-testid=save-username]" ) ,
61
- page . getByTestId ( "toast-success" ) . waitFor ( ) ,
62
- ] ) ;
63
-
64
- const updatedUser = await prisma . user . findUniqueOrThrow ( {
65
- where : {
66
- id : user . id ,
67
- } ,
55
+ expect ( newUpdatedUser . username ) . toBe ( item . username ) ;
68
56
} ) ;
69
-
70
- expect ( updatedUser . username ) . toBe ( "demo.username" ) ;
71
57
} ) ;
72
58
73
59
test ( "User can update to PREMIUM username" , async ( { page, users } , testInfo ) => {
0 commit comments