Skip to content

Conversation

@manchuck
Copy link
Contributor

Description

Motivation and Context

Testing Details

Example Output or Screenshots (if appropriate)

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@github-actions github-actions bot added the feat label Sep 17, 2025
@manchuck manchuck changed the title feat: added RCS suggestions feat: added RCS suggestions, SMS/MMS updates and WhatsApp category Sep 17, 2025
@codecov-commenter
Copy link

codecov-commenter commented Sep 17, 2025

❌ 4 Tests Failed:

Tests completed Failed Passed Skipped
1082 4 1078 0
View the top 3 failed test(s) by shortest run time
RCS Can send text with suggestions [API Key and Secret]
Stack Traces | 0.002s run time
FetchError: request to https://api.nexmo.com/v1/messages failed, reason: Nock: No match for request {
  "method": "POST",
  "url": "https://api.nexmo.com/v1/messages",
  "headers": {
    "user-agent": [
      "@vonage/server-sdk/3.0.0, node/20.19.5,"
    ],
    "content-type": [
      "application/json"
    ],
    "authorization": [
      "Basic MTIzNDU6QUJDREU="
    ],
    "accept": [
      "*/*"
    ],
    "content-length": [
      "1101"
    ],
    "accept-encoding": [
      "gzip,deflate"
    ]
  },
  "body": "{\"to\":\"14152739164\",\"from\":\"Vonage\",\"message_type\":\"text\",\"text\":\"too many secrets\",\"channel\":\"rcs\",\"suggestions\":[{\"text\":\"We gotta save your kids\",\"postback_data\":\"QmlmZidzIGhpbGwgdmFsbGV5IGNhc2lubw\",\"type\":\"create_calendar_event\",\"title\":\"Sports Alamac\"},{\"text\":\"Janick Black Box\",\"postback_data\":\"QmlmZidzIGhpbGwgdmFsbGV5IGNhc2lubw\",\"type\":\"dial\",\"phone_number\":\"+14152739164\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"TmV2ZXIgZ29pbmcgdG8gbGV0IHlvdSBkb3du\",\"type\":\"open_url\",\"url\":\"https://youtu.be/dQw4w9WgXcQ\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"TmV2ZXIgZ29pbmcgdG8gbGV0IHlvdSBkb3du\",\"type\":\"open_url_in_webview\",\"url\":\"https://youtu.be/dQw4w9WgXcQ\",\"view_mode\":\"FULL\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"Zm9yZCwgSSB0aGluayBJJ20gYSBjb3VjaAo\",\"type\":\"reply\"},{\"text\":\"The only place you are allowed to cry\",\"postback_data\":\"Z3JhbmQgY2FueW9u\",\"type\":\"share_location\"},{\"text\":\"The only place you are allowed to cry\",\"postback_data\":\"Z3JhbmQgY2FueW9u\",\"type\":\"view_location\",\"latitude\":\"36.05443\",\"longitude\":\"-112.13934\",\"pin_label\":\"Go Here\"}]}"
}
    at OverriddenClientRequest.<anonymous> (D:\a\vonage-node-sdk\vonage-node-sdk\node_modules\node-fetch\lib\index.js:1501:11)
    at OverriddenClientRequest.emit (node:events:524:28)
    at Socket.<anonymous> (D:\a\vonage-node-sdk\vonage-node-sdk\node_modules\propagate\index.js:64:17)
    at Socket.emit (node:events:524:28)
    at D:\a\vonage-node-sdk\vonage-node-sdk\node_modules\nock\lib\socket.js:101:14
    at processTicksAndRejections (node:internal/process/task_queues:77:11)
RCS Can send text with suggestions [API Key and Secret]
Stack Traces | 0.002s run time
FetchError: request to https://api.nexmo.com/v1/messages failed, reason: Nock: No match for request {
  "method": "POST",
  "url": "https://api.nexmo.com/v1/messages",
  "headers": {
    "user-agent": [
      "@vonage/server-sdk/3.0.0, node/24.11.0,"
    ],
    "content-type": [
      "application/json"
    ],
    "authorization": [
      "Basic MTIzNDU6QUJDREU="
    ],
    "accept": [
      "*/*"
    ],
    "content-length": [
      "1101"
    ],
    "accept-encoding": [
      "gzip,deflate"
    ]
  },
  "body": "{\"to\":\"14152739164\",\"from\":\"Vonage\",\"message_type\":\"text\",\"text\":\"too many secrets\",\"channel\":\"rcs\",\"suggestions\":[{\"text\":\"We gotta save your kids\",\"postback_data\":\"QmlmZidzIGhpbGwgdmFsbGV5IGNhc2lubw\",\"type\":\"create_calendar_event\",\"title\":\"Sports Alamac\"},{\"text\":\"Janick Black Box\",\"postback_data\":\"QmlmZidzIGhpbGwgdmFsbGV5IGNhc2lubw\",\"type\":\"dial\",\"phone_number\":\"+14152739164\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"TmV2ZXIgZ29pbmcgdG8gbGV0IHlvdSBkb3du\",\"type\":\"open_url\",\"url\":\"https://youtu.be/dQw4w9WgXcQ\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"TmV2ZXIgZ29pbmcgdG8gbGV0IHlvdSBkb3du\",\"type\":\"open_url_in_webview\",\"url\":\"https://youtu.be/dQw4w9WgXcQ\",\"view_mode\":\"FULL\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"Zm9yZCwgSSB0aGluayBJJ20gYSBjb3VjaAo\",\"type\":\"reply\"},{\"text\":\"The only place you are allowed to cry\",\"postback_data\":\"Z3JhbmQgY2FueW9u\",\"type\":\"share_location\"},{\"text\":\"The only place you are allowed to cry\",\"postback_data\":\"Z3JhbmQgY2FueW9u\",\"type\":\"view_location\",\"latitude\":\"36.05443\",\"longitude\":\"-112.13934\",\"pin_label\":\"Go Here\"}]}"
}
    at OverriddenClientRequest.<anonymous> (.../node-fetch/lib/index.js:1501:11)
    at OverriddenClientRequest.emit (node:events:508:28)
    at Socket.<anonymous> (.../node_modules/propagate/index.js:64:17)
    at Socket.emit (node:events:508:28)
    at .../nock/lib/socket.js:101:14
    at processTicksAndRejections (node:internal/process/task_queues:85:11)
