Merge commit '9ba7c90151463a6e4f7952317253fe8c113e9b0a' into glitch-soc/merge-upstream

Conflicts:
- `app/javascript/material-icons/400-24px/chat.svg`:
  Glitch-soc used this one but not upstream.
  Upstream pulled a presumably more up-to-date version of the file.
  Switched to upstream's version.
- `app/views/layouts/application.html.haml`:
  Upstream removed use of font-awesome.
  I hope we are ready.
- `app/views/layouts/embedded.html.haml`:
  Upstream removed use of font-awesome.
  I hope we are ready.
- `app/views/layouts/error.html.haml`:
  Upstream removed use of font-awesome.
  I hope we are ready.
This commit is contained in:
Claire
2024-08-20 18:31:50 +02:00
113 changed files with 439 additions and 666 deletions

View File

@@ -97,8 +97,7 @@ RSpec.describe 'Notifications' do
before do
first_status = PostStatusService.new.call(user.account, text: 'Test')
ReblogService.new.call(bob.account, first_status)
mentioning_status = PostStatusService.new.call(bob.account, text: 'Hello @alice')
mentioning_status.mentions.first
PostStatusService.new.call(bob.account, text: 'Hello @alice')
FavouriteService.new.call(bob.account, first_status)
FavouriteService.new.call(tom.account, first_status)
FollowService.new.call(bob.account, user.account)
@@ -141,18 +140,37 @@ RSpec.describe 'Notifications' do
context 'with limit param' do
let(:params) { { limit: 3 } }
let(:notifications) { user.account.notifications.reorder(id: :desc) }
it 'returns the requested number of notifications paginated', :aggregate_failures do
subject
notifications = user.account.notifications
expect(body_as_json[:notification_groups].size)
.to eq(params[:limit])
expect(response)
.to include_pagination_headers(
prev: api_v2_alpha_notifications_url(limit: params[:limit], min_id: notifications.last.id),
prev: api_v2_alpha_notifications_url(limit: params[:limit], min_id: notifications.first.id),
# TODO: one downside of the current approach is that we return the first ID matching the group,
# not the last that has been skipped, so pagination is very likely to give overlap
next: api_v2_alpha_notifications_url(limit: params[:limit], max_id: notifications[3].id)
)
end
end
context 'with since_id param' do
let(:params) { { since_id: notifications[2].id } }
let(:notifications) { user.account.notifications.reorder(id: :desc) }
it 'returns the requested number of notifications paginated', :aggregate_failures do
subject
expect(body_as_json[:notification_groups].size)
.to eq(2)
expect(response)
.to include_pagination_headers(
prev: api_v2_alpha_notifications_url(limit: params[:limit], min_id: notifications.first.id),
# TODO: one downside of the current approach is that we return the first ID matching the group,
# not the last that has been skipped, so pagination is very likely to give overlap
next: api_v2_alpha_notifications_url(limit: params[:limit], max_id: notifications[1].id)