@@ -102,6 +102,61 @@ func TestPathConfig(t *testing.T) {
102
102
})
103
103
})
104
104
105
+ t .Run ("write, read, delete and read config with show config token" , func (t * testing.T ) {
106
+ httpClient , url := getClient (t , "unit" )
107
+ ctx := gitlab .HttpClientNewContext (context .Background (), httpClient )
108
+
109
+ b , l , events , err := getBackendWithFlagsWithEvents (ctx , gitlab.Flags {ShowConfigToken : true })
110
+ require .NoError (t , err )
111
+
112
+ resp , err := b .HandleRequest (ctx , & logical.Request {
113
+ Operation : logical .UpdateOperation ,
114
+ Path : fmt .Sprintf ("%s/%s" , gitlab .PathConfigStorage , gitlab .DefaultConfigName ), Storage : l ,
115
+ Data : map [string ]any {
116
+ "token" : "glpat-secret-random-token" ,
117
+ "base_url" : url ,
118
+ "type" : gitlab .TypeSelfManaged .String (),
119
+ },
120
+ })
121
+
122
+ require .NoError (t , err )
123
+ require .NotNil (t , resp )
124
+ require .NoError (t , resp .Error ())
125
+
126
+ resp , err = b .HandleRequest (ctx , & logical.Request {
127
+ Operation : logical .ReadOperation ,
128
+ Path : fmt .Sprintf ("%s/%s" , gitlab .PathConfigStorage , gitlab .DefaultConfigName ), Storage : l ,
129
+ })
130
+
131
+ require .NoError (t , err )
132
+ require .NotNil (t , resp )
133
+ require .NoError (t , resp .Error ())
134
+ assert .NotEmpty (t , resp .Data ["token_sha1_hash" ])
135
+ assert .NotEmpty (t , resp .Data ["base_url" ])
136
+ require .Len (t , events .eventsProcessed , 1 )
137
+ require .NotEmpty (t , resp .Data ["token" ])
138
+
139
+ resp , err = b .HandleRequest (ctx , & logical.Request {
140
+ Operation : logical .DeleteOperation ,
141
+ Path : fmt .Sprintf ("%s/%s" , gitlab .PathConfigStorage , gitlab .DefaultConfigName ), Storage : l ,
142
+ })
143
+ require .NoError (t , err )
144
+ require .Nil (t , resp )
145
+ require .Len (t , events .eventsProcessed , 2 )
146
+
147
+ resp , err = b .HandleRequest (ctx , & logical.Request {
148
+ Operation : logical .ReadOperation ,
149
+ Path : fmt .Sprintf ("%s/%s" , gitlab .PathConfigStorage , gitlab .DefaultConfigName ), Storage : l ,
150
+ })
151
+ require .NoError (t , err )
152
+ require .NotNil (t , resp )
153
+ require .Error (t , resp .Error ())
154
+
155
+ events .expectEvents (t , []expectedEvent {
156
+ {eventType : "gitlab/config-write" },
157
+ {eventType : "gitlab/config-delete" },
158
+ })
159
+ })
105
160
t .Run ("invalid token" , func (t * testing.T ) {
106
161
httpClient , url := getClient (t , "unit" )
107
162
ctx := gitlab .HttpClientNewContext (context .Background (), httpClient )
0 commit comments