Harjoitus 1: jest-yksikkötestejä

Tee jest-kansion alle alikansio harj1. Tee ensimmäiset harjoitukset ja testitiedostot samaan kansioon.

1. Täysi-ikäisyys

Tee funktio, joka testaa onko henkilö 18-vuotias. Funktio saa syötteenä iän ja palauttaa true / false. Laadi yksikkötestit erilaisille syötteille sekä testaa toipuminen virheellisestä syötteestä. Heitä poikkeus puuttuvasta tai virheellisestä syötteestä.

Jos haluat ajaa vain yhden tiedoston testit:

npm run test isAdult

2. Osamäärä

Laadi funktio joka palauttaa kahden luvun osamäärän. Funktio saa syötteenä kaksi lukua ja palauttaa liukuluvun. Funktion tulee heittää virhe jos yritetään jakaa nollalla tai annetaan virheellinen syöte.

3. Nysse

Laadi funktio joka palauttaa bussilipun hinnan. Funktio saa syötteenä iän ja palauttaa liukuluvun.

  • Seniorit (65+), hinta 1.55 €
  • Aikuinen (25-64), hinta 2.80 €
  • Nuoret (17-24), hinta 2.10 €
  • Lapset (7-16), hinta 1.40 €
  • Lapset (0-6), hinta 0 €

4. Käyttäjätunnus

Tee funktio joka luo käyttäjätunnuksen annettujen tietojen perusteella. Funktio saa syötteenä etunimen, sukunimen ja vuoden. Funktio palauttaa käyttäjätunnuksen jossa on otettu etunimen ensimmäinen merkki, sukunimi vuoden kaksi viimeistä numeroa.

Esimerkki: Matti Mainio, 2025 > mmainio25

5. Alennus

Laadi funktio joka palauttaa ostosten alv-verollisen hinnan. Funktio saa syötteenä tuotteen hinnan ennen arvonlisäveroa, kappalemäärän sekä alv-prosentin.

Mikäli ostos ylittää tietyt raja-arvot lasketaan alennus seuraavien sääntöjen mukaisesti:

  • Arvonlisäverollinen yhteishinta yli 100 €, alennus 2%
  • Arvonlisäverollinen yhteishinta yli 500 €, alennus 5%

Testauksessa kannattaa käyttää toBeCloseTo-metodia.