Skip to content

Latest commit

 

History

History
95 lines (62 loc) · 2.81 KB

README.md

File metadata and controls

95 lines (62 loc) · 2.81 KB

Cypress Mount

⚠️ THIS PACKAGE IS NOW DEPRECATED, SINCE CYPRESS 10, YOU SHOULD PREFER USING THE OFFICIAL PACKAGE cypress/angular

👉 but don't forget to check out our Angular CDK Harness support with @jscutlery/cypress-harness 👈

Last version's source code: cypress-mount-0.12.7


This module brings Angular support to Cypress Component Testing.

It is aiming to make Cypress Component Testing with Angular easier than writing code without tests 😜.

Cypress Component Testing

Cypress Component Testing is the missing balance between component unit-testing and pure e2e testing.

It will help you enjoy both the benefits of unit-tests isolation and Cypress tooling & Developer eXperience.

Setup

0. Use NX

Cypress Component Testing (and everything else) is easier with Nx.

If you are writing a new app, you can create a Nx workspace with the following command:

yarn create nx-workspace # or npm init nx-workspace

... otherwise, you can migrate to Nx using:

ng add @nx/workspace

1. Install

The following install guide targets Cypress >= 7, follow this guide for Cypress < 7.

yarn add -D @jscutlery/cypress-mount @jscutlery/cypress-angular-dev-server @cypress/webpack-dev-server html-webpack-plugin

# or

npm install -D @jscutlery/cypress-mount @jscutlery/cypress-angular-dev-server @cypress/webpack-dev-server html-webpack-plugin

2. Enable Cypress Component Testing

2.a. Enable Cypress Component Testing by updating cypress.json:

{
  ...
  "component": {
    "testFiles": "**/*.spec.{js,ts,jsx,tsx}",
    "componentFolder": "./src/components"
  }
}

2.b. Update the include property in tsconfig.json file:

{
  ...
  "include": ["src/components/**/*.ts", "src/support/**/*.ts"],
}

2.c. Import support commands by updating e2e folder's *-e2e/src/support/index.ts and adding:

import '@jscutlery/cypress-mount/support';

2.d. Setup Angular Dev Server in *-e2e/src/plugins/index.ts, in order to build angular components (e.g. handle templateUrl etc...):

import { startAngularDevServer } from '@jscutlery/cypress-angular-dev-server';

module.exports = (on, config) => {
  on('dev-server:start', (options) =>
    startAngularDevServer({ config, options })
  );
  return config;
};

Usage

Cf. @jscutlery/cypress-angular