passit-frontend v0.0.3
Passit Front
passit-frontend is the angular client for Passit.
We use smart and dumb components with ngrx/store. Read about it here
API and crypto interaction are handled by passit-sdk-js.
Development server
This project uses docker compose.
- Install docker and docker-compose
- Run
docker-compose up
The front end is now running on localhost:4200 and the backend docker image is running on localhost:8000
(If using Docker Machine, host may not be localhost)
Live reload should be enabled, if it isn't working try increasing the max_user_watches by running
sudo echo "fs.inotify.max_user_watches=524288" >> /etc/sysctl.conf
sudo sysctl fs.inotify.max_user_watches=524288Run any one off commands like docker-compose run --rm app bash to execute them inside the docker container.
Rebuilding when changing package.json
If you need to run npm install you'll want to instead run docker-compose build and docker-compose rm -v app to remove the old container.
This is because node_modules are kept in a docker volume.
This is not ideal - if you know how to build node_modules into the container itself instead of a volume please let us know.
Running unit tests
Run npm test to execute the unit tests via Karma.
Unit tests run in PhantomJS without a browser. This works because Crypto functions should always be mocked. Crypto related tests should always be part of passit-sdk-js
Running end-to-end tests
Run npm run e2e to execute the end-to-end tests via Protractor.
Before running the tests make sure you are serving the app via npm start
You can also run them on Saucelabs, which is what happens on Gitlab CI:
npm start
# in new window
env CI=true SAUCE_USERNAME=... SAUCE_ACCESS_KEY=... npm run e2eTo get more help on the angular-cli use ./node_modules/.bin/ng --help or go check out the Angular-CLI README.
To Lint
$ npm run lintTechnologies used
- Angular2 with TypeScript
- NativeScript for mobile
- Webpack
- Testing Jasmine, Karma, and Protractor