MCPcopy Index your code
hub / github.com/NdoleStudio/httpsms / TestBulkSMS_Excel

Function TestBulkSMS_Excel

tests/integration_test.go:472–564  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

470}
471
472func TestBulkSMS_Excel(t *testing.T) {
473 ctx := context.Background()
474 phone := setupPhone(ctx, t, 60)
475
476 contact1 := randomPhoneNumber()
477 contact2 := randomPhoneNumber()
478
479 // Build Excel file with 2 messages
480 f := excelize.NewFile()
481 sheet := f.GetSheetName(0)
482 f.SetCellValue(sheet, "A1", "FromPhoneNumber")
483 f.SetCellValue(sheet, "B1", "ToPhoneNumber")
484 f.SetCellValue(sheet, "C1", "Content")
485 f.SetCellValue(sheet, "D1", "SendTime(optional)")
486
487 f.SetCellValue(sheet, "A2", phone.PhoneNumber)
488 f.SetCellValue(sheet, "B2", contact1)
489 f.SetCellValue(sheet, "C2", "Excel bulk test message 1")
490 f.SetCellValue(sheet, "D2", "")
491
492 f.SetCellValue(sheet, "A3", phone.PhoneNumber)
493 f.SetCellValue(sheet, "B3", contact2)
494 f.SetCellValue(sheet, "C3", "Excel bulk test message 2")
495 f.SetCellValue(sheet, "D3", "")
496
497 var excelBuf bytes.Buffer
498 require.NoError(t, f.Write(&excelBuf))
499
500 // Upload Excel
501 statusCode, respBody := uploadBulkFile(ctx, t, "test.xlsx", excelBuf.Bytes())
502 require.Equal(t, http.StatusAccepted, statusCode, "upload failed: %s", string(respBody))
503 t.Logf("upload response: %s", string(respBody))
504
505 var uploadResp struct {
506 Message string `json:"message"`
507 }
508 require.NoError(t, json.Unmarshal(respBody, &uploadResp))
509 assert.Contains(t, uploadResp.Message, "2 out of 2")
510
511 // Wait for messages to be persisted
512 time.Sleep(2 * time.Second)
513
514 // Search for bulk messages by owner and each contact
515 messages1 := searchMessages(ctx, t, contact1, phone.PhoneNumber)
516 messages2 := searchMessages(ctx, t, contact2, phone.PhoneNumber)
517 messages := append(messages1, messages2...)
518 require.GreaterOrEqual(t, len(messages), 2, "expected at least 2 messages for phone %s", phone.PhoneNumber)
519
520 // Find messages with bulk- request_id prefix
521 var bulkMessages []httpsms.Message
522 var requestID string
523 for i := range messages {
524 if messages[i].RequestID != nil && strings.HasPrefix(*messages[i].RequestID, "bulk-") {
525 bulkMessages = append(bulkMessages, messages[i])
526 requestID = *messages[i].RequestID
527 }
528 }
529 require.Len(t, bulkMessages, 2, "expected 2 messages with bulk- request_id")

Callers

nothing calls this directly

Calls 10

setupPhoneFunction · 0.85
randomPhoneNumberFunction · 0.85
uploadBulkFileFunction · 0.85
waitForFCMPushFunction · 0.85
fireEventFunction · 0.85
pollMessageStatusFunction · 0.85
fetchBulkMessagesFunction · 0.85
findBulkEntryFunction · 0.85
searchMessagesFunction · 0.70
StringMethod · 0.45

Tested by

no test coverage detected