Skip to content

This npm library enhances Cypress testing capabilities by providing convenient commands for retrieving received SMS history from Pipedream. Simplify your end-to-end testing workflow by effortlessly integrating SMS history verification into your Cypress tests.

Notifications You must be signed in to change notification settings

alecmestroni/cypress-pipedream-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Retrieve SMS history from Pipedream

This npm library enhances Cypress testing capabilities by providing convenient commands for retrieving received SMS history from Pipedream.
Simplify your end-to-end testing workflow by effortlessly integrating SMS history verification into your Cypress tests.

Install

$ npm install cypress-pipedream-plugin --save-dev

Alternatively, you can install it as a global module:

$ npm install -g cypress-pipedream-plugin

Prerequisites

A Pipedream source: https://pipedream.com/sources/new.
Pay attention to set the Body Only option to true when creating the source, if you haven't and you have already created the Pipedream-Source enables it here: https://pipedream.com/sources/{your-source}/configuration

Added commands

Commands Notes
cy.getNewestMessage() Attempts to retrieve last (NEWEST) SMS for a specific Pipedream Source History within a specified time limit.
cy.getOldestMessage() Attempts to retrieve first (OLDEST) SMS for a specific Pipedream Source History within a specified time limit.
cy.clearMessagesHistory() Clears the SMS history for a specific Pipedream Source.
cy.clearHistorySendSmsAndGetSMS() This command simplifies the usage by executing the following commands in sequence:
cy.clearMessagesHistory() //
cy.get('[data-cy="send-sms"]', { timeout: 120000 }).click() // Command to send the SMS from the frontend
cy.getNewestMessage()

According to cypress documentation adding the data-cy tag to your frontend, is the best way to keep your test updated and maintainable.

Configuration

Inside cypress/support/e2e.js

At the top of your support file (usually cypress/support/e2e.js for e2e testing type):

import 'cypress-pipedream-plugin'

Inside your environment file

You MUST set these environment variables to make this plugin working

Parameter Mandatory Notes Default
pipedreamBearer TRUE Bearer used for Pipedream Auth \
pipedreamSourceID TRUE Your Pipedream Source ID \
pipedreamMaxRetries FALSE Max retires value for the commands cy.getOldestMessage() or cy.getNewestMessage() 120 (seconds)
pipedreamFolderPath FALSE Folder where the SMS body will be saved 'cypress/fixtures/sms-response'
pipedreamFileName FALSE File name in which the message will be written 'message.json'

To set these variables dynamically in a multi environment cypress-test, you can use the following plugin: cypress-env

Considerations

To check the file contents, you can use the following command:

cy.readFile('cypress/fixtures/sms_response/message.json', {
	timeout: 60000,
	retries: 3,
}).then((message) {
  ... // do something with the saved message
})

Missing configuration error:

────────────────────────────────────────────────────────────────────────────────────────────────────

  Running:  myFirstTest.cy.js                                                               (1 of 1)

    An uncaught error was detected outside of a test (Attempt 1 of 2)
    Error: The following error originated from your test code, not from Cypress.
  1) An uncaught error was detected outside of a test

  0 passing (1s)
  1 failing

  1) An uncaught error was detected outside of a test:
     Error: The following error originated from your test code, not from Cypress.

  > CYPRESS-PIPEDREAM-PLUGIN | Missing environment variables: env('pipedreamBearer') & env('pipedreamSourceID') needed

────────────────────────────────────────────────────────────────────────────────────────────────────

THE JOB IS DONE!

Happy testing to everyone!

ALEC-JS

🙌 Donate to support my work & further development! 🙌

About

This npm library enhances Cypress testing capabilities by providing convenient commands for retrieving received SMS history from Pipedream. Simplify your end-to-end testing workflow by effortlessly integrating SMS history verification into your Cypress tests.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published