aboutsummaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorJulien Dessaux2021-05-04 15:50:49 +0200
committerJulien Dessaux2021-05-04 15:50:49 +0200
commitbb5b7dd3f5490c97e23c392a240face4f911e190 (patch)
treebff4c78d4b7ec758fb0cd2b3901cbb893c343e8a /internal
parentCleaned the navitia - webui calls (diff)
downloadtrains-bb5b7dd3f5490c97e23c392a240face4f911e190.tar.gz
trains-bb5b7dd3f5490c97e23c392a240face4f911e190.tar.bz2
trains-bb5b7dd3f5490c97e23c392a240face4f911e190.zip
Reworked the navitia_api_client to be mockable
Diffstat (limited to 'internal')
-rw-r--r--internal/webui/root_test.go49
-rw-r--r--internal/webui/utils.go2
2 files changed, 33 insertions, 18 deletions
diff --git a/internal/webui/root_test.go b/internal/webui/root_test.go
index 8faee77..cd2da0f 100644
--- a/internal/webui/root_test.go
+++ b/internal/webui/root_test.go
@@ -4,11 +4,21 @@ import (
"net/http"
"testing"
+ "git.adyxax.org/adyxax/trains/pkg/config"
"git.adyxax.org/adyxax/trains/pkg/database"
"git.adyxax.org/adyxax/trains/pkg/model"
"github.com/stretchr/testify/require"
)
+type NavitiaMockClient struct {
+ departures []model.Departure
+ err error
+}
+
+func (c *NavitiaMockClient) GetDepartures(trainStop string) (departures []model.Departure, err error) {
+ return c.departures, c.err
+}
+
func TestRootHandler(t *testing.T) {
// test environment setup
dbEnv, err := database.InitDB("sqlite3", "file::memory:?_foreign_keys=on")
@@ -21,12 +31,19 @@ func TestRootHandler(t *testing.T) {
require.Nil(t, err)
token1, err := dbEnv.CreateSession(user1)
require.Nil(t, err)
- e := &env{
+ e := env{
dbEnv: dbEnv,
- // TODO mock navitia
+ conf: &config.Config{TrainStop: "test"},
}
+ departures1 := []model.Departure{
+ model.Departure{
+ Direction: "test direction",
+ Arrival: "20210503T150405",
+ },
+ }
+ e.navitia = &NavitiaMockClient{departures: departures1, err: nil}
// test GET requests
- runHttpTest(t, e, rootHandler, &httpTestCase{
+ runHttpTest(t, &e, rootHandler, &httpTestCase{
name: "a simple get when not logged in should redirect to the login page",
input: httpTestInput{
method: http.MethodGet,
@@ -37,18 +54,16 @@ func TestRootHandler(t *testing.T) {
location: "/login",
},
})
- // TODO mock navitia
- _ = token1
- //runHttpTest(t, e, rootHandler, &httpTestCase{
- // name: "a simple get when logged in should display the departure times",
- // input: httpTestInput{
- // method: http.MethodGet,
- // path: "/",
- // cookie: &http.Cookie{Name: sessionCookieName, Value: *token1},
- // },
- // expect: httpTestExpect{
- // code: http.StatusOK,
- // bodyString: "Horaires des prochains trains",
- // },
- //})
+ runHttpTest(t, &e, rootHandler, &httpTestCase{
+ name: "a simple get when logged in should display the departure times",
+ input: httpTestInput{
+ method: http.MethodGet,
+ path: "/",
+ cookie: &http.Cookie{Name: sessionCookieName, Value: *token1},
+ },
+ expect: httpTestExpect{
+ code: http.StatusOK,
+ bodyString: "Horaires des prochains trains",
+ },
+ })
}
diff --git a/internal/webui/utils.go b/internal/webui/utils.go
index 7152401..be8baf3 100644
--- a/internal/webui/utils.go
+++ b/internal/webui/utils.go
@@ -20,7 +20,7 @@ var staticFS embed.FS
type env struct {
conf *config.Config
dbEnv *database.DBEnv
- navitia *navitia_api_client.Client
+ navitia navitia_api_client.Client
}
type handlerError interface {