Merge 6c1f75e7c1 into 1af4c50ed0
				
					
				
			This commit is contained in:
		
						commit
						ca71a5bfb5
					
				|  | @ -2,6 +2,7 @@ package cluster | |||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	"crypto/sha1" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"reflect" | ||||
|  | @ -330,7 +331,11 @@ func getOutboxTable(tableName string, idColumn *string) zalandov1.EventStreamTab | |||
| } | ||||
| 
 | ||||
| func getSlotName(dbName, appId string) string { | ||||
| 	return fmt.Sprintf("%s_%s_%s", constants.EventStreamSourceSlotPrefix, dbName, strings.Replace(appId, "-", "_", -1)) | ||||
| 	name := fmt.Sprintf("%s_%s_%s", constants.EventStreamSourceSlotPrefix, dbName, strings.Replace(appId, "-", "_", -1)) | ||||
| 	if len(name) > 63 { | ||||
| 		name = fmt.Sprintf("%s_%x", constants.EventStreamSourceSlotPrefix, sha1.Sum([]byte(name))) | ||||
| 	} | ||||
| 	return name | ||||
| } | ||||
| 
 | ||||
| func (c *Cluster) getStreamConnection(database, user, appId string) zalandov1.Connection { | ||||
|  |  | |||
|  | @ -889,3 +889,27 @@ func TestDeleteStreams(t *testing.T) { | |||
| 	assert.NoError(t, err) | ||||
| 	assert.Equalf(t, 0, len(streams.Items), "unexpected number of streams found: got %d, but expected none", len(streams.Items)) | ||||
| } | ||||
| 
 | ||||
| func TestSlotNameWithinMaxLength(t *testing.T) { | ||||
| 	dbName := "testdb" | ||||
| 	appId := "test-app" | ||||
| 	expected := constants.EventStreamSourceSlotPrefix + "_testdb_test_app" | ||||
| 	result := getSlotName(dbName, appId) | ||||
| 	assert.Equal(t, expected, result) | ||||
| } | ||||
| 
 | ||||
| func TestSlotNameExceedsMaxLength(t *testing.T) { | ||||
| 	dbName := "testdb" | ||||
| 	appId := "this-is-a-very-long-application-id-that-will-exceed-the-maximum-length" | ||||
| 	expected := constants.EventStreamSourceSlotPrefix + "_5a300d179c894b672b35bac212eab875d4c4145a" | ||||
| 	result := getSlotName(dbName, appId) | ||||
| 	assert.Equal(t, expected, result) | ||||
| } | ||||
| 
 | ||||
| func TestSlotNameWithHyphens(t *testing.T) { | ||||
| 	dbName := "testdb" | ||||
| 	appId := "test-app-with-hyphens" | ||||
| 	expected := constants.EventStreamSourceSlotPrefix + "_testdb_test_app_with_hyphens" | ||||
| 	result := getSlotName(dbName, appId) | ||||
| 	assert.Equal(t, expected, result) | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue