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

Cuando rellenamos el campo de búsqueda de marcadores y enviamos la solicitud, no podemos eliminar el contenido del campo.

Pasos:

  1. Rellena el campo de búsqueda de marcadores
  2. Ejecuta la búsqueda
  3. Intenta eliminar el contenido del campo pulsando la tecla de retroceso
  4. Al llegar a la primera letra, el contenido del campo se restablece al valor de la consulta actual

Vídeo:

3 Me gusta

Yo también puedo reproducir esto. ¡Buena observación! :fishing_pole:

2 Me gusta

Vaya, eso es extraño. He añadido una etiqueta de prioridad a esto, alguien lo revisará en las próximas 4 semanas, pero si alguien se anima a enviar una PR mientras tanto, es bienvenido.

2 Me gusta

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

Necesitarás ejecutar bin/ember-cli en segundo plano o ejecutar bin/ember-cli --build antes de que tus cambios en el entorno JS estén disponibles para el proceso de prueba del sistema.

2 Me gusta

(probablemente esto debería moverse a un tema de desarrollo).

Alan, tengo bin/ember-cli en ejecución (también probé bin/ember-cli --build).

¿Estoy haciendo algo mal? :thinking:

1 me gusta

¿Puedes subir tus cambios a una rama en GitHub? Puedo ayudarte a ver qué podría estar mal.

2 Me gusta

Hice el PR:

Mi problema es que estas pruebas predeterminadas fallan, incluso sin cambios locales.
Específicamente, para los marcadores fabricados, parece que no están disponibles. Suena como si algo no se estuviera cargando/escribiendo correctamente.

En el PR, agregué una pequeña prueba que no depende de un marcador fabricado, por lo que funciona en mi entorno local.

3 Me gusta

5 publicaciones se dividieron en un nuevo tema: Tengo problemas para ejecutar pruebas en mi sistema WSL2

La corrección se ha fusionado y el error está solucionado, ¡gracias! :rocket:

1 me gusta