github.com/hashicorp/packer@v1.14.3/internal/hcp/api/errors_test.go (about) 1 package api 2 3 import ( 4 "fmt" 5 "testing" 6 7 "google.golang.org/grpc/codes" 8 ) 9 10 func TestCheckErrorCode(t *testing.T) { 11 tests := []struct { 12 name string 13 codeString string 14 expectCode codes.Code 15 expectSuccess bool 16 }{ 17 { 18 "old format, code matches what is looked for", 19 `{Code:5,"details":[],"message":"Error: The bucket etc."}`, 20 codes.Code(5), 21 true, 22 }, 23 { 24 "old format, code doesn't match what is looked for", 25 `{Code:55,"details":[],"message":"Error: The bucket etc."}`, 26 codes.Code(5), 27 false, 28 }, 29 { 30 "new format, code matches what is looked for", 31 `{"code":5,"details":[],"message":"Error: The bucket etc."}`, 32 codes.Code(5), 33 true, 34 }, 35 { 36 "new format, code doesn't match what is looked for", 37 `{"code":55,"details":[],"message":"Error: The bucket etc."}`, 38 codes.Code(5), 39 false, 40 }, 41 { 42 "bad format, should always be false", 43 `"ceod":55`, 44 codes.Code(5), 45 false, 46 }, 47 } 48 49 for _, tt := range tests { 50 t.Run(tt.name, func(t *testing.T) { 51 found := CheckErrorCode(fmt.Errorf("%s", tt.codeString), tt.expectCode) 52 if found != tt.expectSuccess { 53 t.Errorf("check error code returned %t, expected %t", found, tt.expectSuccess) 54 } 55 }) 56 } 57 }