Refactor the async user refreshing to use Oban

Previous implementation could cause duplicate simultaneous profile fetches which is not polite.
This commit is contained in:
Mark Felder 2024-06-17 10:08:54 -04:00
commit 9c67637255
5 changed files with 24 additions and 10 deletions

View file

@ -953,8 +953,12 @@ defmodule Pleroma.UserTest do
{:ok, user} = User.get_or_fetch_by_ap_id("http://mastodon.example.org/users/admin")
# User was updated async, fetch from cache now
updated_user = User.get_cached_by_ap_id(user.ap_id)
# Oban job was generated to refresh the stale user
assert_enqueued(worker: "Pleroma.Workers.UserRefreshWorker", args: %{"ap_id" => user.ap_id})
# Run job to refresh the user; just capture its output instead of fetching it again
assert {:ok, updated_user} =
perform_job(Pleroma.Workers.UserRefreshWorker, %{"ap_id" => user.ap_id})
assert updated_user.inbox