44 "bytes"
55 "context"
66 "testing"
7+ "time"
78
89 "github.com/planetscale/cli/internal/cmdutil"
910 "github.com/planetscale/cli/internal/config"
@@ -24,12 +25,14 @@ func TestServiceToken_CreateCmd(t *testing.T) {
2425
2526 org := "planetscale"
2627 id := "123456"
28+ createdAt := time .Date (2025 , 1 , 15 , 10 , 30 , 0 , 0 , time .UTC )
2729
28- orig := & ps.ServiceToken {ID : id }
30+ orig := & ps.ServiceToken {ID : id , CreatedAt : createdAt }
2931
3032 svc := & mock.ServiceTokenService {
3133 CreateFn : func (ctx context.Context , req * ps.CreateServiceTokenRequest ) (* ps.ServiceToken , error ) {
3234 c .Assert (req .Organization , qt .Equals , org )
35+ c .Assert (req .Name , qt .IsNil )
3336 return orig , nil
3437 },
3538 }
@@ -52,6 +55,53 @@ func TestServiceToken_CreateCmd(t *testing.T) {
5255 c .Assert (err , qt .IsNil )
5356 c .Assert (svc .CreateFnInvoked , qt .IsTrue )
5457
55- res := & ServiceToken {orig : orig }
58+ res := & ServiceTokenWithSecret {orig : orig }
59+ c .Assert (buf .String (), qt .JSONEquals , res )
60+ }
61+
62+ func TestServiceToken_CreateCmdWithName (t * testing.T ) {
63+ c := qt .New (t )
64+
65+ var buf bytes.Buffer
66+ format := printer .JSON
67+ p := printer .NewPrinter (& format )
68+ p .SetResourceOutput (& buf )
69+
70+ org := "planetscale"
71+ id := "123456"
72+ name := "my-token"
73+ createdAt := time .Date (2025 , 1 , 15 , 10 , 30 , 0 , 0 , time .UTC )
74+
75+ orig := & ps.ServiceToken {ID : id , Name : & name , CreatedAt : createdAt }
76+
77+ svc := & mock.ServiceTokenService {
78+ CreateFn : func (ctx context.Context , req * ps.CreateServiceTokenRequest ) (* ps.ServiceToken , error ) {
79+ c .Assert (req .Organization , qt .Equals , org )
80+ c .Assert (req .Name , qt .IsNotNil )
81+ c .Assert (* req .Name , qt .Equals , name )
82+ return orig , nil
83+ },
84+ }
85+
86+ ch := & cmdutil.Helper {
87+ Printer : p ,
88+ Config : & config.Config {
89+ Organization : org ,
90+ },
91+ Client : func () (* ps.Client , error ) {
92+ return & ps.Client {
93+ ServiceTokens : svc ,
94+ }, nil
95+ },
96+ }
97+
98+ cmd := CreateCmd (ch )
99+ cmd .SetArgs ([]string {"--name" , name })
100+ err := cmd .Execute ()
101+
102+ c .Assert (err , qt .IsNil )
103+ c .Assert (svc .CreateFnInvoked , qt .IsTrue )
104+
105+ res := & ServiceTokenWithSecret {orig : orig }
56106 c .Assert (buf .String (), qt .JSONEquals , res )
57107}
0 commit comments