Fixed issue with rooms not correctly ordering (#963)

This commit is contained in:
Ahmad Farhat 2020-02-24 16:48:51 -05:00 committed by GitHub
parent 03266730e8
commit 475374090a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 1 deletions

View File

@ -103,6 +103,11 @@ class User < ApplicationRecord
order(Arel.sql("#{column} #{direction}"))
end
# Returns a list of rooms ordered by last session
def ordered_rooms
[main_room] + rooms.where.not(id: main_room.id).order("last_session desc")
end
# Activates an account and initialize a users main room
def activate
update_attributes(email_verified: true, activated_at: Time.zone.now)

View File

@ -77,7 +77,7 @@
</div>
<div id="room_block_container" class="row pt-7 pb-5">
<% current_user.rooms.each do |room| %>
<% current_user.ordered_rooms.each do |room| %>
<div class="col-lg-4 col-md-6 col-sm-12">
<%= link_to room do %>
<%= render "rooms/components/room_block", room: room %>

View File

@ -112,6 +112,28 @@ describe User, type: :model do
end
end
context '#ordered_rooms' do
it 'correctly orders the users rooms' do
user = create(:user)
room1 = create(:room, owner: user)
room2 = create(:room, owner: user)
room3 = create(:room, owner: user)
room4 = create(:room, owner: user)
room4.update_attributes(sessions: 1, last_session: "2020-02-24 19:52:57")
room3.update_attributes(sessions: 1, last_session: "2020-01-25 19:52:57")
room2.update_attributes(sessions: 1, last_session: "2019-09-05 19:52:57")
room1.update_attributes(sessions: 1, last_session: "2015-02-24 19:52:57")
rooms = user.ordered_rooms
expect(rooms[0]).to eq(user.main_room)
expect(rooms[1]).to eq(room4)
expect(rooms[2]).to eq(room3)
expect(rooms[3]).to eq(room2)
expect(rooms[4]).to eq(room1)
end
end
context 'password reset' do
it 'creates token and respective reset digest' do
user = create(:user)