func TestVoteBox(t *testing.T) { score := c.NewScore(69) server := hm.NewMock(map[string]hm.Responder{ "/v": hm.FuncResponder(func(c *hm.Context) hm.Response { var vote, lastVote int // get values from the query parameters fmt.Sscan(c.Request.URL.Query().Get("vote"), &vote) fmt.Sscan(c.Request.URL.Query().Get("lastvote"), &lastVote) score.UserVote(vote, lastVote) return hm.NewOKResponse(fmt.Sprint(score.Score)) }), }) fntest.NewDummyTestApp("/", server) votebox := &VoteBoxModel{} votebox.VoteUrl = "/v" votebox.Vote = score // Start testing server.Wait(func() { votebox.DoVote(1) }, 1) require.Equal(t, votebox.Vote.Score, 70) server.Wait(func() { votebox.DoVote(-1) }, 1) require.Equal(t, votebox.Vote.Score, 68) server.Wait(func() { votebox.DoVote(-1) }, 1) require.Equal(t, votebox.Vote.Score, 69) }
func startApp(t *testing.T) (myApp *fntest.TestApp) { server := hm.NewMock(map[string]hm.Responder{ "/api/posts": hm.NewJsonResponse(TestDb), "/api/vote/post/3": hm.NewListResponder([]hm.Responder{hm.NewJsonResponse(97), hm.NewJsonResponse(96)}), "/public/*filepath": hm.NewFileResponder("filepath", "../public"), }) myApp = fntest.NewTestApp(rt.Config{}, "/", "../public/index.html", server) err := myApp.Start(App{myApp.Application}) if err != nil { t.Fatal(err) } return }