{
  "doc": {
    "id": "app/references/recipes",
    "title": "Cypress Recipes: How to Test Common Scenarios",
    "description": "Cypress Recipes show you how to test common scenarios in Cypress. Learn how to test the DOM, log in, use preprocessors, and more.",
    "section": "app",
    "source_path": "/llm/markdown/app/references/recipes.md",
    "version": "ce02913654e2655ee63448bdc92bb92c7b46a619",
    "updated_at": "2026-04-22T19:37:51.587Z",
    "headings": [
      {
        "id": "app/references/recipes#recipes",
        "text": "Recipes",
        "level": 1
      },
      {
        "id": "app/references/recipes#fundamentals",
        "text": "Fundamentals",
        "level": 2
      },
      {
        "id": "app/references/recipes#testing-the-dom",
        "text": "Testing the DOM",
        "level": 2
      },
      {
        "id": "app/references/recipes#logging-in",
        "text": "Logging In",
        "level": 2
      },
      {
        "id": "app/references/recipes#preprocessors",
        "text": "Preprocessors",
        "level": 2
      },
      {
        "id": "app/references/recipes#blogs",
        "text": "Blogs",
        "level": 2
      },
      {
        "id": "app/references/recipes#stubbing-and-spying",
        "text": "Stubbing and spying",
        "level": 2
      },
      {
        "id": "app/references/recipes#unit-testing",
        "text": "Unit Testing",
        "level": 2
      },
      {
        "id": "app/references/recipes#server-communication",
        "text": "Server Communication",
        "level": 2
      },
      {
        "id": "app/references/recipes#other-cypress-recipes",
        "text": "Other Cypress Recipes",
        "level": 2
      }
    ]
  },
  "content": {
    "type": "root",
    "children": [
      {
        "type": "heading",
        "depth": 1,
        "children": [
          {
            "type": "text",
            "value": "Recipes"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Recipes show you how to test common scenarios in Cypress."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Icon"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Fundamentals"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/fundamentals__node-modules",
                    "children": [
                      {
                        "type": "text",
                        "value": "Node Modules"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Import your own Node modules"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/server-communication__env-variables",
                    "children": [
                      {
                        "type": "text",
                        "value": "Environment variables"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Passing environment variables to tests"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/fundamentals__errors",
                    "children": [
                      {
                        "type": "text",
                        "value": "Handling errors"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Handling thrown errors and unhandled promise rejections"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/fundamentals__dynamic-tests",
                    "children": [
                      {
                        "type": "text",
                        "value": "Dynamic tests"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Create tests dynamically from JSON data"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/fundamentals__dynamic-tests-from-csv",
                    "children": [
                      {
                        "type": "text",
                        "value": "Dynamic tests from CSV"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Create tests dynamically from CSV file"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/fundamentals__dynamic-tests-from-api",
                    "children": [
                      {
                        "type": "text",
                        "value": "Dynamic tests from API"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Create tests dynamically by calling an external API"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/fundamentals__fixtures",
                    "children": [
                      {
                        "type": "text",
                        "value": "Fixtures"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Loading single or multiple fixtures"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/fundamentals__add-custom-command",
                    "children": [
                      {
                        "type": "text",
                        "value": "Adding Custom Commands"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Write your own custom commands using JavaScript with correct types for IntelliSense to work"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/fundamentals__add-custom-command-ts",
                    "children": [
                      {
                        "type": "text",
                        "value": "Adding Custom Commands (TS)"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Write your own custom commands using TypeScript"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/extending-cypress__chai-assertions",
                    "children": [
                      {
                        "type": "text",
                        "value": "Adding Chai Assertions"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Add new or custom chai assertions"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/fundamentals__module-api",
                    "children": [
                      {
                        "type": "text",
                        "value": "Cypress module API"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Run Cypress via its module API"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/fundamentals__module-api-wrap",
                    "children": [
                      {
                        "type": "text",
                        "value": "Wrapping Cypress module API"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Writing a wrapper around \"cypress run\" command line parsing"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/fundamentals__custom-browsers",
                    "children": [
                      {
                        "type": "text",
                        "value": "Custom browsers"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Control which browsers the project can use, or even add a custom browser into the list"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/fundamentals__chrome-remote-debugging",
                    "children": [
                      {
                        "type": "text",
                        "value": "Use Chrome Remote Interface"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use Chrome debugger protocol to trigger hover state and print media style"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/fundamentals__typescript",
                    "children": [
                      {
                        "type": "text",
                        "value": "Out-of-the-box TypeScript"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Write tests in TypeScript without setting up preprocessors"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/fundamentals__timeout",
                    "children": [
                      {
                        "type": "text",
                        "value": "Per-test timeout"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Fail a test if it runs longer than the specified time limit"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/fundamentals__cy-events",
                    "children": [
                      {
                        "type": "text",
                        "value": "Cypress events"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Using `Cypress.on` and `cy.on` to listen to Cypress events like `before:window:load`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/fundamentals__window-size",
                    "children": [
                      {
                        "type": "text",
                        "value": "Video resolution"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Increase the browser window size to record high quality videos and capture detailed screenshots"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Testing the DOM"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__tab-handling-links",
                    "children": [
                      {
                        "type": "text",
                        "value": "Tab Handling and Links"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Links that open in a new tab"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__hover-hidden-elements",
                    "children": [
                      {
                        "type": "text",
                        "value": "Hover and Hidden Elements"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Test hidden elements requiring hover"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__form-interactions",
                    "children": [
                      {
                        "type": "text",
                        "value": "Form Interactions"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Test form elements like input type `range`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__drag-drop",
                    "children": [
                      {
                        "type": "text",
                        "value": "Drag and Drop"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use `.trigger()` to test drag and drop"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__shadow-dom",
                    "children": [
                      {
                        "type": "text",
                        "value": "Shadow DOM"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Test elements within shadow DOM"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__wait-for-resource",
                    "children": [
                      {
                        "type": "text",
                        "value": "Waiting for static resource"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Shows how to wait for CSS, image, or any other static resource to load"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__csv-table",
                    "children": [
                      {
                        "type": "text",
                        "value": "CSV load and table test"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Loads CSV file and compares objects against cells in a table"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__performance-metrics",
                    "children": [
                      {
                        "type": "text",
                        "value": "Evaluate performance metrics"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Utilize Cypress to monitor a website"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__root-style",
                    "children": [
                      {
                        "type": "text",
                        "value": "Root style"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Trigger input color change that modifies CSS variable"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__select2",
                    "children": [
                      {
                        "type": "text",
                        "value": "Select widgets"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Working with `<select>` elements and "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://select2.org/",
                    "children": [
                      {
                        "type": "text",
                        "value": "Select2"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " widgets"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/testing-dom__lit-element",
                    "children": [
                      {
                        "type": "text",
                        "value": "Lit Elements"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Testing Lit Elements with Shadow DOM"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__download",
                    "children": [
                      {
                        "type": "text",
                        "value": "File download"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Download and validate CSV, Excel, text, Zip, and image files"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/testing-dom__page-reloads",
                    "children": [
                      {
                        "type": "text",
                        "value": "Page reloads"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Avoiding `while` loop when dealing with randomness"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__pagination",
                    "children": [
                      {
                        "type": "text",
                        "value": "Pagination"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Clicking the \"Next\" link until we reach the last page"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/testing-dom__clipboard",
                    "children": [
                      {
                        "type": "text",
                        "value": "Clipboard"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Copy and paste text into the clipboard from the test"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Logging In"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/logging-in__basic-auth",
                    "children": [
                      {
                        "type": "text",
                        "value": "Basic Auth"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Log in using Basic Authentication"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/logging-in__single-sign-on",
                    "children": [
                      {
                        "type": "text",
                        "value": "Single Sign On"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Log in across multiple servers or providers"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/logging-in__html-web-forms",
                    "children": [
                      {
                        "type": "text",
                        "value": "HTML Web Forms"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Log in with a basic HTML form"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/logging-in__xhr-web-forms",
                    "children": [
                      {
                        "type": "text",
                        "value": "XHR Web Forms"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Log in using an XHR"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/logging-in__csrf-tokens",
                    "children": [
                      {
                        "type": "text",
                        "value": "CSRF Tokens"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Log in with a required CSRF token"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/logging-in__jwt",
                    "children": [
                      {
                        "type": "text",
                        "value": "Json Web Tokens"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Log in using JWT"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/logging-in__using-app-code",
                    "children": [
                      {
                        "type": "text",
                        "value": "Using application code"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Log in by calling the application code"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Also see "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/plugins/plugins-list.md",
            "children": [
              {
                "type": "text",
                "value": "Authentication plugins"
              }
            ]
          },
          {
            "type": "text",
            "value": " and watch\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "https://www.youtube.com/watch?v=5XQOK0v_YRE",
            "children": [
              {
                "type": "text",
                "value": "Organizing Tests, Logging In, Controlling State"
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Preprocessors"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/preprocessors__grep",
                    "children": [
                      {
                        "type": "text",
                        "value": "Grep tests"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Filter tests by name using Mocha-like `grep` syntax"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/preprocessors__typescript-browserify",
                    "children": [
                      {
                        "type": "text",
                        "value": "Typescript with Browserify"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Add typescript support with browserify"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/preprocessors__typescript-webpack",
                    "children": [
                      {
                        "type": "text",
                        "value": "Typescript with Webpack"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Add typescript support with webpack"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/preprocessors__flow-browserify",
                    "children": [
                      {
                        "type": "text",
                        "value": "Flow with Browserify"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Add flow support with Browserify"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Blogs"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Demo recipes from the blog posts at "
          },
          {
            "type": "link",
            "title": null,
            "url": "https://www.cypress.io/blog",
            "children": [
              {
                "type": "text",
                "value": "Cypress blog"
              }
            ]
          },
          {
            "type": "text",
            "value": "."
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__application-actions",
                    "children": [
                      {
                        "type": "text",
                        "value": "Application Actions"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Application actions are a replacement for Page Objects"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__e2e-api-testing",
                    "children": [
                      {
                        "type": "text",
                        "value": "E2E API Testing"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Run your API Tests with a GUI"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__e2e-snapshots",
                    "children": [
                      {
                        "type": "text",
                        "value": "E2E Snapshots"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "End-to-End Snapshot Testing"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__element-coverage",
                    "children": [
                      {
                        "type": "text",
                        "value": "Element Coverage"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Track elements covered by tests"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__codepen-demo",
                    "children": [
                      {
                        "type": "text",
                        "value": "Codepen.io Testing"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Test a HyperApp Codepen demo"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__testing-redux-store",
                    "children": [
                      {
                        "type": "text",
                        "value": "Testing Redux Store"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Test an application that uses central Redux data store"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__vue-vuex-rest",
                    "children": [
                      {
                        "type": "text",
                        "value": "Vue + Vuex + REST Testing"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Test an application that uses central Vuex data store"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__a11y",
                    "children": [
                      {
                        "type": "text",
                        "value": "A11y Testing"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Accessibility testing with "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/avanslaars/cypress-axe",
                    "children": [
                      {
                        "type": "text",
                        "value": "cypress-axe"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://www.cypress.io/blog/2019/08/02/guest-post-angular-adding-cypress-ui-tests-to-your-devops-pipeline",
                    "children": [
                      {
                        "type": "text",
                        "value": "Automate Angular Testing"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Automate Angular Testing"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__use-react-devtools",
                    "children": [
                      {
                        "type": "text",
                        "value": "React DevTools"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Loads React DevTools Chrome extension automatically"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__assertion-counting",
                    "children": [
                      {
                        "type": "text",
                        "value": "Expect N assertions"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "How to expect a certain number of assertions in a test"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__notification",
                    "children": [
                      {
                        "type": "text",
                        "value": "Browser notifications"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "How to test application that uses "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://developer.mozilla.org/en-US/docs/Web/API/notification",
                    "children": [
                      {
                        "type": "text",
                        "value": "`Notification`"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__iframes",
                    "children": [
                      {
                        "type": "text",
                        "value": "Testing iframes"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Accessing elements in 3rd party iframe, spy and stub network calls from iframe"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/blogs__class-decorator",
                    "children": [
                      {
                        "type": "text",
                        "value": "Class decorators"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Using JavaScript class decorator to expose objects created by the application so they are reachable from tests"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__form-submit",
                    "children": [
                      {
                        "type": "text",
                        "value": "Form Submit"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Removing flake from the test where a page is reloaded after form submission"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__dayjs",
                    "children": [
                      {
                        "type": "text",
                        "value": "Using Day.js instead of Moment.js"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Using "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://day.js.org/",
                    "children": [
                      {
                        "type": "text",
                        "value": "day.js"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " library instead of the deprecated `Cypress.moment`"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Stubbing and spying"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing-spying__functions",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stubbing Functions"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use `cy.stub()` to test function calls"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing-spying__window-fetch",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stubbing `window.fetch`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use `cy.stub()` to control fetch requests"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing-spying__intercept",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stubbing using`cy.intercept`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Control network using `cy.intercept` API"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing-spying__window",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stubbing `window.open` and `console.log`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use `cy.stub()` and `cy.spy()` to test application behavior"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing-spying__window-print",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stubbing `window.print`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use ` cy.stub()  `to test `window.print` call made from the application"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing-spying__google-analytics",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stubbing Google Analytics"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use `cy.stub()` and `cy.intercept()` to test Google Analytics calls"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing-spying__console",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stub methods called on `console`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use `cy.stub()` to test and control methods called on `console`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing__resources",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stub resource loading"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use `MutationObserver` to stub resource loading like `img` tags"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/stubbing-spying__navigator",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stub `navigator.cookieEnabled` property"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Use `cy.stub()` to mock the `navigator.cookieEnabled` property"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Unit Testing"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/unit-testing__application-code",
                    "children": [
                      {
                        "type": "text",
                        "value": "Application Code"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Import and test your own application code"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Server Communication"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/server-communication__bootstrapping-your-app",
                    "children": [
                      {
                        "type": "text",
                        "value": "Bootstrapping your App"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Seed your application with test data"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/server-communication__seeding-database-in-node",
                    "children": [
                      {
                        "type": "text",
                        "value": "Seeding your Database in Node"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Seed your database with test data"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/server-communication__xhr-assertions",
                    "children": [
                      {
                        "type": "text",
                        "value": "XHR assertions"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Spy and assert on application's network calls"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/server-communication__visit-2nd-domain",
                    "children": [
                      {
                        "type": "text",
                        "value": "Visiting 2nd domain"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Visiting two different domains from two different tests and passing value from one test to another"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/server-communication__pass-value-between-specs",
                    "children": [
                      {
                        "type": "text",
                        "value": "Pass value between specs"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Pass a value from spec to spec using `cy.task`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/server-communication__stream-tests",
                    "children": [
                      {
                        "type": "text",
                        "value": "Stream test results"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Streams each test result from the browser to the plugins to an external process via IPC"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/server-communication__offline",
                    "children": [
                      {
                        "type": "text",
                        "value": "Offline"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Test web application when the network is offline"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/server-communication__server-timing",
                    "children": [
                      {
                        "type": "text",
                        "value": "Server timing"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Report server timing results from Cypress test"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/server-communication__wait-for-api",
                    "children": [
                      {
                        "type": "text",
                        "value": "Wait for API"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Call the backend using `cy.request` until it responds"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/server-communication__request",
                    "children": [
                      {
                        "type": "text",
                        "value": "Making HTTP requests"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "How to use `cy.request`, `window.fetch`, and `cy.task` commands to make HTTP requests to the server with and without cookies"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Other Cypress Recipes"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Recipe"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/tooling/visual-testing.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "Visual Testing"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Official Cypress guide to visual testing"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/tooling/code-coverage.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "Code Coverage"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Official Cypress guide to code coverage"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "https://www.cypress.io/blog/2019/05/02/run-cypress-with-a-single-docker-command/",
                    "children": [
                      {
                        "type": "text",
                        "value": "Run in Docker"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Run Cypress with a single Docker command"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "token_estimate": 1723
}