From 5907450d569c997809674a2abeec97ddf0afe4aa Mon Sep 17 00:00:00 2001 From: mihna123 Date: Fri, 4 Sep 2026 01:13:17 +0200 Subject: config: add config package and wire it into server and handlers Replace the hardcoded server.Config with an ini-backed config package that reads /etc/openstore/openstore.conf then the user's config file, so user settings override system ones and both override the built-in defaults. Missing files are ignored rather than fatal. Move route registration into a handlers package that owns the templates and builds a Page view model, which removes the server -> handlers import cycle along with the setter-based context injection. --- internal/server/server_test.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'internal/server/server_test.go') diff --git a/internal/server/server_test.go b/internal/server/server_test.go index 7e6a748..aea434f 100644 --- a/internal/server/server_test.go +++ b/internal/server/server_test.go @@ -7,6 +7,8 @@ import ( "os" "strings" "testing" + + "codeberg.org/mihna123/openstore/internal/config" ) func TestMain(m *testing.M) { @@ -14,9 +16,23 @@ func TestMain(m *testing.M) { os.Exit(m.Run()) } +func newTestConfig(t *testing.T) *config.Config { + t.Helper() + return &config.Config{ + Serve: config.Serve{ + Addr: ":3000", + }, + Instance: config.Instance{ + Name: "TestStore", + ContactEmail: "test@email.com", + BaseURL: "https://example.com", + }, + } +} + func newTestServer(t *testing.T) *Server { t.Helper() - return New(&Config{Name: "test"}) + return New(newTestConfig(t)) } func TestRoutes(t *testing.T) { @@ -47,7 +63,9 @@ func TestRoutes(t *testing.T) { } func TestIndexRendersTemplate(t *testing.T) { - s := New(&Config{Name: "testname123"}) + cfg := newTestConfig(t) + cfg.Instance.Name = "testname123" + s := New(cfg) rec := httptest.NewRecorder() s.mux.ServeHTTP(rec, httptest.NewRequest(http.MethodGet, "/", nil)) -- cgit v1.3.1