Suchleiste für Lesezeichen-Suche lässt sich nicht löschen

Wenn wir das Lesezeichen-Suchfeld ausfüllen und die Anfrage senden, können wir den Inhalt des Feldes nicht löschen.

Schritte:

  1. Füllen Sie das Lesezeichen-Suchfeld aus
  2. Führen Sie die Suche durch
  3. Versuchen Sie, den Inhalt des Feldes durch Drücken der Rücktaste zu löschen
  4. Wenn der erste Buchstabe erreicht ist, wird der Inhalt des Feldes auf den Wert der aktuellen Abfrage zurückgesetzt

Video:

3 „Gefällt mir“

Ich kann das auch reproduzieren. Guter Fang! :fishing_pole:

2 „Gefällt mir“

Das ist ja seltsam, ich habe hier einen Priorität-Tag hinzugefügt, jemand wird sich das in den nächsten 4 Wochen ansehen, aber wenn jemand Lust hat, in der Zwischenzeit einen PR einzureichen, ist er herzlich willkommen.

2 „Gefällt mir“

Ich habe nachgesehen; das Problem liegt hier:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/controllers/user-activity-bookmarks.js#L33

Hier ist, was passiert.

Wenn Sie das letzte Zeichen entfernen, wird get aufgerufen. Zu diesem Zeitpunkt ist _searchTerm leer.
this._searchTerm || this.q behandelt den leeren String jedoch als falsch, und der Wert von q wird stattdessen angezeigt.

Eine schnelle Lösung könnte darin bestehen, dies zu überprüfen:

return this._searchTerm !== undefined ? this._searchTerm : this.q;

Hinweis: Der Anfangswert von _searchTerm ist undefined.
Hinweis: Aufgrund von computed("q") tritt das Problem nicht auf, wenn Sie auswählen/löschen (wahrscheinlich, weil die Zeit zu knapp ist, um den Cache zu invalidieren?)


Ich wollte ein PR machen, aber...

Die Kern-Tests (ohne Modifikation) schlagen aus irgendeinem Grund fehl.
Ich benutze bin/rspec spec/system/user_activity_bookmarks_spec.rb.
Die Protokolle besagen, dass entweder die Suche nicht vorhanden ist oder Lesezeichen nicht erstellt werden.
Fehlt mir etwas?

Logs

(base) arkshine@HOME:~/discourse$ bin/rspec spec/system/user_activity_bookmarks_spec.rb

Randomized with seed 38172
unknown OID 931304: failed to recognize type of ‘embeddings’. It will be treated as String.
FFF

Failures:

  1. User activity bookmarks can clear the query
    Failure/Error: super

    Capybara::ElementNotFound:
    Unable to find field “bookmark-search” that is not disabled

    ~~~~~ END JS LOGS ~~~~
    
    # ./spec/system/page_objects/pages/user_activity_bookmarks.rb:24:in `fill_in_search'
    # ./spec/system/page_objects/pages/user_activity_bookmarks.rb:14:in `search_for'
    # ./spec/system/user_activity_bookmarks_spec.rb:51:in `block (2 levels) in <main>'
    
    
  2. User activity bookmarks can filter the list of bookmarks
    Failure/Error: super

    Capybara::ElementNotFound:
    Unable to find field “bookmark-search” that is not disabled

    ~~~~~ END JS LOGS ~~~~
    
    # ./spec/system/page_objects/pages/user_activity_bookmarks.rb:24:in `fill_in_search'
    # ./spec/system/page_objects/pages/user_activity_bookmarks.rb:14:in `search_for'
    # ./spec/system/user_activity_bookmarks_spec.rb:44:in `block (2 levels) in <main>'
    
    
  3. User activity bookmarks can filter the list of bookmarks from the URL
    Failure/Error: expect(user_activity_bookmarks).to have_topic(bookmark_1.bookmarkable.topic)
    expected #PageObjects::Pages::UserActivityBookmarks:0x00007f51dcb37b00.has_topic?(#<Topic id: 699, title: “This is a test topic 0”, last_posted_at: nil, created_at: "2025-03-19 04:35:…oad_id: nil, slow_mode_seconds: 0, bannered_until: nil, external_id: nil, visibility_reason_id: nil>) to be truthy, got false

    ~~~~~ END JS LOGS ~~~~
    
    # ./spec/system/user_activity_bookmarks_spec.rb:40:in `block (2 levels) in <main>'
    
    

Finished in 21.7 seconds (files took 3.8 seconds to load)
3 examples, 3 failures

Failed examples:
rspec ./spec/system/user_activity_bookmarks_spec.rb:50 # User activity bookmarks can clear the query
rspec ./spec/system/user_activity_bookmarks_spec.rb:43 # User activity bookmarks can filter the list of bookmarks
rspec ./spec/system/user_activity_bookmarks_spec.rb:36 # User activity bookmarks can filter the list of bookmarks from the URL

4 „Gefällt mir“

Sie müssen bin/ember-cli im Hintergrund ausführen oder bin/ember-cli --build ausführen, bevor Ihre Änderungen im JS-Bereich für den Systemtestprozess verfügbar sind.

2 „Gefällt mir“

(Das sollte wahrscheinlich in ein Entwicklerthema verschoben werden).

Alan, ich lasse bin/ember-cli laufen (ich habe auch bin/ember-cli --build versucht).

Mache ich etwas falsch? :thinking:

1 „Gefällt mir“

Können Sie Ihre Änderungen bitte auf einen Branch auf GitHub pushen? Ich kann Ihnen helfen zu sehen, was falsch sein könnte.

2 „Gefällt mir“

Ich habe den PR erstellt:

Mein Problem ist, dass diese Standardtests fehlschlagen, selbst ohne lokale Änderungen.
Speziell für fabrizierte Lesezeichen scheinen diese nicht verfügbar zu sein. Es klingt, als ob etwas nicht richtig geladen/geschrieben wird.

Im PR habe ich einen kleinen Test hinzugefügt, der nicht auf einem fabrizierte Lesezeichen basiert, daher funktioniert er lokal bei mir.

3 „Gefällt mir“

5 Beiträge wurden in ein neues Thema aufgeteilt: Probleme beim Ausführen von Tests unter meinem WSL2-System

Die Korrektur wurde zusammengeführt und der Fehler ist behoben, danke! :rocket:

1 „Gefällt mir“