npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cypress-network-wait

v0.1.22

Published

Cypress function that waits for all incoming web requests to finish before returning to the normal test execution flow

Downloads

197

Readme

Cypress Network Wait

Cypress Network Wait is a command that enhances Cypress testing capabilities by implementing a "wait for network" principle, ensuring stable and reliable tests even in dynamic web environments. It efficiently handles asynchronous network requests, allowing seamless synchronization with your application's state changes.

Installation

# Using npm
npm install cypress-network-wait

# Using yarn
yarn add cypress-network-wait

Getting started

Integrating Cypress Network Wait into your Cypress tests is straightforward. Simply import the setupNetworkWait function and call it in your e2e.js file.

import { setupNetworkWait } from "cypress-network-wait";

setupNetworkWait();

You can also provide a timeout in miliseconds, a flag for the verbose mode or a personal configuration of your API hosts

import { setupNetworkWait } from "cypress-network-wait";

setupNetworkWait({ timeout: 10000, verbose: true, apiHosts: ["*"] });

How it works

Cypress Network Wait operates on the principle of intercepting and counting network requests. It is composed of two main functions:

setupInterception(), that sets up the request interceptors before each test case.

registerCommand({ userTimeout, verbose }), that adds the cy.networkWait() command to cypress.

It's important to keep in mind that setupInterception initializes a beforeEach statement internally. Be aware of any potential impact on your system.

Usage

Add cy.networkWait() into your Cypress tests after any actions that trigger state changes in your application.

describe("example to-do app", () => {
  beforeEach(() => {
    cy.visit("https://example.cypress.io/todo");

    // Recommended usage after `cy.visit()` 
    // for guaranteed state change
    cy.networkWait();
  });

  it("can add new todo items", () => {
    const newItem = "Feed the cat";
    cy.get("[data-test=new-todo]").type(`${newItem}{enter}`);

    // Also use after actions changing
    // on-screen elements' state
    cy.networkWait();
    cy.get(".todo-list li")
      .should("have.length", 3)
      .last()
      .should("have.text", newItem);
  });
});

Example Output

In regular mode, Cypress Network Wait provides only the total amount of pending requests.

Cypress run log showing cy.networkWait() output in regular mode

In verbose mode, it shows the request count decreasing progressively.

Cypress run log showing cy.networkWait() output in verbose mode

Contribute

Found a bug or have a feature request? We welcome contributions from the community. Visit our GitLab repository to get started.

License

Cypress Network Wait is licensed under the MIT License. Feel free to use, modify, and distribute it according to your needs.