Skip to content

hunyadijanos5/students-services

Repository files navigation

Syscode Tesztfeladat

Feladat leírása

Első indításhoz a futtani kell az alábbi a parancsot:

docker compose up -d

ezzel elindulnak a szolgáltatások, melyeket 3000-es porton a profile-service 3001-es porton pedig a address-service. Legelső indítás alkalmával az adatbázis elindulása után lefut a liquibase, és létrehozza az adatbázis struktúráját.

Unit tesztek lokálisan futtathatóak a csomagok feltelepítése után.

Mindkét szolgátatás rendelkezik logolással a konténeren belül. Tartalmazza a kérés típusát, végpontját, válaszidőt.

Extraként tartalmaz egy debug opció, amivel a kérések body-ja és adott helyeken az error logok is extrán logolásra kerülnek.

Terheléses teszt

Készült egy script, amivel kellően megkergethető a két szolgáltatás. Fő könyvtárből indítva npm run loadtest.

Load teszthez szükséges natívan telepíteni a K6 csomagot Telepítési útmutató Ubuntu esetén:

sudo apt install k6

Troubleshooting

Lehet, hogy a postgres container volume-ja már létezik és újrahasználja, ezért érdemes mindent eltávolíttatni a docker compose-al olyankor

docker compose down --rmi all --volumes && docker compose up -d --renew-anon-volumes --force-recreate --remove-orphans --always-recreate-deps --build

Teszt lefedettség Profile-service-hez

-----------------|---------|----------|---------|---------|-------------------
All files        |   94.28 |     73.8 |     100 |   95.04 |                   
 src             |     100 |      100 |     100 |     100 |                   
  prisma.ts      |     100 |      100 |     100 |     100 |                   
 src/controllers |      92 |    71.05 |     100 |   92.95 |                   
  profile.ts     |      92 |    71.05 |     100 |   92.95 | 118-123,184       
 src/dtos        |     100 |      100 |     100 |     100 |                   
  profile.dto.ts |     100 |      100 |     100 |     100 |                   
 src/middleware  |     100 |      100 |     100 |     100 |                   
  auth.ts        |     100 |      100 |     100 |     100 |                   
 src/routes      |     100 |      100 |     100 |     100 |                   
  profile.ts     |     100 |      100 |     100 |     100 |                   
-----------------|---------|----------|---------|---------|-------------------

Test Suites: 2 passed, 2 total
Tests:       26 passed, 26 total
Snapshots:   0 total
Time:        4.172 s

Teszt lefedettség Address-service-hez

File             | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                
-----------------|---------|----------|---------|---------|----------------------------------
All files        |   79.01 |       40 |     100 |   81.01 |                                  
 src             |     100 |      100 |     100 |     100 |                                  
  prisma.ts      |     100 |      100 |     100 |     100 |                                  
 src/controllers |   66.66 |    31.81 |     100 |   69.38 |                                  
  address.ts     |   66.66 |    31.81 |     100 |   69.38 | 53,58-60,101-104,110-119,154-156 
 src/dtos        |     100 |      100 |     100 |     100 |                                  
  address.dto.ts |     100 |      100 |     100 |     100 |                                  
 src/middleware  |     100 |      100 |     100 |     100 |                                  
  auth.ts        |     100 |      100 |     100 |     100 |                                  
 src/routes      |     100 |      100 |     100 |     100 |                                  
  address.ts     |     100 |      100 |     100 |     100 |                                  
-----------------|---------|----------|---------|---------|----------------------------------

Test Suites: 2 passed, 2 total
Tests:       19 passed, 19 total
Snapshots:   0 total
Time:        4.513 s

.env fájl példa

DB_HOST=localhost
DEBUG_QUERY_BODY=true
SECURE_TOKEN=NagyonTitkosToken

PROFILE_API_LOCAL_PORT=3000
PROFILE_API_DOCKER_PORT=3000
ADDRESS_API_LOCAL_PORT=3001
ADDRESS_API_DOCKER_PORT=3000

POSTGRES_LOCAL_PORT=5332
POSTGRES_DOCKER_PORT=5432
POSTGRES_DB=profilesAndAdresses
POSTGRES_USER=HunyadiJanos
POSTGRES_PASSWORD=r00tP455w0rd 
POSTGRES_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DB_HOST}:${POSTGRES_LOCAL_PORT}/${POSTGRES_DB}?schema=public

LIQUIBASE_COMMAND_USERNAME=${POSTGRES_USER}
LIQUIBASE_COMMAND_PASSWORD=${POSTGRES_PASSWORD}
LIQUIBASE_COMMAND_URL=jdbc:postgresql://${DB_HOST}:${POSTGRES_DOCKER_PORT}/${POSTGRES_DB}
LIQUIBASE_COMMAND_CHANGELOG_FILE=./changelog/changelog.xml

Fájlstruktúra

/home/hunyi/projects/syscode_students
├── profile-service
│   ├── src
│   │   ├── controllers
│   │   ├── dtos
│   │   ├── middleware
│   │   ├── routes
│   ├── tests
│   └── Dockerfile
├── address-service
│   ├── src
│   │   ├── controllers
│   │   ├── dtos
│   │   ├── middleware
│   │   ├── routes
│   ├── tests
│   └── Dockerfile
├── docker-compose.yml
└── README.md

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published