From 388de83f48ac6993ae025237607e09fae4e5a3d6 Mon Sep 17 00:00:00 2001 From: Andrew Bromwich Date: Fri, 7 Feb 2025 11:24:37 +1000 Subject: [PATCH 1/3] Fix bug in group/channel online API where ID usage broken --- Gemfile | 2 +- lib/rocket_chat/messages/channel.rb | 2 +- lib/rocket_chat/messages/group.rb | 2 +- lib/rocket_chat/messages/room_support.rb | 4 ++-- spec/rocket_chat/messages/channel_spec.rb | 2 +- spec/rocket_chat/messages/group_spec.rb | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 090b011..9e923a2 100644 --- a/Gemfile +++ b/Gemfile @@ -12,6 +12,6 @@ gem 'rubocop', '~> 1.70' gem 'rubocop-performance', '~> 1.23' gem 'rubocop-rake', '~> 0.6' gem 'rubocop-rspec', '~> 3.3' -gem 'simplecov', '~> 0.16', '< 0.18' +gem 'simplecov', '~> 0.22' gem 'webmock', '~> 3.24' gem 'yard', '~> 0.9.11' diff --git a/lib/rocket_chat/messages/channel.rb b/lib/rocket_chat/messages/channel.rb index 3e12865..a0c7db5 100644 --- a/lib/rocket_chat/messages/channel.rb +++ b/lib/rocket_chat/messages/channel.rb @@ -54,7 +54,7 @@ def list(offset: nil, count: nil, sort: nil, fields: nil, query: nil) def online(room_id: nil, name: nil) response = session.request_json( '/api/v1/channels.online', - body: { query: room_query_params(room_id, name) } + body: room_query_params(room_id, name) ) response['online'].map { |hash| RocketChat::User.new hash } if response['success'] diff --git a/lib/rocket_chat/messages/group.rb b/lib/rocket_chat/messages/group.rb index 49ca9b4..0b73dd8 100644 --- a/lib/rocket_chat/messages/group.rb +++ b/lib/rocket_chat/messages/group.rb @@ -85,7 +85,7 @@ def list_all(offset: nil, count: nil, sort: nil, fields: nil, query: nil) def online(room_id: nil, name: nil) response = session.request_json( '/api/v1/groups.online', - body: { query: room_query_params(room_id, name) } + body: room_query_params(room_id, name) ) response['online'].map { |hash| RocketChat::User.new hash } if response['success'] diff --git a/lib/rocket_chat/messages/room_support.rb b/lib/rocket_chat/messages/room_support.rb index 71c588b..25d1fda 100644 --- a/lib/rocket_chat/messages/room_support.rb +++ b/lib/rocket_chat/messages/room_support.rb @@ -20,10 +20,10 @@ def room_query_params(id, name) if id { _id: id } elsif name - { name: name } + { query: { name: name }.to_json } else {} - end.to_json + end end end end diff --git a/spec/rocket_chat/messages/channel_spec.rb b/spec/rocket_chat/messages/channel_spec.rb index 5efccbc..628a0bd 100644 --- a/spec/rocket_chat/messages/channel_spec.rb +++ b/spec/rocket_chat/messages/channel_spec.rb @@ -103,7 +103,7 @@ stub_authed_request(:get, described_class.api_path('online?query=%7B%22name%22:%22room-one%22%7D')) .to_return(online_users_response) - stub_authed_request(:get, described_class.api_path('online?query=%7B%22_id%22:%22TZtANZwQt369rR4UR%22%7D')) + stub_authed_request(:get, described_class.api_path('online?_id=TZtANZwQt369rR4UR')) .to_return(online_users_response) stub_authed_request(:get, described_class.api_path('online?query=%7B%22name%22:%22empty-room%22%7D')) diff --git a/spec/rocket_chat/messages/group_spec.rb b/spec/rocket_chat/messages/group_spec.rb index a0f088a..32872be 100644 --- a/spec/rocket_chat/messages/group_spec.rb +++ b/spec/rocket_chat/messages/group_spec.rb @@ -259,7 +259,7 @@ stub_authed_request(:get, described_class.api_path('online?query=%7B%22name%22:%22room-one%22%7D')) .to_return(online_users_response) - stub_authed_request(:get, described_class.api_path('online?query=%7B%22_id%22:%22TZtANZwQt369rR4UR%22%7D')) + stub_authed_request(:get, described_class.api_path('online?_id=TZtANZwQt369rR4UR')) .to_return(online_users_response) stub_authed_request(:get, described_class.api_path('online?query=%7B%22name%22:%22empty-room%22%7D')) From 685a746eb9fe927f327cfe45cac1cbbf9a5cb50f Mon Sep 17 00:00:00 2001 From: Andrew Bromwich Date: Fri, 7 Feb 2025 11:31:45 +1000 Subject: [PATCH 2/3] Fix lints --- lib/rocket_chat/messages/room.rb | 5 +++-- spec/shared/room_behaviors.rb | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/rocket_chat/messages/room.rb b/lib/rocket_chat/messages/room.rb index 7b6fa77..61d2dde 100644 --- a/lib/rocket_chat/messages/room.rb +++ b/lib/rocket_chat/messages/room.rb @@ -341,8 +341,9 @@ def room_option_hash(options) end def validate_attribute(attribute) - raise ArgumentError, "Unsettable attribute: #{attribute || 'nil'}" unless \ - self.class.settable_attributes.include?(attribute) + return if self.class.settable_attributes.include?(attribute) + + raise ArgumentError, "Unsettable attribute: #{attribute || 'nil'}" end def file_upload_array(**params) diff --git a/spec/shared/room_behaviors.rb b/spec/shared/room_behaviors.rb index 579e04c..55295e0 100644 --- a/spec/shared/room_behaviors.rb +++ b/spec/shared/room_behaviors.rb @@ -17,8 +17,10 @@ } end let(:invalid_room_message) do - %(The required "roomId" or "roomName" param provided does not match any #{described_class.field} ) \ - '[error-room-not-found]' + <<~ERROR.delete("\n") + The required "roomId" or "roomName" param provided does not match any #{described_class.field} + [error-room-not-found] + ERROR end let(:invalid_room_body) do { From 66f56dcb44ed04bc10199529863b825fe749da19 Mon Sep 17 00:00:00 2001 From: Andrew Bromwich Date: Fri, 7 Feb 2025 11:34:57 +1000 Subject: [PATCH 3/3] Fix up CC setup --- .github/workflows/test.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 615900d..9512744 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,5 +1,8 @@ name: Test RocketChat Ruby gem +env: + CC_TEST_REPORTER_ID: abf0a371ff8851f13b563671914b195bb46f0997f0f93142e666d9acad08e22f + on: push: branches: [main] @@ -30,5 +33,3 @@ jobs: - name: Test & publish code coverage uses: paambaati/codeclimate-action@v3.0.0 - env: - CC_TEST_REPORTER_ID: abf0a371ff8851f13b563671914b195bb46f0997f0f93142e666d9acad08e22f