RCS Can send text with suggestions [JWT]
Stack Traces | 0.002s run time
FetchError: request to https://api.nexmo.com/v1/messages failed, reason: Nock: No match for request {
  "method": "POST",
  "url": "https://api.nexmo.com/v1/messages",
  "headers": {
    "user-agent": [
      "@vonage/server-sdk/3.0.0, node/24.11.0,"
    ],
    "content-type": [
      "application/json"
    ],
    "authorization": [
      "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhNzU0MDg5Yi03MjNiLTQyZmMtYWIwOS00YWUzNzlmYzdiNDAiLCJpYXQiOjE3NjE3NDgzNTYsImV4cCI6MTc2MTc0OTI1NiwiYXBwbGljYXRpb25faWQiOiJhYmNkLTEyMzQifQ.i1jVxWbDSHpLXuXKoLgW41jy5e18vDgZ335E5tiwAq0WipLISolS08MM6ZSlHiqHR-CpSDzNcS-qI5ygiEndPT_2YtGOcCFmm7slLK1kV14SRV7XrODSKGIL4QLO8dJXytpyVTPzSu1SRmzBk_A3LvwT4MF0PLJ_fhTW0sEd7gtnd2T7jM92jfKpZn-aupTo9HPT7aSmcz25SzdWfN3NBiZJ_gv3tC_3F1NzhyzB7GvLfCKNsr8CVooqby7wWSTUJWQzZnRkDOCHl3RAzACR2mubz3qMIrIiLthcBjMO1gFGYyrOlDSpq8LL49cJjyiFoxnknFWc4-4xAKWyTlxFkA"
    ],
    "accept": [
      "*/*"
    ],
    "content-length": [
      "1101"
    ],
    "accept-encoding": [
      "gzip,deflate"
    ]
  },
  "body": "{\"to\":\"14152739164\",\"from\":\"Vonage\",\"message_type\":\"text\",\"text\":\"too many secrets\",\"channel\":\"rcs\",\"suggestions\":[{\"text\":\"We gotta save your kids\",\"postback_data\":\"QmlmZidzIGhpbGwgdmFsbGV5IGNhc2lubw\",\"type\":\"create_calendar_event\",\"title\":\"Sports Alamac\"},{\"text\":\"Janick Black Box\",\"postback_data\":\"QmlmZidzIGhpbGwgdmFsbGV5IGNhc2lubw\",\"type\":\"dial\",\"phone_number\":\"+14152739164\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"TmV2ZXIgZ29pbmcgdG8gbGV0IHlvdSBkb3du\",\"type\":\"open_url\",\"url\":\"https://youtu.be/dQw4w9WgXcQ\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"TmV2ZXIgZ29pbmcgdG8gbGV0IHlvdSBkb3du\",\"type\":\"open_url_in_webview\",\"url\":\"https://youtu.be/dQw4w9WgXcQ\",\"view_mode\":\"FULL\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"Zm9yZCwgSSB0aGluayBJJ20gYSBjb3VjaAo\",\"type\":\"reply\"},{\"text\":\"The only place you are allowed to cry\",\"postback_data\":\"Z3JhbmQgY2FueW9u\",\"type\":\"share_location\"},{\"text\":\"The only place you are allowed to cry\",\"postback_data\":\"Z3JhbmQgY2FueW9u\",\"type\":\"view_location\",\"latitude\":\"36.05443\",\"longitude\":\"-112.13934\",\"pin_label\":\"Go Here\"}]}"
}
    at OverriddenClientRequest.<anonymous> (.../node-fetch/lib/index.js:1501:11)
    at OverriddenClientRequest.emit (node:events:508:28)
    at Socket.<anonymous> (.../node_modules/propagate/index.js:64:17)
    at Socket.emit (node:events:508:28)
    at .../nock/lib/socket.js:101:14
    at processTicksAndRejections (node:internal/process/task_queues:85:11)
