Socket
Book a DemoInstallSign in
Socket

cypress-websocket-server

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cypress-websocket-server

Cypress plugin to mock a websocket server during tests

0.1.2
latest
Source
npmnpm
Version published
Maintainers
1
Created
Source

cypress-websocket-server

Cypress plugin to mock a websocket server during tests.

Getting started

Install:

npm i cypress-websocket-server

Add cy.setWebsocketWorkflow() command by adding the following to cypress/support/index.js:

import { addCommand } from "cypress-websocket-server";
addCommand();

Add websocket server in cypress/plugins/index.js, accessible via endpoint ws://localhost:1999:

const { startMockWsServer } = require("cypress-websocket-server");

module.exports = (on, config) => {
  startMockWsServer(config);
};

Workflow file format

The fixture .json file should contain an array of objects with properties:

  • type:
    • server: a message that should be sent by the server
    • client: a message the server expects from the client
    • reconnect: an expected client reconnection
  • payload (optional): message data, can be of any object type

Example workflow

In a scenario where a websocket exchange is expected after the user clicking a button, the websocket can be configured to follow a specific workflow like this:

describe("Trigger WS workflow on button click", () => {
  it("Run new project", () => {
    cy.visit("/");
    cy.setWebsocketWorkflow("expected-workflow.json");
    cy.get("[data-cy=ws-trigger-button]").click();
  });
});

Being the content of expected-workflow.json, in fixtures folder:

[
  {
    "type": "server",
    "payload": { "message": "connected" }
  },
  {
    "type": "client",
    "payload": { "action": "get-user" }
  },
  {
    "type": "server",
    "payload": {
      "message": "user-info",
      "data": {
        "id": 1,
        "name": "My User"
      }
    }
  }
]

The server will listen to any connections in ws://localhost:1999 and:

  • Send payload { "message": "connected" } on client connection
  • Expect client message with payload { "action": "get-user" }
  • Send back user info

If the client doesn't send the expected message in the right order, or send additional messages, an error will be printed to Cypress console.

License

MIT

Keywords

cypress

FAQs

Package last updated on 13 Oct 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.