Schublade in der HoneyBar: Kacheln trugen das Polster der Listenpunkte
.menu a ist spezifischer als .d-app — die Kacheln bekamen dadurch padding 6px 8px und text-align left statt ihrer eigenen Werte. Das faellt in der HoneyBar auf, nicht auf dem Schreibtisch: dort steht die Schublade in .startmenu und wird spezifisch genug angesprochen. Reihenfolge half nicht, nur Spezifitaet. Dazu ein Waechter: Ein Backtick in einem Kommentar von honeybar.js beendet die Vorlagenzeichenkette mitten im CSS und zerlegt die Datei — zweimal passiert, jetzt bricht der Test.
This commit is contained in:
1 parent
c070f301bb
commit
b46b699576
2 files changed
+62
-12
No files matched your search
@@ -4,6 +4,8 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"honeyos/internal/store"
|
||||
@@ -43,3 +45,43 @@ func TestMitOrtKommtDasWetter(t *testing.T) {
|
||||
t.Fatalf("falsches Wetter: %+v", w)
|
||||
}
|
||||
}
|
||||
|
||||
// Die HoneyBar bringt ihr CSS und ihr Markup in Vorlagenzeichenketten mit.
|
||||
// Ein Backtick in einem Kommentar beendet die Zeichenkette mittendrin — die
|
||||
// Datei ist dann kaputt, und zwar nur in der HoneyBar, nicht auf dem
|
||||
// Schreibtisch. Genau das ist zweimal passiert; deshalb dieser Wächter.
|
||||
func TestHoneyBarOhneBacktickInKommentaren(t *testing.T) {
|
||||
b, err := os.ReadFile("web/honeybar/honeybar.js")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
src := string(b)
|
||||
|
||||
imBlock := false
|
||||
for nr, zeile := range strings.Split(src, "\n") {
|
||||
rest := zeile
|
||||
for {
|
||||
if imBlock {
|
||||
ende := strings.Index(rest, "*/")
|
||||
if ende < 0 {
|
||||
if strings.Contains(rest, "`") {
|
||||
t.Errorf("Zeile %d: Backtick in einem Kommentar — das beendet die Vorlagenzeichenkette:\n %s", nr+1, strings.TrimSpace(zeile))
|
||||
}
|
||||
break
|
||||
}
|
||||
if strings.Contains(rest[:ende], "`") {
|
||||
t.Errorf("Zeile %d: Backtick in einem Kommentar — das beendet die Vorlagenzeichenkette:\n %s", nr+1, strings.TrimSpace(zeile))
|
||||
}
|
||||
rest = rest[ende+2:]
|
||||
imBlock = false
|
||||
continue
|
||||
}
|
||||
start := strings.Index(rest, "/*")
|
||||
if start < 0 {
|
||||
break
|
||||
}
|
||||
rest = rest[start+2:]
|
||||
imBlock = true
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user