@@ -74,6 +74,54 @@ func TestNewBucketWithConfig_ShouldCreateGRPC(t *testing.T) {
7474 testutil .Assert (t , bkt != nil , "expected bucket to be created" )
7575}
7676
77+ func TestNewBucketWithConfig_ShouldCreateZonalBucket (t * testing.T ) {
78+ cfg := Config {
79+ Bucket : "test-bucket" ,
80+ ServiceAccount : "" ,
81+ UseGRPC : true ,
82+ UseZonalBuckets : true ,
83+ }
84+
85+ // Note, the emulator does not currently have any specific zonal bucket logic.
86+ svr , err := gcsemu .NewServer ("127.0.0.1:0" , gcsemu.Options {})
87+ testutil .Ok (t , err )
88+ err = os .Setenv ("STORAGE_EMULATOR_HOST" , svr .Addr )
89+ testutil .Ok (t , err )
90+ err = os .Setenv ("GCS_EMULATOR_HOST" , svr .Addr )
91+ testutil .Ok (t , err )
92+ err = os .Setenv ("STORAGE_EMULATOR_HOST_GRPC" , svr .Addr )
93+ testutil .Ok (t , err )
94+
95+ bkt , err := NewBucketWithConfig (context .Background (), log .NewNopLogger (), cfg , "test-bucket" , nil )
96+ testutil .Ok (t , err )
97+
98+ // Check if the bucket is created.
99+ testutil .Assert (t , bkt != nil , "expected bucket to be created" )
100+ }
101+
102+ func TestNewBucketWithConfig_ShouldNotCreateZonalBucketWithoutGRPC (t * testing.T ) {
103+ cfg := Config {
104+ Bucket : "test-bucket" ,
105+ ServiceAccount : "" ,
106+ UseGRPC : false ,
107+ UseZonalBuckets : true ,
108+ }
109+
110+ // Note, the emulator does not currently have any specific zonal bucket logic.
111+ svr , err := gcsemu .NewServer ("127.0.0.1:0" , gcsemu.Options {})
112+ testutil .Ok (t , err )
113+ err = os .Setenv ("STORAGE_EMULATOR_HOST" , svr .Addr )
114+ testutil .Ok (t , err )
115+ err = os .Setenv ("GCS_EMULATOR_HOST" , svr .Addr )
116+ testutil .Ok (t , err )
117+ err = os .Setenv ("STORAGE_EMULATOR_HOST_GRPC" , svr .Addr )
118+ testutil .Ok (t , err )
119+
120+ bkt , err := NewBucketWithConfig (context .Background (), log .NewNopLogger (), cfg , "test-bucket" , nil )
121+ testutil .Assert (t , bkt == nil , "did not expect bucket to be created" )
122+ testutil .Equals (t , err .Error (), "Zonal buckets require `use_grpc: true`" )
123+ }
124+
77125func TestParseConfig_ChunkSize (t * testing.T ) {
78126 for _ , tc := range []struct {
79127 name string
0 commit comments