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-example-kitchensink

v3.1.2

Published

This is an example app used to showcase Cypress.io End-to-End (E2E) testing. For a full reference of our documentation, go to https://docs.cypress.io

Downloads

3,317

Readme

Kitchen Sink renovate-app badge semantic-release

This is an example app used to showcase Cypress.io End-to-End (E2E) testing. The application demonstrates the use of most Cypress API commands. Additionally this example app is configured to run E2E tests in various CI platforms. Several workflows demonstrate the CI use of Cypress Docker images which provide convenient, pre-configured compatible environments for Cypress. The tests are also heavily commented.

To see the kitchen sink application, and to view the Cypress API commands demonstrated by the app, visit example.cypress.io.

For a full reference of our documentation, go to docs.cypress.io.

For an example payment application demonstrating real-world usage of Cypress.io End-to-End (E2E) testing, go to the cypress-io/cypress-realworld-app repository.

CI Status

The following table lists live workflows from various CI providers. These each independently test the contents of this example repository. They run and record using Cypress Cloud with their results displaying centrally under Cypress Cloud ProjectId 4b7344. Each CI provider shows its build status on its own site:

| CI Provider | Workflow | Build Status | Docker example | | :----------------------------------------------------- | :--------------------------------------------- | :---------------------------------------------------------------------- | :----------------: | | AppVeyor | appveyor.yml | AppVeyor CI | | | CircleCI | .circleci/config.yml | CircleCI | :white_check_mark: | | cypress-io/github-action | using-action.yml | Cypress GHA status | | | GitHub Actions | single.yml | Single tests status | | | GitHub Actions | parallel.yml | Parallel tests status | |

You can find all CI results recorded on the Cypress Cloud Cypress Cloud

CI Workflow Examples

This table shows additional examples of CI workflows. With the exception of GitHub Actions workflows, these are not live examples as in the table above and they may require modification before use. The GitHub Actions workflows are live and they run without recording to Cypress Cloud.

| CI Provider | Basic Config | Full Parallel Config | Docker example | | :---------------------------------------------------- | :------------------------------------------------------- | :--------------------------------------------------- | :----------------: | | AWS Amplify | amplify.yml | | | | AWS CodeBuild | basic/buildspec.yml | buildspec.yml | | | Azure Pipelines | basic/azure-ci.yml | azure-ci.yml | | | Buddy.works | buddy.yml | | :white_check_mark: | | Buildkite | .buildkite/pipeline.yml | | | | CircleCI | basic/.circleci/config.yml | | :white_check_mark: | | CloudBees CodeShip Pro | basic/codeship-pro | codeship-services.yml | :white_check_mark: | | GitHub Actions | chrome.yml | | | | GitHub Actions | chrome-docker.yml | | :white_check_mark: | | GitLab | basic/.gitlab-ci.yml | .gitlab-ci.yml | :white_check_mark: | | Jenkins | basic/Jenkinsfile | Jenkinsfile | :white_check_mark: | | Semaphore 2.0 | basic/.semaphore.yml | .semaphore/semaphore.yml | | | Travis CI | basic/.travis.yml | .travis.yml | |

The Cypress documentation page CI Provider Examples provides some more examples with extensive guides for using Cypress with some of the most popular CI providers.

Run Tests

Local testing

To run the tests from this repo on your local machine, first make sure your machine meets the Cypress System Requirements, including the installation of Node.js according to the version specified in the file .node-version.

Executing the following instructions will clone the repository, install dependencies and run Cypress:

git clone https://github.com/cypress-io/cypress-example-kitchensink.git
cd cypress-example-kitchensink
npm ci # install dependencies
npm run local:run # run Cypress headlessly

local:run is a package.json script that starts a local webserver and then uses cypress run to run Cypress headlessly. If you would like to run Cypress tests interactively, then run the following command which uses cypress open to run Cypress in headed mode. You can pick individual tests to run.

npm run local:open

As an alternative to using the local:open and local:run scripts, you can also start the server in one step and then run Cypress in a second step.

npm start # start server on port 8080

You can check that the server is running if you open a web browser and navigate to http://localhost:8080.

Then in a separate terminal window execute either

npx cypress run # for headless mode

or

npx cypress open # for headed interactive mode

Script and server structure

The scripts local:run and local:open use the start-test alias of the npm module start-server-and-test to run ./scripts/start.js, which starts the webserver, waits for it to become ready, and then launches Cypress.

The start script spawns a webserver using the npm module serve and displays the Kitchen Sink App on port 8080.

Docker testing

If you have Docker installed locally, for instance using Docker Desktop, you can run the tests from this repo interactively in a Docker container. Use Cypress Docker images, which are built with all the prerequisites for running Cypress. They are available as base, browsers and included options from Docker Hub and the Amazon ECR (Elastic Container Registry) Public Gallery.

As above, start by cloning the repo and installing dependencies:

git clone https://github.com/cypress-io/cypress-example-kitchensink
cd cypress-example-kitchensink
npm ci

[!NOTE] For simplicity, the Docker examples below use a repository reference such as cypress/base with the latest version tag. To select an earlier version, replace latest with an explicit tag, for example cypress/base:20.15.1. Explicit version tags are recommended for production. Usage is further explained in Tag Selection.

cypress/base

The following example uses a cypress/base image which itself contains no browsers. You will use the Electron browser bundled with Cypress instead. To run the Docker container, execute the following:

docker run -it --rm -v .:/e2e -w /e2e cypress/base:latest

When the container prompt appears, enter:

npx cypress install     # install Cypress binary
npm run test:ci         # start server and run tests in Electron browser
exit

cypress/browsers

With a cypress/browsers image you have the additional choice of Chrome, Edge and Firefox browsers. Execute the following:

docker run -it --rm -v .:/e2e -w /e2e cypress/browsers:latest

When the container prompt appears, enter:

npx cypress install     # install Cypress binary
npm run test:ci         # start server and run tests in Electron browser
npm run test:ci:chrome  # start server and run tests in Chrome browser
npm run test:ci:edge    # start server and run tests in Edge browser
npm run test:ci:firefox # start server and run tests in Firefox browser
exit

cypress/included

The cypress/included images add a full Cypress installation compared to cypress/browsers. Execute the following to run the container with a one-line command, testing with the Chrome browser:

docker run -it --rm -v .:/e2e -w /e2e --entrypoint bash cypress/included:latest -c 'npm run test:ci:chrome' # use for matching Cypress versions

Replace the latest tag in the above command using the Cypress version from the repo's package.json, if this repository has not yet been updated to the latest released Cypress version. Note that mismatched versions will cause errors.

[!NOTE] Additional browsers Chrome, Edge and Firefox are only installed in linux/amd64 architecture images cypress/browsers and cypress/included. Browsers are not available pre-installed for linux/arm64 architecture images. The Electron browser, which is built-in to Cypress, is available in all images and architectures.

CI Testing

If you would like to try out running tests in a Continuous Integration (CI) provider then you need to first fork the repository so that you have your own copy. Refer to the GitHub documentation to set up aliases for remote upstream (to this repo) and remote origin (to your fork) correctly. You will also need to have an account with the CI provider you want to test with.

Documentation

Support

  • For "how-to" questions and discussions, go to the Cypress Discord Chat and be part of the worldwide user community!

Contributing

Check out the Contributing Guideline.

Changelog

See Releases.