-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsender_signature_test.go
70 lines (55 loc) · 2.21 KB
/
sender_signature_test.go
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
package postmark
import (
"fmt"
"os"
"strconv"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestCRUDSenderSignatureOK(t *testing.T) {
if os.Getenv("INTEGRATION") != "true" {
t.Skip()
}
accountToken := os.Getenv("PM_ACCOUNT_TOKEN")
require.NotEmpty(t, accountToken, "PM_ACCOUNT_TOKEN not set for integration test")
c := NewClient(accountToken, "")
timestamp := time.Now().Unix()
// Create
sigOpts := SenderSignatureOpts{
FromEmail: fmt.Sprintf("test+%[email protected]", timestamp),
Name: "foobarbaz",
ReplyToEmail: "[email protected]",
ReturnPathDomain: "pm.example123.com",
}
retSig, err := c.CreateSenderSignature(sigOpts)
require.NoError(t, err, "error creating signature")
require.NotEmpty(t, retSig, "got empty signature object returned on create")
// Read
readSig, err := c.GetSenderSignature(strconv.Itoa(retSig.ID))
require.NoError(t, err, "failed to read signature")
require.NotEmpty(t, readSig, "got empty signature on read")
assert.Equal(t, sigOpts.FromEmail, readSig.EmailAddress, "wrong email on read")
assert.Equal(t, sigOpts.Name, readSig.Name, "wrong name on read")
assert.Equal(t, sigOpts.ReplyToEmail, readSig.ReplyToEmailAddress, "wrong replyto on read")
assert.Equal(t, sigOpts.ReturnPathDomain, readSig.ReturnPathDomain, "wrong return path domain on read")
// Update
upOpts := SenderSignatureOpts{
Name: "foobarbaz-updated",
ReplyToEmail: "[email protected]",
ReturnPathDomain: "pm-updated.example123.com",
}
err = c.UpdateSenderSignature(strconv.Itoa(retSig.ID), upOpts)
require.NoError(t, err, "error on update")
// Read
upSig, err := c.GetSenderSignature(strconv.Itoa(retSig.ID))
require.NoError(t, err, "failed to read signature")
require.NotEmpty(t, upSig, "got empty signature on read")
assert.Equal(t, upOpts.Name, upSig.Name, "wrong name on read")
assert.Equal(t, upOpts.ReplyToEmail, upSig.ReplyToEmailAddress, "wrong replyto on read")
assert.Equal(t, upOpts.ReturnPathDomain, upSig.ReturnPathDomain, "wrong return path domain on read")
// Delete
err = c.DeleteSenderSignature(strconv.Itoa(retSig.ID))
require.NoError(t, err, "error on deletion")
}