RCS Can send text with suggestions [JWT]
Stack Traces | 0.003s run time
FetchError: request to https://api.nexmo.com/v1/messages failed, reason: Nock: No match for request {
  "method": "POST",
  "url": "https://api.nexmo.com/v1/messages",
  "headers": {
    "user-agent": [
      "@vonage/server-sdk/3.0.0, node/20.19.5,"
    ],
    "content-type": [
      "application/json"
    ],
    "authorization": [
      "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMDQ4YzUxNi02OWJkLTRmZDctYThjMC1kZjMxNDZkYTU5Y2UiLCJpYXQiOjE3NjE3NDg0MTgsImV4cCI6MTc2MTc0OTMxOCwiYXBwbGljYXRpb25faWQiOiJhYmNkLTEyMzQifQ.0USiqMHVCmGA4cGRmcHlnlc5j9OygcEUm7dSJ1mmcF-fzHlf_2TSnExX7FJxSy7BkbmljjR0Hd6c84jmMFoPq2d1Dl4lbYjO7pIG3UeiqyL94_iixq_fYudb6ZzN50s1uTFR90GE1GIiyAfMdeZfR8TftUNcmWud0amey8Nyr5f3OTuVhyhK5-y9xDlIhx6MMOFZ19-GRCvCBAm9DATwH4kOOsFOKG9thgzIVxtNKCimRrSUPiazAvVrLcSP1OAB7Ss1usuC3BAyfWXaYugnse2D-4mTeyZv5hXFMOSfP22c2TVixoNmeS18NfFR4pwVsHwM2yoqsrxa-MhpJPBeNw"
    ],
    "accept": [
      "*/*"
    ],
    "content-length": [
      "1101"
    ],
    "accept-encoding": [
      "gzip,deflate"
    ]
  },
  "body": "{\"to\":\"14152739164\",\"from\":\"Vonage\",\"message_type\":\"text\",\"text\":\"too many secrets\",\"channel\":\"rcs\",\"suggestions\":[{\"text\":\"We gotta save your kids\",\"postback_data\":\"QmlmZidzIGhpbGwgdmFsbGV5IGNhc2lubw\",\"type\":\"create_calendar_event\",\"title\":\"Sports Alamac\"},{\"text\":\"Janick Black Box\",\"postback_data\":\"QmlmZidzIGhpbGwgdmFsbGV5IGNhc2lubw\",\"type\":\"dial\",\"phone_number\":\"+14152739164\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"TmV2ZXIgZ29pbmcgdG8gbGV0IHlvdSBkb3du\",\"type\":\"open_url\",\"url\":\"https://youtu.be/dQw4w9WgXcQ\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"TmV2ZXIgZ29pbmcgdG8gbGV0IHlvdSBkb3du\",\"type\":\"open_url_in_webview\",\"url\":\"https://youtu.be/dQw4w9WgXcQ\",\"view_mode\":\"FULL\"},{\"text\":\"Never going to give you up\",\"postback_data\":\"Zm9yZCwgSSB0aGluayBJJ20gYSBjb3VjaAo\",\"type\":\"reply\"},{\"text\":\"The only place you are allowed to cry\",\"postback_data\":\"Z3JhbmQgY2FueW9u\",\"type\":\"share_location\"},{\"text\":\"The only place you are allowed to cry\",\"postback_data\":\"Z3JhbmQgY2FueW9u\",\"type\":\"view_location\",\"latitude\":\"36.05443\",\"longitude\":\"-112.13934\",\"pin_label\":\"Go Here\"}]}"
}
    at OverriddenClientRequest.<anonymous> (D:\a\vonage-node-sdk\vonage-node-sdk\node_modules\node-fetch\lib\index.js:1501:11)
    at OverriddenClientRequest.emit (node:events:524:28)
    at Socket.<anonymous> (D:\a\vonage-node-sdk\vonage-node-sdk\node_modules\propagate\index.js:64:17)
    at Socket.emit (node:events:524:28)
    at D:\a\vonage-node-sdk\vonage-node-sdk\node_modules\nock\lib\socket.js:101:14
    at processTicksAndRejections (node:internal/process/task_queues:77:11)

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@manchuck manchuck force-pushed the message-updates branch 3 times, most recently from 5567423 to 7013eb1 Compare September 17, 2025 20:21
@manchuck manchuck marked this pull request as ready for review September 18, 2025 21:04
Copy link
Contributor

@superchilled superchilled left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall, just a couple of small things to fix and some suggestions. Also, I noticed that this doesn't have the RCS card and carousel types; are those going to be in a separate PR?

@manchuck manchuck requested a review from superchilled November 6, 2025 17:03
Copy link
Contributor

@superchilled superchilled left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me (assuming card and carousel are being added separately?)

@manchuck manchuck merged commit 3a4f841 into main Nov 6, 2025
6 of 13 checks passed
@manchuck manchuck deleted the message-updates branch November 6, 2025 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants