From 0bc4ff8d8d54513d80757ced86386035317e8626 Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 17 Oct 2025 11:36:38 +0200 Subject: [PATCH] Http Plugin: test caching (#24504) --- plugin/http_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/plugin/http_test.go b/plugin/http_test.go index 0c33409b1..a230980d3 100644 --- a/plugin/http_test.go +++ b/plugin/http_test.go @@ -4,6 +4,7 @@ import ( "net/http" "net/http/httptest" "testing" + "time" "github.com/evcc-io/evcc/util" "github.com/samber/lo" @@ -13,12 +14,14 @@ import ( type httpHandler struct { val string req *http.Request + cnt int } func (h *httpHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { h.req = req h.val = lo.RandomString(16, lo.LettersCharset) _, _ = w.Write([]byte(h.val)) + h.cnt++ } func TestHttp(t *testing.T) { @@ -53,6 +56,22 @@ func (suite *httpTestSuite) TestGet() { suite.Require().Equal(suite.h.val, res) } +func (suite *httpTestSuite) TestCacheGet() { + uri := suite.srv.URL + "/foo/bar?baz=1" + p := NewHTTP(util.NewLogger("foo"), http.MethodGet, uri, false, time.Minute) + + g, err := p.StringGetter() + suite.Require().NoError(err) + + for range 3 { + res, err := g() + suite.Require().NoError(err) + suite.Require().Equal("/foo/bar?baz=1", suite.h.req.URL.String()) + suite.Require().Equal(suite.h.val, res) + suite.Require().Equal(1, suite.h.cnt) + } +} + func (suite *httpTestSuite) TestSetQuery() { uri := suite.srv.URL + "/foo/bar?baz={{.baz}}" p := NewHTTP(util.NewLogger("foo"), http.MethodGet, uri, false, 0)