MyTwitter kolejne etapy

Aplikacja pomału się rozrasta, dodałem websocekt, testy dla js’ów takie jak Protractor, e2e, mocha, karma itp

Websocket

Commits on Jul 4, 2017
Websocket jest to mechanizm, który pozwala na interaktywną akcję między przeglądarką użytkownika a serwerem. Daje to możliwość wysyłania wiadomości do serwera i odbierania odpowiedzi na zdarzenie bez konieczności odpytywania serwera, ale masło maślane 😀 Pokrótce gdy, użytkownik1 dodaje post, użytkownik2 widzi nowy post bez potrzeby przeładowania strony.
W aplikacji zaprogramowałem akcje websocket odpowiedzialne za nasłuchiwanie czy nowy użytkownik wszedł na portal, czy też go opuścił. Oraz aktualizowanie obecnym użytkownikom widoku, aby widzieli nowe wiadomości wrzucone przez innego użytkownika bez potrzeby przeładowania strony.
Żeby uruchomić nasłuchiwanie nowych postów użyłem metody nasłuchiwania z websocket w kodzie odpowiedzialnym za przyjmowanie nowych postów do bazy controllers/api/posts.js.

Testy

Protractor

Protractor to framework do testowania aplikacji opartych o AngularJS, wykonuję on operację tak jakby prze klikał je użytkownik.

Supertest

Ten framework pozwala na testowanie między innymi node.js oraz dostarcza moduły do testowania HTTP.

Morgan

Loger do żądań HTTP dla node.js.

Bower

Bower pozwala zarządzać wszystkimi elementami, jakie posiada strona internetowa np: frameworki, biblioteki, assets, narzędzia.

Karma

Narzędzie do wykonywania kodu JavaScript w przeglądarce. Karma nie jest frameworkiem do testowania. Karma uruchamia protokół HTTP i generuję testowy plik HTML, znany nam już z naszego ulubionego frameworku do testowania. Do karmy są dostępne testowalne pluginy takie jak: Jasmine, Mocha, QUnit i wiele innych.

Do aplikacji do programowałem kilka małych szczegółów takich jak: możliwość wylogowania się, zapamiętanie zalogowanego użytkownika w sesji. Dodałem jeszcze walidowanie formularza rejestracji, dzięki czemu do aplikacji nie mogą zarejestrować się osoby o takich samych adresach e-mail.

 
Pozdro 🙂
 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*