datcal / erasys-task

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Erasys Task

Steps

Set up

First, build docker container and run:

docker-compose build && docker-compose up -d

Configuring Database

You can set database configurations, use the following values in .env which lives in the root directory.

DATABASE_CLIENT=mysql
DATABASE_HOST=erasys-db
DATABASE_USER=testDbUser
DATABASE_PASSWORD=PRYjQRlcSIBMORtp
DATABASE_NAME=testDb
DATABASE_PORT=3306

Running The Test

docker exec -it erasys-api npm run test:e2e

Validate Passwords

Check password via password validation api and update valid field on database and print all passwords to console output.

docker exec -it erasys-api npm run cp

Check Compromised Passwords

Check passwords via erasys compromised api and print all compromised password to console output.

docker exec -it erasys-api npm run cpc

Validate and Check Compromised Passwords

Check passwords via password validation api and erasys compromised api and update valid field on database and print all passwords to console output.

docker exec -it erasys-api npm run fcp

You can use Postman collection for testing.

Password Validation API

Route HTTP Body Header Description
/passwords POST {'password':'csds2'} Validation for password.

Password Compromised API

Route HTTP Body Header Description
/compromised GET {'password':'%23nxzr1Bp'} Compromised password control.

Personal Notes

Normally, I would develop the CLI and API side as two separate projects, but for convenience, I developed it this way.

About


Languages

Language:TypeScript 93.3%Language:JavaScript 3.1%Language:Shell 2.1%Language:Dockerfile 1.6%