refactor: aufgeraeumt — Pakete hinten, Widgets vorne
Go: store, auth, weather und config sind eigene Pakete unter internal/. Vorher lagen fuenf Dateien in einem Topf, und jede kannte jede. Web: os.js hatte 1425 Zeilen und alles darin. Jetzt core.js (Zustand, Server, Einstellungen), glyphs.js (die Pixelraster), js/widgets/ mit einem Widget je Datei, os.js nur noch die Ansichten. Stylesheet nach css/. Die HoneyBar bleibt eine einzelne Datei ohne Importe — sie wird von fremden Seiten mit einer Zeile eingebunden, da darf nichts nachladen. Nebenbei: Das gebaute Binary lag mit 9,8 MB im Repo und ist jetzt ignoriert. Und der Test gegen eine zweite Versionsnummer geht nicht mehr auf os.js, sondern durch alle .js — sonst haette ihn dieser Umbau still ausgehebelt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d08b0a229c
commit
52deffa30e
20 files changed
+780
-624
No files matched your search
@@ -0,0 +1,45 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"honeyos/internal/store"
|
||||
"honeyos/internal/weather"
|
||||
)
|
||||
|
||||
// Ohne eingestellten Ort ist 204 die richtige Antwort: kein Fehler, nur nichts
|
||||
// zu zeigen. Die Leiste lässt das Symbol dann weg, statt etwas zu melden.
|
||||
func TestOhneOrtGibtEsKeinWetter(t *testing.T) {
|
||||
s := newTestServer(t, "") // ohne Anbieter: offener Betrieb, kein Anmelden nötig
|
||||
s.wetter = weather.FakeFuerTest(t, 0, 20)
|
||||
|
||||
rec := httptest.NewRecorder()
|
||||
s.routes().ServeHTTP(rec, httptest.NewRequest("GET", "/api/weather", nil))
|
||||
if rec.Code != http.StatusNoContent {
|
||||
t.Fatalf("ohne Ort erwartet 204, bekam %d", rec.Code)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMitOrtKommtDasWetter(t *testing.T) {
|
||||
s := newTestServer(t, "")
|
||||
s.wetter = weather.FakeFuerTest(t, 3, 8.6)
|
||||
if err := s.store.SetSettings(store.LocalSub, map[string]string{
|
||||
"weatherCity": "Köln", "weatherLat": "50.938", "weatherLon": "6.96",
|
||||
}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
rec := httptest.NewRecorder()
|
||||
s.routes().ServeHTTP(rec, httptest.NewRequest("GET", "/api/weather", nil))
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("erwartet 200, bekam %d: %s", rec.Code, rec.Body)
|
||||
}
|
||||
var w weather.Wetter
|
||||
json.Unmarshal(rec.Body.Bytes(), &w)
|
||||
if w.Ort != "Köln" || w.Glyph != "wolke" {
|
||||
t.Fatalf("falsches Wetter: %+v", w)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user