@icokie/cypress-webhooksite
TypeScript icon, indicating that this package has built-in type declarations

2.0.2 • Public • Published

Cypress-Webhooksite

Buy me a beer

Simple library which adds webhook.site commands into cypress.io

npm version package size minified

total downloads total downloads per year total downloads per week total downloads per month

Email e2e testing:

  • add import to cypress commands
import '@icokie/cypress-webhooksite'
  • add tasks into cypress.config.ts
import {defineConfig} from 'cypress'
import {tasks} from '@icokie/cypress-webhooksite/lib/tasks'

export default defineConfig({
    e2e: {
        setupNodeEvents(on, config) {
            on('task', tasks)
        },
    },
})
  • connect types in tsconfig.json
{
  "compilerOptions": {
    "types": ["cypress", "@icokie/cypress-webhooksite"]
  }
}
  • use it in your CY test files
describe('Email', () => {
    before(() => {
        // request test email
        cy.getWebHookSiteToken().as('emailRequest')
    })

    it('should receive email after user submits subscribe form', () => {
        cy.visit('http://localhost:5000')

        cy.findByLabelText('Name').should('be.empty').type('Test name')

        cy.get('@emailRequest').then((response) => {
            const { email } = response

            // type email into form
            cy.findByLabelText('Email').should('be.empty').type(email)
        })

        // send email form
        cy.findByRole('button').should('be.enabled').click()

        cy.get('@emailRequest').then((response) => {
            const { uuid } = response

            return cy.getWebHookSiteTokenRequests(uuid, undefined, 30000).then((response) => {
                // get latest email request from email server
                const {data: [latestRequest]} = response

                // check if email contains message which was sent
                cy.wrap(latestRequest.content).should('contain', 'Congratulations you are subscribed :) stay tuned!!!!')

                // delete email when not needed :)
                cy.deleteWebHookSiteToken(uuid)
            });
        })
    })
})

That's it!

Package Sidebar

Install

npm i @icokie/cypress-webhooksite

Weekly Downloads

33

Version

2.0.2

License

MIT

Unpacked Size

17.2 kB

Total Files

8

Last publish

Collaborators

  • icokie