No se puede borrar la entrada de búsqueda de marcadores

Heché un vistazo; el problema está aquí:

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

Esto es lo que sucede.

Cuando eliminas el último carácter, se llama a get. En este punto, _searchTerm está vacío.
Sin embargo, this._searchTerm || this.q tratará la cadena vacía como falsa, y se mostrará el valor de q.

Una solución rápida podría ser comprobar de esta manera:

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

Nota: el valor inicial de _searchTerm es undefined.
Nota: debido a computed("q"), el problema no ocurre cuando seleccionas/eliminas (¿probablemente porque el tiempo es demasiado ajustado para invalidar la caché?)


Quería hacer un PR, pero...

Las pruebas principales (sin modificación) fallan por alguna razón.
Estoy usando bin/rspec spec/system/user_activity_bookmarks_spec.rb.
El registro dice que la búsqueda no está presente o que los marcadores no se crean.
¿Me falta algo?

Registros

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

Aleatorizado con semilla 38172
OID desconocido 931304: no se pudo reconocer el tipo de ‘embeddings’. Se tratará como String.
FFF

Fallos:

  1. Los marcadores de actividad del usuario pueden borrar la consulta
    Fallo/Error: super

    Capybara::ElementNotFound:
    No se pudo encontrar el campo “bookmark-search” que no esté deshabilitado

    ~~~~~ FIN DE REGISTROS DE JS ~~~~
    
    # ./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. Los marcadores de actividad del usuario pueden filtrar la lista de marcadores
    Fallo/Error: super

    Capybara::ElementNotFound:
    No se pudo encontrar el campo “bookmark-search” que no esté deshabilitado

    ~~~~~ FIN DE REGISTROS DE JS ~~~~
    
    # ./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. Los marcadores de actividad del usuario pueden filtrar la lista de marcadores desde la URL
    Fallo/Error: expect(user_activity_bookmarks).to have_topic(bookmark_1.bookmarkable.topic)
    se esperaba que #<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>) fuera verdadero, pero se obtuvo falso

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

Finalizado en 21.7 segundos (los archivos tardaron 3.8 segundos en cargarse)
3 ejemplos, 3 fallos

Ejemplos fallidos:

rspec ./spec/system/user_activity_bookmarks_spec.rb:50 # Los marcadores de actividad del usuario pueden borrar la consulta
rspec ./spec/system/user_activity_bookmarks_spec.rb:43 # Los marcadores de actividad del usuario pueden filtrar la lista de marcadores
rspec ./spec/system/user_activity_bookmarks_spec.rb:36 # Los marcadores de actividad del usuario pueden filtrar la lista de marcadores desde la URL

4 Me gusta