Konfiguracja JEST w aplikacji Typescript

Niedawno opublikowałem post, w którym pokazałem, że biblioteka JEST nadaje się do testowania aplikacji node.js. Przedstawiałem wtedy podstawowe tworzenie testów i to w jak szybki sposób można tę bibliotekę skonfigurować aby uruchomić pierwszy test.

Dzisiaj chciałbym pokazać jak tworzyć testy z biblioteką JEST dla aplikacji powstającej w Typescript. Nie jest to skomplikowane, jednak wymaga już więcej pakietów NPM do zainstalowania zanim uruchomimy pierwszy test.

Instalacja i konfiguracja

W tym poście skupię się na najszybszym zainstalowaniu potrzebnych pakietów bez zagłębiania się w konfigurację “wodotrysków”. W poprzednim poście o bibliotece JEST zostały poruszone już podstawy, jeśli jesteś zainteresowany to zapraszam do zapoznania się z nim.

Instalacja JEST

Na początek potrzebujemy zainstalować bibliotekę JEST i dodatki do obsługi Typescript.

$ npm install --save-dev jest ts-jest @types/jest

Teraz tworzymy plik konfiguracyjny dla JEST o nazwie jest.config.js.

module.exports = {
   "roots": [
       "/lib"
   ],
   "transform": {
       "^.+\\.ts?$": "ts-jest"
   },
};

Tam gdzie występuje tablica ‘roots’ należy wskazać miejsca gdzie umiejscowione są pliki z testami.
W pliku package.json należy jeszcze zaaktualizować skrypt test aby korzystał z zainstalowanego test runnera.

"test": "jest",

Instalacja interpretera

Aby testy i kod aplikacji były poprawnie interpretowane musimy wykorzystać popularnego narzędzia do kompilacji kodu – Babel. Potrzebujemy doinstalować poniższe paczki:

$ npm install --save-dev @babel/core @babel/preset-env babel-jest

Następnie trzeba dodać jeszcze jeden plik konfiguracyjny o nazwie babel.config.js

module.exports = {
   presets: [
       ['@babel/preset-env', { targets: { node: 'current' } }],
       +    '@babel/preset-typescript',
   ],
};

Uruchomienie

W celu udowodnienia, że powyższa konfiguracja jest wystarczająca, wezmę na tapet najprostszy z przykładów jaki można przedstawić.

export default function sum(a: number, b:  number): number {
   return a + b;
}

Następnie tworzymy plik z testami, który zweryfikuje, czy dodawanie działa poprawnie. Przy okazji chciałbym zwrócić uwagę na to aby pliki z testami posiadały rozszerzenie .ts, bo w innym wypadku mogą pojawić się problemy.

import sum from "./calculate";

describe('calculate', () => {
   test('should return correct value', () => {
       // when
       const result = sum(5, 4);

       // then
       expect(result).toBe(9);
   });
});

Teraz pozostaje tylko uruchomić testy wklepując w konsolę poniższą komendę

$ npm test

Działa? U mnie działa 😉

Podsumowanie

W tym krótkim poście przedstawiłem jak szybko skonfigurować aplikację, która powstaje w Typescript tak aby dało się tworzyć testy z wykorzystaniem biblioteki JEST. Mam nadzieję, że taka krótka i zwięzła forma postów odpowiada, a w przypadku problemów zachęcam do kontaktu!

Programista skupiony głównie wokół technologii webowych, ale nie przywiązujący się do konkretnych języków i narzędzi. Skoncentrowany na ciągłym rozwoju, zwolennik ruchu Software Crafmanship. Na codzień pracując w DAZN ma okazję rozwijać interesujący projekt do streamingu wydarzeń sportowych. Prywatnie fan sportu, a szczególnie piłki nożnej. Po godzinach próbuje również swoich sił w piwowarstwie domowym.
PODZIEL SIĘ