Repository navigation
fix:dev: doppelte Staedte je Postleitzahl, dazu Abdeckungsmessung - #6
Merged
Merged
Conversation
CityMap#update_existing verglich die neue Stadt gegen den bestehenden Wert
als Ganzes. Ab der zweiten Stadt ist der aber selbst zusammengesetzt
("A;B"), und uniq erkennt eine erneut gemeldete Stadt darin nicht wieder.
In lib/data/DE.yml stand dadurch eine Zeile mit doppeltem Eintrag:
Schoenberg;Rausdorf;Koethel;Koethel;Kasseburg;Hamfelde
Die Ortsliste landet in symdok im Adressfeld, dort war das sichtbar.
Beide Seiten werden jetzt zerlegt, bevor uniq greift. Die betroffene Zeile
in DE.yml ist mitkorrigiert - beim naechsten Converter-Lauf entstuende sie
ohnehin richtig, bis dahin waere sie falsch ausgeliefert worden.
Dazu die Abdeckungsmessung, die dem Gem noch fehlte: simplecov als
Dev-Abhaengigkeit, COVERAGE=1 schaltet sie ein, Schwelle 95.
CityMap war bisher vollstaendig ungetestet - das neue Spec deckt sie ab,
einschliesslich des Falls, der den Fehler ausloest.
Abdeckung 75,60 % -> 100 % (41/41), 20 Beispiele, 0 Fehler.
Der in symdok genutzte Pfad (ZipCodes.identify) war schon vorher zu 100 %
abgedeckt; die Luecke lag ausschliesslich im Datenpflege-Werkzeug.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
SimpleCov startet in diesem Gem nur, wenn COVERAGE gesetzt ist. In der CI war es das nicht - die Untergrenze aus spec_helper.rb lief damit ins Leere, und ein Absturz der Abdeckung waere gruen durchgegangen. Der Test-Schritt setzt die Variable jetzt in ci.yml und, wo vorhanden, in release.yml. Nebenbei aufgeraeumt, was actionlint an denselben Dateien anmerkte: actions/checkout@v3 ist fuer die heutigen Runner zu alt (v7 wie in den uebrigen Gems), und einer Datei fehlte das abschliessende Zeilenende. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Der Fehler
CityMap#update_existingverglich die neue Stadt gegen den bestehenden Wert alsGanzes. Ab der zweiten Stadt ist der aber selbst zusammengesetzt (
"A;B") —uniqerkennt eine erneut gemeldete Stadt darin nicht wieder.
Nachgestellt:
Das steckt in den ausgelieferten Daten. In
lib/data/DE.ymlstand:Die Ortsliste landet in symdok im Adressfeld (
Address::ZipControllerruftZipCodes.identify(zip, like_search: true)), dort war das sichtbar. Von 1437Eintraegen mit mehreren Staedten war einer betroffen.
Der Fix
Beide Seiten werden zerlegt, bevor
uniqgreift. Die betroffene Zeile inDE.ymlistmitkorrigiert — beim naechsten Converter-Lauf entstuende sie ohnehin richtig, bis dahin
waere sie falsch ausgeliefert worden.
Abdeckung
Dem Gem fehlte die Messung ganz. Jetzt
simplecovals Dev-Abhaengigkeit,COVERAGE=1schaltet sie ein, Schwelle 95.
CityMapwar vollstaendig ungetestet — das neue Spec deckt sie ab, einschliesslich desFalls, der den Fehler ausloest. Der in symdok genutzte Pfad (
ZipCodes.identify) warschon vorher zu 100 % abgedeckt; die Luecke lag ausschliesslich im Datenpflege-Werkzeug.
🤖 Generated with Claude Code