@@ -18,15 +18,15 @@ import (
1818 "github.com/Azure/azure-sdk-for-go/sdk/azcore"
1919 "github.com/Azure/azure-sdk-for-go/sdk/azcore/messaging"
2020 "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
21- "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
2221 "github.com/Azure/azure-sdk-for-go/sdk/internal/recording"
22+ "github.com/Azure/azure-sdk-for-go/sdk/internal/test/credential"
2323 "github.com/Azure/azure-sdk-for-go/sdk/messaging/eventgrid/aznamespaces"
2424 "github.com/stretchr/testify/require"
2525)
2626
2727var fakeTestVars = testVars {
2828 Key : "key" ,
29- Endpoint : "https://fake.eastus-1 .eventgrid.azure.net" ,
29+ Endpoint : "https://fake.region .eventgrid.azure.net/ " ,
3030 Topic : "topic" ,
3131 Subscription : "subscription" ,
3232}
@@ -106,7 +106,7 @@ func newClientOptions(t *testing.T) azcore.ClientOptions {
106106 }
107107 } else {
108108 options = azcore.ClientOptions {
109- Transport : newRecordingTransporter (t , tv ),
109+ Transport : newRecordingTransporter (t ),
110110 }
111111 }
112112
@@ -141,24 +141,19 @@ func newClientOptions(t *testing.T) azcore.ClientOptions {
141141}
142142
143143func newClients (t * testing.T , useSASKey bool ) (* aznamespaces.SenderClient , * aznamespaces.ReceiverClient ) {
144- if os .Getenv ("FORCE_SASKEY" ) == "true" {
145- t .Logf ("Switching from TokenCredential -> SAS Key because FORCE_SASKEY is true. See https://github.com/Azure/azure-sdk-for-go/issues/22961 for more details" )
146- useSASKey = true
147- }
144+ options := newClientOptions (t )
148145
149- return newSenderClient (t , useSASKey ), newReceiverClient (t , useSASKey )
146+ return newSenderClient (t , useSASKey , options ), newReceiverClient (t , useSASKey , options )
150147}
151148
152- func newSenderClient (t * testing.T , useSASKey bool ) * aznamespaces.SenderClient {
153- options := newClientOptions (t )
154-
149+ func newSenderClient (t * testing.T , useSASKey bool , options azcore.ClientOptions ) * aznamespaces.SenderClient {
155150 if useSASKey {
156151 client , err := aznamespaces .NewSenderClientWithSharedKeyCredential (tv .Endpoint , tv .Topic , azcore .NewKeyCredential (tv .Key ), & aznamespaces.SenderClientOptions {ClientOptions : options })
157152 require .NoError (t , err )
158153 return client
159154 }
160155
161- cred , err := azidentity . NewDefaultAzureCredential (nil )
156+ cred , err := credential . New (nil )
162157 require .NoError (t , err )
163158
164159 client , err := aznamespaces .NewSenderClient (tv .Endpoint , tv .Topic , cred , & aznamespaces.SenderClientOptions {ClientOptions : options })
@@ -167,16 +162,14 @@ func newSenderClient(t *testing.T, useSASKey bool) *aznamespaces.SenderClient {
167162 return client
168163}
169164
170- func newReceiverClient (t * testing.T , useSASKey bool ) * aznamespaces.ReceiverClient {
171- options := newClientOptions (t )
172-
165+ func newReceiverClient (t * testing.T , useSASKey bool , options azcore.ClientOptions ) * aznamespaces.ReceiverClient {
173166 if useSASKey {
174167 client , err := aznamespaces .NewReceiverClientWithSharedKeyCredential (tv .Endpoint , tv .Topic , tv .Subscription , azcore .NewKeyCredential (tv .Key ), & aznamespaces.ReceiverClientOptions {ClientOptions : options })
175168 require .NoError (t , err )
176169 return client
177170 }
178171
179- cred , err := azidentity . NewDefaultAzureCredential (nil )
172+ cred , err := credential . New (nil )
180173 require .NoError (t , err )
181174
182175 client , err := aznamespaces .NewReceiverClient (tv .Endpoint , tv .Topic , tv .Subscription , cred , & aznamespaces.ReceiverClientOptions {ClientOptions : options })
@@ -185,26 +178,18 @@ func newReceiverClient(t *testing.T, useSASKey bool) *aznamespaces.ReceiverClien
185178 return client
186179}
187180
188- func newRecordingTransporter (t * testing.T , testVars testVars ) policy.Transporter {
189- transport , err := recording .NewRecordingHTTPClient (t , nil )
190- require .NoError (t , err )
191-
192- err = recording .Start (t , recordingDirectory , nil )
193- require .NoError (t , err )
194-
195- // err = recording.ResetProxy(nil)
196- // require.NoError(t, err)
197-
198- err = recording .AddURISanitizer (fakeTestVars .Endpoint , testVars .Endpoint , nil )
181+ func addSanitizers (t * testing.T ) {
182+ t .Logf ("Setting up sanitizers" )
183+ err := recording .AddURISanitizer (fakeTestVars .Endpoint , "https://[^/]+?/" , nil )
199184 require .NoError (t , err )
200185
201- err = recording .AddURISanitizer (fakeTestVars .Topic , testVars .Topic , nil )
186+ err = recording .AddURISanitizer (fakeTestVars .Topic , tv .Topic , nil )
202187 require .NoError (t , err )
203188
204- err = recording .AddURISanitizer (fakeTestVars .Subscription , testVars .Subscription , nil )
189+ err = recording .AddURISanitizer (fakeTestVars .Subscription , tv .Subscription , nil )
205190 require .NoError (t , err )
206191
207- err = recording .AddGeneralRegexSanitizer (`"time": "2023-06-17T00:33:32Z"` , `"time":".+?"` , nil )
192+ err = recording .AddGeneralRegexSanitizer (`"time":"2023-06-17T00:33:32Z"` , `"time":".+?"` , nil )
208193 require .NoError (t , err )
209194
210195 err = recording .AddGeneralRegexSanitizer (
@@ -218,17 +203,17 @@ func newRecordingTransporter(t *testing.T, testVars testVars) policy.Transporter
218203 require .NoError (t , err )
219204
220205 err = recording .AddGeneralRegexSanitizer (
221- `"lockTokens": ["fake-lock-token"]` ,
206+ `"lockTokens":["fake-lock-token"]` ,
222207 `"lockTokens":\s*\[\s*"[^"]+"\s*\]` , nil )
223208 require .NoError (t , err )
224209
225210 err = recording .AddGeneralRegexSanitizer (
226- `"succeededLockTokens": ["fake-lock-token"]` ,
211+ `"succeededLockTokens":["fake-lock-token"]` ,
227212 `"succeededLockTokens":\s*\[\s*"[^"]+"\s*\]` , nil )
228213 require .NoError (t , err )
229214
230215 err = recording .AddGeneralRegexSanitizer (
231- `"succeededLockTokens": ["fake-lock-token", "fake-lock-token", "fake-lock-token"]` ,
216+ `"succeededLockTokens":["fake-lock-token","fake-lock-token","fake-lock-token"]` ,
232217 `"succeededLockTokens":\s*` +
233218 `\[` +
234219 `(\s*"[^"]+"\s*\,){2}` +
@@ -237,18 +222,32 @@ func newRecordingTransporter(t *testing.T, testVars testVars) policy.Transporter
237222 require .NoError (t , err )
238223
239224 err = recording .AddGeneralRegexSanitizer (
240- `"lockTokens": ["fake-lock-token", "fake-lock-token"]` ,
225+ `"lockTokens":["fake-lock-token","fake-lock-token"]` ,
241226 `"lockTokens":\s*\[\s*"[^"]+"\s*\,\s*"[^"]+"\s*\]` , nil )
242227 require .NoError (t , err )
243228
244229 err = recording .AddGeneralRegexSanitizer (
245- `"lockTokens": ["fake-lock-token", "fake-lock-token", "fake-lock-token"]` ,
230+ `"lockTokens":["fake-lock-token","fake-lock-token", "fake-lock-token"]` ,
246231 `"lockTokens":\s*` +
247232 `\[` +
248233 `(\s*"[^"]+"\s*\,){2}` +
249234 `\s*"[^"]+"\s*` +
250235 `\]` , nil )
251236 require .NoError (t , err )
237+ }
238+
239+ var initSanitizers sync.Once
240+
241+ func newRecordingTransporter (t * testing.T ) policy.Transporter {
242+ transport , err := recording .NewRecordingHTTPClient (t , nil )
243+ require .NoError (t , err )
244+
245+ initSanitizers .Do (func () {
246+ addSanitizers (t )
247+ })
248+
249+ err = recording .Start (t , recordingDirectory , nil )
250+ require .NoError (t , err )
252251
253252 t .Cleanup (func () {
254253 err := recording .Stop (t , nil )
@@ -261,6 +260,13 @@ func newRecordingTransporter(t *testing.T, testVars testVars) policy.Transporter
261260func requireEqualCloudEvent (t * testing.T , expected messaging.CloudEvent , actual messaging.CloudEvent ) {
262261 t .Helper ()
263262
263+ // the built-in sanitizers are now clearing out my CloudEvent's source attribute so we
264+ // just have to assume it's 'Sanitized'.
265+
266+ if recording .GetRecordMode () == recording .PlaybackMode {
267+ expected .Source = recording .SanitizedValue
268+ }
269+
264270 require .NotEmpty (t , actual .ID , "ID is not empty" )
265271 require .NotEmpty (t , actual .SpecVersion , "SpecVersion is not empty" )
266272
0 commit comments