-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathreport_test.go
More file actions
108 lines (105 loc) · 2.45 KB
/
report_test.go
File metadata and controls
108 lines (105 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package main
import (
"testing"
)
func TestResolveS3Ref(t *testing.T) {
tests := []struct {
name string
env string
bucket string
prefix string
region string
wantBucket string
wantPrefix string
wantRegion string
wantErr bool
}{
{
name: "env expands to bucket name",
env: "prod",
wantBucket: "prod-sei-shadow-results",
wantPrefix: "shadow-results/",
wantRegion: "eu-central-1",
},
{
name: "bucket passed directly",
bucket: "my-custom-bucket",
wantBucket: "my-custom-bucket",
wantPrefix: "shadow-results/",
wantRegion: "eu-central-1",
},
{
name: "env and bucket are mutually exclusive",
env: "prod",
bucket: "my-bucket",
wantErr: true,
},
{
name: "neither env nor bucket",
wantErr: true,
},
{
name: "custom prefix gets trailing slash",
env: "dev",
prefix: "custom-prefix",
wantBucket: "dev-sei-shadow-results",
wantPrefix: "custom-prefix/",
wantRegion: "eu-central-1",
},
{
name: "custom prefix with trailing slash unchanged",
env: "dev",
prefix: "custom-prefix/",
wantBucket: "dev-sei-shadow-results",
wantPrefix: "custom-prefix/",
wantRegion: "eu-central-1",
},
{
name: "custom region",
env: "prod",
region: "us-east-2",
wantBucket: "prod-sei-shadow-results",
wantPrefix: "shadow-results/",
wantRegion: "us-east-2",
},
{
name: "empty prefix defaults",
env: "staging",
prefix: "",
wantBucket: "staging-sei-shadow-results",
wantPrefix: "shadow-results/",
wantRegion: "eu-central-1",
},
{
name: "empty region defaults",
env: "prod",
region: "",
wantBucket: "prod-sei-shadow-results",
wantPrefix: "shadow-results/",
wantRegion: "eu-central-1",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
bucket, prefix, region, err := resolveS3Ref(tt.env, tt.bucket, tt.prefix, tt.region)
if tt.wantErr {
if err == nil {
t.Fatal("expected error, got nil")
}
return
}
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if bucket != tt.wantBucket {
t.Errorf("bucket = %q, want %q", bucket, tt.wantBucket)
}
if prefix != tt.wantPrefix {
t.Errorf("prefix = %q, want %q", prefix, tt.wantPrefix)
}
if region != tt.wantRegion {
t.Errorf("region = %q, want %q", region, tt.wantRegion)
}
})
}
}