fix: "Keine Konten" nennt jetzt die Ursache
Drei verschiedene Faelle sahen alle gleich aus: Die Bank schickte nichts, sie schickte Eintraege ohne Kennung (die still verworfen wurden), oder alle Konten waren schon bekannt – Letzteres meldete faelschlich "0 Konten", obwohl alles in Ordnung war. Die Antwort unterscheidet jetzt uebermittelt / neu / bekannt / ohne_kennung. Die Rueckkehr-Seite zeigt bei null nutzbaren Konten den passenden Hinweis: Im eingeschraenkten Betrieb gibt eine Bank nur heraus, was zuvor im Control Panel unter "Activate by linking accounts" verknuepft wurde. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -480,3 +480,42 @@ def test_genauer_name_schlaegt_teiltreffer(admin, monkeypatch):
|
||||
monkeypatch.setattr(bank_api.BankClient, "_anfrage", _anfrage)
|
||||
namen = [b["name"] for b in admin.get("/api/bank/banks?search=revolut").json()["treffer"]]
|
||||
assert namen == ["Revolut", "Revolut Bank UAB", "Banca Revoluta"]
|
||||
|
||||
|
||||
def test_bereits_bekanntes_konto_zaehlt_nicht_als_null(admin, fake_bank):
|
||||
"""„0 Konten" darf nicht heissen, dass alles schon bekannt war.
|
||||
|
||||
Beim erneuten Verbinden derselben Bank blieb die Zaehlung auf null stehen,
|
||||
obwohl die Konten da waren – das liest sich wie ein Fehlschlag.
|
||||
"""
|
||||
_app(admin)
|
||||
konten = [{"uid": f"acc-{secrets.token_hex(4)}", "name": "Girokonto",
|
||||
"currency": "EUR", "account_id": {"iban": "DE02120300000000202051"}}]
|
||||
fake_bank(konten=konten)
|
||||
|
||||
def verbinde():
|
||||
state = admin.post("/api/bank/connect",
|
||||
json={"aspsp_name": "N26", "country": "DE"}).json()["state"]
|
||||
return admin.post(f"/api/bank/callback?state={state}&code=guter-code").json()
|
||||
|
||||
erst = verbinde()
|
||||
assert erst["neu"] == 1 and erst["konten"] == 1
|
||||
|
||||
zweit = verbinde()
|
||||
assert zweit["neu"] == 0
|
||||
assert zweit["bekannt"] == 1
|
||||
assert zweit["konten"] == 1, "Bekannte Konten sind trotzdem nutzbar"
|
||||
|
||||
|
||||
def test_konten_ohne_kennung_werden_gemeldet_statt_verworfen(admin, fake_bank):
|
||||
"""Ohne diese Zahl sieht „nichts übermittelt" genauso aus wie „alles
|
||||
verworfen" – und man sucht den Fehler bei der falschen Seite."""
|
||||
_app(admin)
|
||||
fake_bank(konten=[{"name": "Ohne Kennung", "currency": "EUR"}])
|
||||
state = admin.post("/api/bank/connect",
|
||||
json={"aspsp_name": "N26", "country": "DE"}).json()["state"]
|
||||
antwort = admin.post(f"/api/bank/callback?state={state}&code=guter-code").json()
|
||||
|
||||
assert antwort["uebermittelt"] == 1
|
||||
assert antwort["ohne_kennung"] == 1
|
||||
assert antwort["konten"] == 0
|
||||
|
||||
Reference in New Issue
Block a user