• Dylan Griffith's avatar
    Fix more N+1 issues when indexing notes in Elasticsearch · f1f55e6e
    Dylan Griffith authored
    Since we already had an N+1 test this required a couple of changes to
    detect these problems:
    
    1. Add `:elastic` to the test setup in order to allow for GitLab to
       finish setting up the Elasticsearch index and ensure that the
       `remove_permissions_data_from_notes_documents` was considered finished.
       Without this we couldn't trigger the logic to load project permissions
       for the notes
       https://gitlab.com/gitlab-org/gitlab/-/blob/02f78e50879aa2e9facafe724a61e20d4640a342/ee/lib/elastic/latest/note_instance_proxy.rb#L33
    2. We also needed to move a `stub_const` into a separate test block so
       it didn't interfere with the N+1 test for notes. Without this we weren't
       actually processing all the notes and the test was a false
       positive.  The `stub_const` here was only necessary for the one test
       that actually tests this limit. It was actually interfering with some
       other N+1 tests where we were adding more than 10 documents. As such
       moving this closer to the relevant test makes more sense. It also
       required updating a few of the other tests to stop referring to the
       `limit` variable. This value was always equal to the number of documents
       in `fake_refs` anyway so it was unnecessary to have this variable.
    f1f55e6e
note_class_proxy.rb 7.51 KB