Impossibile eliminare l'input di ricerca dei segnalibri

Quando compiliamo l’input di ricerca dei segnalibri e inviamo la richiesta, non possiamo eliminare il contenuto dell’input.

Passaggi:

  1. Compila l’input di ricerca dei segnalibri
  2. Esegui la ricerca
  3. Prova a eliminare il contenuto dell’input premendo backspace
  4. Quando raggiungi la prima lettera, il contenuto dell’input viene reimpostato al valore della query corrente

Video:

3 Mi Piace

Posso riprodurlo anch’io. Bella presa! :fishing_pole:

2 Mi Piace

Wow, è piuttosto strano. Ho aggiunto un tag di priorità a questo, qualcuno lo esaminerà nelle prossime 4 settimane, ma se qualcuno si sentisse di inviare una PR nel frattempo, è il benvenuto.

2 Mi Piace

Ho dato un’occhiata; il problema è qui:

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

Ecco cosa succede.

Quando rimuovi l’ultimo carattere, viene chiamato get. A questo punto, _searchTerm è vuoto.
Tuttavia, this._searchTerm || this.q tratterà la stringa vuota come falsy e verrà visualizzato il valore di q.

Una soluzione rapida potrebbe essere controllare in questo modo:

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

Nota: il valore iniziale di _searchTerm è undefined.
Nota: a causa di computed("q"), il problema non si verifica quando selezioni/elimini (probabilmente perché il timing è troppo stretto per invalidare la cache?)


Volevo fare un PR, ma...

i test principali (senza modifiche) falliscono per qualche motivo.
Sto usando bin/rspec spec/system/user_activity_bookmarks_spec.rb.
Il log dice che la ricerca non è presente o i segnalibri non vengono creati.
Mi sfugge qualcosa?

Log

(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 Mi Piace

Dovrai eseguire bin/ember-cli in background o eseguire bin/ember-cli --build prima che le tue modifiche in JS siano disponibili per il processo di test di sistema.

2 Mi Piace

(questo dovrebbe probabilmente essere spostato in un argomento dev).

Alan, ho bin/ember-cli in esecuzione (ho anche provato bin/ember-cli --build).

Sto facendo qualcosa di sbagliato? :thinking:

1 Mi Piace

Puoi per favore caricare le tue modifiche su un branch su GitHub? Posso aiutarti a dare un’occhiata per vedere cosa potrebbe esserci di sbagliato.

2 Mi Piace

Ho creato la PR:

Il mio problema è che questi test predefiniti falliscono, anche senza modifiche locali.
Nello specifico, per i segnalibri fabbricati, sembrano non essere disponibili. Sembra che qualcosa non venga caricato/scritto correttamente.

Nella PR, ho aggiunto un piccolo test che non si basa su un segnalibro fabbricato, quindi funziona localmente.

3 Mi Piace

5 post sono stati spostati in un nuovo argomento: Problemi nell’esecuzione dei test sul mio sistema WSL2

La correzione è stata unita e il bug è stato risolto, grazie! :rocket:

1 Mi Piace