1.3.1 • Published 7 years ago

@briebug/jest v1.3.1

Weekly downloads
282
License
MIT
Repository
github
Last release
7 years ago

DEPRECATED ⚠

This repo & package have been deprecated and renamed to @briebug/jest-schematic. All future development will take place at https://github.com/briebug/jest-schematic

Jest Angular Schematic

npm (scoped)

Add Jest to an Angular 6 project

Usage šŸš€

Install globally

npm install -g @briebug/jest

Then in an Angular CLI project run

ng g @briebug/jest:jest

This schematic will:

  • install Jest, it's dependencies, and scripts
  • add necessary files for Jest to work with Angular
  • remove unnecessary Karma files and configuration

ng-add-jest

Optionally run as one command in an Angular CLI app directory. Note this will add the schematic as a dependency to your project.

ng add @briebug/jest

Development šŸ› 

Getting started

npm install && npm run link

Test schematic changes against this repositories Angular CLI sandbox

When running locally, schematic changes will be applied to the test app in the ./sandbox directory. The sandbox is a bare CLI app and serves no other purpose than for testing schematics changes.

Compile the typescript in watch mode in one shell:

npm run build

Run the following in another shell every time a schematic change is made:

npm run clean:launch

clean:launch will reset the sandbox to is current version controlled state, removing un-tracked files, and run the schematic against the sandbox. This will be your main development command.

⚠ Be careful not to check in changes to the sandbox directory unless necessary. ⚠

Test schematics against a local project

  • run npm run build to compile the schematic in watch mode
  • open another shell, cd into the local repo you want to run the schematic against, and run npm link ../PATH_TO_THIS_PROJECT
    • this will symlink the projects so that the Jest schematic command runs from you're local filesystem
  • in the local repo you want to run the schematic against, run ng g @briebug/jest:jest

Dev tips

For faster developing, find and comment out the following line to avoid npm installing dependencies

context.addTask(new NodePackageInstallTask());

Reset sandbox to its version controlled state

This will reset the sandbox folder to its HEAD commit and remove un-tracked files.

npm run clean

Compile the schematics

Compile the typescript files in watch mode

npm run build

Compile the typescript files once

npm run build:once

Testing

Test local sandbox for regressions

Run a series of standard tests to ensure the ./sandbox continues to function normally

npm run test:sandbox

Getting Started With Schematics

This repository is a basic Schematic implementation that serves as a starting point to create and publish Schematics to NPM.

Schematic Testing

To test locally, install @angular-devkit/schematics globally and use the schematics command line tool. That tool acts the same as the generate command of the Angular CLI, but also has a debug mode.

Check the documentation with

schematics --help

Unit Testing

npm run test will run the unit tests, using Jasmine as a runner and test framework.

Publishing

Publishing is handled by np. Ensure you have push access to this repo and are a @breibug NPM contributor. Several options are available for releases such as npm run release --no-publish.

Once all features are merged into master:

  1. on your machine, checkout master
  2. pull latest
  3. npm run release
  4. select the next appropriate version given the changes being added
  5. copy the Commits: displayed in your shell
  6. release-commits
  7. edit the new release tag, and paste in the change notes and supply a title if appropriate
  8. edit-github-release

Documentation

Common solutions

node-package

If you receive the following error and are on Angular CLI 1.X, trying moving to "@angular/cli": "1.7" or higher.

Error: Unregistered task "node-package" in schematic ...
1.3.1

7 years ago

1.3.0

7 years ago

1.2.0

7 years ago

1.1.3

7 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.1

7 years ago