github.com/mponton/terratest@v0.44.0/modules/slack/validate_test.go (about) 1 package slack 2 3 import ( 4 "fmt" 5 "os" 6 "testing" 7 "time" 8 9 "github.com/slack-go/slack" 10 "github.com/stretchr/testify/require" 11 12 "github.com/mponton/terratest/modules/environment" 13 "github.com/mponton/terratest/modules/random" 14 "github.com/mponton/terratest/modules/retry" 15 ) 16 17 const ( 18 slackTokenEnv = "SLACK_TOKEN_FOR_TEST" 19 slackChannelIDEnv = "SLACK_CHANNEL_ID_FOR_TEST" 20 ) 21 22 func TestValidateSlackMessage(t *testing.T) { 23 t.Parallel() 24 25 environment.RequireEnvVar(t, slackTokenEnv) 26 environment.RequireEnvVar(t, slackChannelIDEnv) 27 28 token := os.Getenv(slackTokenEnv) 29 channelID := os.Getenv(slackChannelIDEnv) 30 31 uniqueID := random.UniqueId() 32 msgTxt := fmt.Sprintf("Test message from terratest: %s", uniqueID) 33 34 slackClt := slack.New(token) 35 36 _, _, err := slackClt.PostMessage( 37 channelID, 38 slack.MsgOptionText(msgTxt, false), 39 ) 40 require.NoError(t, err) 41 42 retry.DoWithRetry( 43 t, 44 "wait for slack message", 45 10, 10*time.Second, 46 func() (string, error) { 47 err := ValidateExpectedSlackMessageE(t, token, channelID, msgTxt, 10, 5*time.Minute) 48 return "", err 49 }, 50 ) 51 }