(ctx context.Context, t *testing.T, messagesPerMinute uint)
| 73 | } |
| 74 | |
| 75 | func setupPhone(ctx context.Context, t *testing.T, messagesPerMinute uint) testPhone { |
| 76 | t.Helper() |
| 77 | |
| 78 | phoneNumber := randomPhoneNumber() |
| 79 | fcmToken := "fcm-" + uuid.New().String() |
| 80 | client := newAPIClient() |
| 81 | |
| 82 | // Create the phone API key first so that a few seconds pass (during phone upsert) |
| 83 | // before we use it, giving the cache time to clear. |
| 84 | apiKeyResp, resp, err := client.PhoneAPIKeys.Store(ctx, &httpsms.PhoneAPIKeyStoreParams{ |
| 85 | Name: "test-key-" + uuid.New().String(), |
| 86 | }) |
| 87 | require.NoError(t, err) |
| 88 | require.Equal(t, http.StatusOK, resp.HTTPResponse.StatusCode, "phone api key store failed") |
| 89 | |
| 90 | phoneAPIKeyValue := apiKeyResp.Data.APIKey |
| 91 | require.NotEmpty(t, phoneAPIKeyValue) |
| 92 | |
| 93 | _, resp, err = client.Phones.Upsert(ctx, &httpsms.PhoneUpsertParams{ |
| 94 | PhoneNumber: phoneNumber, |
| 95 | FcmToken: fcmToken, |
| 96 | MessagesPerMinute: messagesPerMinute, |
| 97 | MaxSendAttempts: 2, |
| 98 | MessageExpirationSeconds: 600, |
| 99 | SIM: "SIM1", |
| 100 | }) |
| 101 | require.NoError(t, err) |
| 102 | require.Equal(t, http.StatusOK, resp.HTTPResponse.StatusCode, "phone upsert failed") |
| 103 | |
| 104 | phoneClient := newPhoneClient(phoneAPIKeyValue) |
| 105 | _, resp, err = phoneClient.Phones.UpsertFCMToken(ctx, &httpsms.PhoneFCMTokenParams{ |
| 106 | PhoneNumber: phoneNumber, |
| 107 | FcmToken: fcmToken, |
| 108 | SIM: "SIM1", |
| 109 | }) |
| 110 | require.NoError(t, err) |
| 111 | require.Equal(t, http.StatusOK, resp.HTTPResponse.StatusCode, "fcm token bind failed") |
| 112 | |
| 113 | return testPhone{ |
| 114 | PhoneNumber: phoneNumber, |
| 115 | PhoneAPIKey: phoneAPIKeyValue, |
| 116 | FcmToken: fcmToken, |
| 117 | } |
| 118 | } |
| 119 | |
| 120 | func setupWebhook(ctx context.Context, t *testing.T, phoneNumber string, events []string) (signingKey string, webhookPath string) { |
| 121 | t.Helper() |
no test coverage detected