Socket
Socket
Sign inDemoInstall

@bazel/cypress

Package Overview
Dependencies
553
Maintainers
6
Versions
71
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @bazel/cypress

Run Cypress e2e testing framework under Bazel


Version published
Weekly downloads
9.7K
decreased by-18.09%
Maintainers
6
Created
Weekly downloads
 

Changelog

Source

3.2.2 (2021-03-08)

Bug Fixes

  • esbuild: run npm version check as postinstall (#2500) (2efe437)
  • esbuild: set correct base url when rule is at root (#2506) (92e8169)
  • rollup: include externals config in worker cache key (de9dd86)

Features

  • builtin: add env attribute to nodejs test and binary and run_node helper (#2499) (c9b159f)
  • esbuild: add max_threads setting to limit number of threads used (8e7c731)
  • examples: update angular_bazel_architect to version 11 (#2495) (b8a4dcd)

Readme

Source

Cypress rules for Bazel

The Cypress rules run tests under the Cypress e2e testing framework with Bazel.

Installation

Add @bazel/cypress and cypress npm packages to your devDependencies in package.json.

npm install --save-dev @bazel/cypress cypress

or using yarn

yarn add -D @bazel/cypress cypress

Then, load and invoke cypress_repository within your WORKSPACE file.

# Assuming your external repository for node_modules is named @npm

load("@npm//@bazel/cypress:index.bzl", "cypress_repository")

# The name you pass here names the external repository you can load cypress_web_test from
cypress_repository(name = "cypress")

macOS install requirements

On macOS, cypress_repository generates an external repository containing files whose names contain spaces. In order to make these files compatible with bazel you will need to add the following flag to your .bazelrc file:

# Required for cypress_repository on macOS
build --experimental_inprocess_symlink_creation

windows install requirements

At this point in time, cypress_repository is incompatible with bazel sandboxing on Windows. This may change in the future, but for now using cypress on windows requires windows sandboxing be disabled (it is disabled by default)

Example use of cypress_web_test

This example assumes you've named your external repository for node_modules as npm and for cypress as cypress

load("@cypress//:index.bzl", "cypress_web_test")
load("@npm//@bazel/typescript:index.bzl", "ts_library")

# You must create a cypress plugin in order to boot a server to serve your application. It can be written as a javascript file or in typescript using ts_library or ts_project.
ts_library(
    name = "plugins_file",
    testonly = True,
    srcs = ["plugin.ts"],
    tsconfig = ":tsconfig.json",
    deps = [
        "@npm//@types/node",
        "@npm//express",
    ],
)

# You can write your cypress tests a javascript files or in typescript using ts_library or ts_project.
ts_library(
    name = "hello_spec",
    testonly = True,
    srcs = ["hello.spec.ts"],
    tsconfig = ":tsconfig.json",
    deps = [
        "@npm//cypress",
    ],
)

cypress_web_test(
    # The name of your test target
    name = "test",
    srcs = [
        # Load javascript test files directly as sources
        "world.spec.js",
        # Load ts_library tests as a target to srcs
        ":hello_spec",
    ],
    # A cypress config file is required
    config_file = "cypress.json",
    # Any runtime dependencies you need to boot your server or run your tests
    data = [],
    # Your cypress plugin used to configure cypress and boot your server
    plugins_file = ":plugins_file",
)

cypress_repository

USAGE

cypress_repository(name, cypress_bin, fail_on_error, quiet, repo_mapping)

ATTRIBUTES

name

(Name, mandatory): A unique name for this repository.

cypress_bin

(Label): bazel target of the cypress binary

Defaults to @npm//:node_modules/cypress/bin/cypress

fail_on_error

(Boolean): If the repository rule should allow errors

Defaults to True

quiet

(Boolean): If stdout and stderr should be printed to the terminal

Defaults to True

repo_mapping

(Dictionary: String -> String, mandatory): A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.

For example, an entry "@foo": "@bar" declares that, for any time this repository depends on @foo (such as a dependency on @foo//some:target, it should actually resolve that dependency within globally-declared @bar (@bar//some:target).

Keywords

FAQs

Last updated on 08 Mar 2021

Did you know?

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

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc