لا يمكن مسح حقل بحث المرجع

لقد ألقيت نظرة؛ المشكلة هنا:

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

إليك ما يحدث.

عندما تزيل الحرف الأخير، يتم استدعاء get. في هذه النقطة، _searchTerm فارغ.
ومع ذلك، فإن this._searchTerm || this.q سيعامل السلسلة الفارغة على أنها خاطئة، ويتم عرض قيمة q.

قد يكون الإصلاح السريع هو التحقق بهذه الطريقة:

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

ملاحظة: القيمة الأولية لـ _searchTerm هي undefined.
ملاحظة: بسبب computed("q")، لا تحدث المشكلة عند التحديد/الحذف (ربما لأن التوقيت ضيق جدًا لإبطال ذاكرة التخزين المؤقت؟)


أردت تقديم طلب سحب، ولكن..

الاختبارات الأساسية (بدون تعديل) تفشل لسبب ما.
أنا أستخدم bin/rspec spec/system/user_activity_bookmarks_spec.rb.
يقول السجل أن البحث غير موجود أو لم يتم إنشاء الإشارات المرجعية.
هل فاتني شيء؟

السجلات

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

عشوائية بالبذرة 38172
OID غير معروف 931304: فشل في التعرف على نوع ‘embeddings’. سيتم التعامل معه كسلسلة.
FFF

الإخفاقات:

  1. إشارات مرجعية لنشاط المستخدم يمكنها مسح الاستعلام
    فشل/خطأ: super

    Capybara::ElementNotFound:
    غير قادر على العثور على الحقل “bookmark-search” غير المعطل

    ~~~~~ نهاية سجلات 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. إشارات مرجعية لنشاط المستخدم يمكنها تصفية قائمة الإشارات المرجعية
    فشل/خطأ: super

    Capybara::ElementNotFound:
    غير قادر على العثور على الحقل “bookmark-search” غير المعطل

    ~~~~~ نهاية سجلات 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. إشارات مرجعية لنشاط المستخدم يمكنها تصفية قائمة الإشارات المرجعية من عنوان URL
    فشل/خطأ: expect(user_activity_bookmarks).to have_topic(bookmark_1.bookmarkable.topic)
    متوقع #<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>) أن يكون صحيحًا، حصل على خطأ

    ~~~~~ نهاية سجلات JS ~~~~
    
    # ./spec/system/user_activity_bookmarks_spec.rb:40:in `block (2 levels) in <main>'
    
    

انتهى في 21.7 ثانية (استغرقت الملفات 3.8 ثانية للتحميل)
3 أمثلة، 3 إخفاقات

الأمثلة الفاشلة:

rspec ./spec/system/user_activity_bookmarks_spec.rb:50 # إشارات مرجعية لنشاط المستخدم يمكنها مسح الاستعلام
rspec ./spec/system/user_activity_bookmarks_spec.rb:43 # إشارات مرجعية لنشاط المستخدم يمكنها تصفية قائمة الإشارات المرجعية
rspec ./spec/system/user_activity_bookmarks_spec.rb:36 # إشارات مرجعية لنشاط المستخدم يمكنها تصفية قائمة الإشارات المرجعية من عنوان URL

4 إعجابات