github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/emails_test.go (about) 1 package clerk 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "net/http" 7 "reflect" 8 "testing" 9 ) 10 11 func TestEmailService_Create_happyPath(t *testing.T) { 12 token := "token" 13 var email Email 14 _ = json.Unmarshal([]byte(dummyEmailJson), &email) 15 16 client, mux, _, teardown := setup(token) 17 defer teardown() 18 19 mux.HandleFunc("/emails", func(w http.ResponseWriter, req *http.Request) { 20 testHttpMethod(t, req, "POST") 21 testHeader(t, req, "Authorization", "Bearer "+token) 22 fmt.Fprint(w, dummyEmailJson) 23 }) 24 25 got, _ := client.Emails().Create(email) 26 27 var want EmailResponse 28 _ = json.Unmarshal([]byte(dummyEmailJson), &want) 29 30 if !reflect.DeepEqual(*got, want) { 31 t.Errorf("Response = %v, want %v", *got, email) 32 } 33 } 34 35 func TestEmailService_Create_invalidServer(t *testing.T) { 36 client, _ := NewClient("token") 37 38 var email Email 39 _ = json.Unmarshal([]byte(dummyEmailJson), &email) 40 41 _, err := client.Emails().Create(email) 42 if err == nil { 43 t.Errorf("Expected error to be returned") 44 } 45 } 46 47 const dummyEmailJson = `{ 48 "body": "This is the body of a test email", 49 "email_address_id": "idn_1mebQ9KkZWrhb9rL6iEiXQGF8Yj", 50 "from_email_name": "info", 51 "id": "ema_1mvFol71HiKCcypBd6xxg0IpMBN", 52 "object": "email", 53 "status": "queued", 54 "subject": "This is a test email", 55 "data": { "foo": "bar" }, 56 "delivered_by_clerk": false 57 }`