@@ -53,6 +53,55 @@ func TestOIDCClientConfig_Create(t *testing.T) {
53
53
require .Equal (t , toDBSpec (config .Oauth2Config , config .OidcConfig ), decrypted )
54
54
}
55
55
56
+ func TestOIDCClientConfig_Get (t * testing.T ) {
57
+
58
+ t .Run ("invalid id returns invalid argument" , func (t * testing.T ) {
59
+ client , _ := setupOIDCClientConfigService (t )
60
+
61
+ _ , err := client .GetClientConfig (context .Background (), & v1.GetClientConfigRequest {
62
+ Id : "not-uuid" ,
63
+ })
64
+ require .Error (t , err )
65
+ require .Equal (t , codes .InvalidArgument , status .Code (err ))
66
+ })
67
+
68
+ t .Run ("no client config with ID returns not found" , func (t * testing.T ) {
69
+ client , _ := setupOIDCClientConfigService (t )
70
+
71
+ _ , err := client .GetClientConfig (context .Background (), & v1.GetClientConfigRequest {
72
+ Id : uuid .New ().String (),
73
+ })
74
+ require .Error (t , err )
75
+ require .Equal (t , codes .NotFound , status .Code (err ))
76
+ })
77
+
78
+ t .Run ("retrieves a config by ID" , func (t * testing.T ) {
79
+ client , dbConn := setupOIDCClientConfigService (t )
80
+
81
+ config := db.OIDCSpec {
82
+ ClientID : "some-client-id" ,
83
+ ClientSecret : "some-client-secret" ,
84
+ }
85
+
86
+ encrypted , err := db .EncryptJSON (dbtest .CipherSet (t ), config )
87
+ require .NoError (t , err )
88
+
89
+ created := dbtest .CreateOIDCClientConfigs (t , dbConn ,
90
+ dbtest .NewOIDCClientConfig (t , db.OIDCClientConfig {
91
+ Data : encrypted ,
92
+ }),
93
+ )[0 ]
94
+
95
+ response , err := client .GetClientConfig (context .Background (), & v1.GetClientConfigRequest {
96
+ Id : created .ID .String (),
97
+ })
98
+ require .NoError (t , err )
99
+ require .Equal (t , codes .OK , status .Code (err ))
100
+ require .Equal (t , oidcClientConfigToProto (created ), response .Config )
101
+ })
102
+
103
+ }
104
+
56
105
func setupOIDCClientConfigService (t * testing.T ) (v1.OIDCServiceClient , * gorm.DB ) {
57
106
t .Helper ()
58
107
0 commit comments