github.com/drycc/workflow-cli@v1.5.3-0.20240322092846-d4ee25983af9/cmd/users_test.go (about) 1 package cmd 2 3 import ( 4 "bytes" 5 "fmt" 6 "net/http" 7 "testing" 8 9 "github.com/drycc/workflow-cli/pkg/testutil" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestUsersList(t *testing.T) { 14 t.Parallel() 15 cf, server, err := testutil.NewTestServerAndClient() 16 if err != nil { 17 t.Fatal(err) 18 } 19 defer server.Close() 20 var b bytes.Buffer 21 cmdr := DryccCmd{WOut: &b, ConfigFile: cf} 22 23 server.Mux.HandleFunc("/v2/users/", func(w http.ResponseWriter, _ *http.Request) { 24 testutil.SetHeaders(w) 25 fmt.Fprintf(w, `{ 26 "count": 2, 27 "next": null, 28 "previous": null, 29 "results": [ 30 { 31 "id": 2, 32 "last_login": "2014-10-19T22:01:00.601Z", 33 "is_superuser": false, 34 "username": "test", 35 "first_name": "test", 36 "last_name": "testerson", 37 "email": "test@example.com", 38 "is_staff": false, 39 "is_active": true, 40 "date_joined": "2014-10-19T22:01:00.601Z", 41 "groups": [], 42 "user_permissions": [] 43 }, 44 { 45 "id": 1, 46 "last_login": "2014-10-19T22:01:00.601Z", 47 "is_superuser": true, 48 "username": "jkirk", 49 "first_name": "james", 50 "last_name": "kirk", 51 "email": "jkrik@starfleet.ufp.gov", 52 "is_staff": true, 53 "is_active": true, 54 "date_joined": "2014-10-19T22:01:00.601Z", 55 "groups": [], 56 "user_permissions": [] 57 } 58 ] 59 }`) 60 }) 61 62 err = cmdr.UsersList(-1) 63 assert.NoError(t, err) 64 65 assert.Equal(t, b.String(), `USERNAME EMAIL ADMIN STAFF ACTIVE DATE-JOIN 66 test test@example.com false false true 2014-10-19T22:01:00.601Z 67 jkirk jkrik@starfleet.ufp.gov true true true 2014-10-19T22:01:00.601Z 68 `, "output") 69 } 70 71 func TestUsersListLimit(t *testing.T) { 72 t.Parallel() 73 cf, server, err := testutil.NewTestServerAndClient() 74 if err != nil { 75 t.Fatal(err) 76 } 77 defer server.Close() 78 var b bytes.Buffer 79 cmdr := DryccCmd{WOut: &b, ConfigFile: cf} 80 81 server.Mux.HandleFunc("/v2/users/", func(w http.ResponseWriter, _ *http.Request) { 82 testutil.SetHeaders(w) 83 fmt.Fprintf(w, `{ 84 "count": 2, 85 "next": null, 86 "previous": null, 87 "results": [ 88 { 89 "id": 2, 90 "last_login": "2014-10-19T22:01:00.601Z", 91 "is_superuser": false, 92 "username": "test", 93 "first_name": "test", 94 "last_name": "testerson", 95 "email": "test@example.com", 96 "is_staff": false, 97 "is_active": true, 98 "date_joined": "2014-10-19T22:01:00.601Z", 99 "groups": [], 100 "user_permissions": [] 101 } 102 ] 103 }`) 104 }) 105 106 err = cmdr.UsersList(1) 107 assert.NoError(t, err) 108 109 assert.Equal(t, b.String(), `USERNAME EMAIL ADMIN STAFF ACTIVE DATE-JOIN 110 test test@example.com false false true 2014-10-19T22:01:00.601Z 111 `, "output") 112 } 113 114 func TestUsersEnable(t *testing.T) { 115 t.Parallel() 116 cf, server, err := testutil.NewTestServerAndClient() 117 if err != nil { 118 t.Fatal(err) 119 } 120 defer server.Close() 121 var b bytes.Buffer 122 cmdr := DryccCmd{WOut: &b, ConfigFile: cf} 123 124 server.Mux.HandleFunc("/v2/users/test/enable/", func(w http.ResponseWriter, _ *http.Request) { 125 testutil.SetHeaders(w) 126 fmt.Fprintf(w, ``) 127 }) 128 129 err = cmdr.UsersEnable("test") 130 assert.NoError(t, err) 131 132 assert.Equal(t, b.String(), `Enabling user test... done 133 This modification is only temporary and will be reverted when the user login again. 134 `, "output") 135 } 136 137 func TestUsersDisable(t *testing.T) { 138 t.Parallel() 139 cf, server, err := testutil.NewTestServerAndClient() 140 if err != nil { 141 t.Fatal(err) 142 } 143 defer server.Close() 144 var b bytes.Buffer 145 cmdr := DryccCmd{WOut: &b, ConfigFile: cf} 146 147 server.Mux.HandleFunc("/v2/users/test/disable/", func(w http.ResponseWriter, _ *http.Request) { 148 testutil.SetHeaders(w) 149 fmt.Fprintf(w, ``) 150 }) 151 152 err = cmdr.UsersDisable("test") 153 assert.NoError(t, err) 154 assert.Equal(t, b.String(), `Disabling user test... done 155 This modification is only temporary and will be reverted when the user login again. 156 `, "output") 157 }