From 396f53b0d46afa379b5490b13e420b3e4f0ec005 Mon Sep 17 00:00:00 2001 From: sacOO7 Date: Fri, 5 Jul 2024 22:46:14 +0530 Subject: [PATCH 1/3] Updated auth#client_id_for_request method, returning client_id if supplied via clientOptions --- lib/ably/auth.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ably/auth.rb b/lib/ably/auth.rb index 0befcb27..06b4598d 100644 --- a/lib/ably/auth.rb +++ b/lib/ably/auth.rb @@ -425,7 +425,7 @@ def extra_auth_headers # spec - RSA7e # @return string def client_id_for_request - options[:client_id] if options[:client_id] && using_basic_auth? + options[:client_id] end # Auth params used in URI endpoint for Realtime connections From c714576c1560bfa3d8e7d486c4a88c2e6870b731 Mon Sep 17 00:00:00 2001 From: sacOO7 Date: Fri, 5 Jul 2024 22:46:59 +0530 Subject: [PATCH 2/3] Unskipped tests that use clientOptions supplied clientId --- spec/acceptance/realtime/client_spec.rb | 3 +-- spec/acceptance/realtime/connection_spec.rb | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/spec/acceptance/realtime/client_spec.rb b/spec/acceptance/realtime/client_spec.rb index a4f50ae9..b392d118 100644 --- a/spec/acceptance/realtime/client_spec.rb +++ b/spec/acceptance/realtime/client_spec.rb @@ -142,8 +142,7 @@ context 'and an explicit client_id in ClientOptions' do let(:client_id) { random_str } - # Skipped because more clarification needed on RSA7e, see https://github.com/ably/ably-ruby/issues/425 - xit 'allows uses the explicit client_id in the connection' do + it 'allows uses the explicit client_id in the connection' do connection.__incoming_protocol_msgbus__.subscribe(:protocol_message) do |protocol_message| if protocol_message.action == :connected expect(protocol_message.connection_details.client_id).to eql(client_id) diff --git a/spec/acceptance/realtime/connection_spec.rb b/spec/acceptance/realtime/connection_spec.rb index 8827257a..e530e87c 100644 --- a/spec/acceptance/realtime/connection_spec.rb +++ b/spec/acceptance/realtime/connection_spec.rb @@ -383,8 +383,7 @@ def publish_and_check_disconnect(options = {}) let(:client_id) { random_str } let(:client_options) { default_options.merge(client_id: 'incompatible', token: token_string, key: nil, log_level: :none) } - # Skipped because more clarification needed on RSA7e, see https://github.com/ably/ably-ruby/issues/425 - xit 'fails the connection' do + it 'fails the connection' do expect(client.client_id).to eql('incompatible') client.connection.once(:failed) do expect(client.client_id).to eql('incompatible') From c03b5cf7b66933dbd64a0f5acd2186763b536870 Mon Sep 17 00:00:00 2001 From: sacOO7 Date: Fri, 5 Jul 2024 23:02:04 +0530 Subject: [PATCH 3/3] Fixed error code for test failing for incompatible clientId --- spec/acceptance/realtime/connection_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/acceptance/realtime/connection_spec.rb b/spec/acceptance/realtime/connection_spec.rb index e530e87c..36ca720f 100644 --- a/spec/acceptance/realtime/connection_spec.rb +++ b/spec/acceptance/realtime/connection_spec.rb @@ -387,7 +387,7 @@ def publish_and_check_disconnect(options = {}) expect(client.client_id).to eql('incompatible') client.connection.once(:failed) do expect(client.client_id).to eql('incompatible') - expect(client.connection.error_reason.code).to eql(40101) # Invalid clientId for credentials + expect(client.connection.error_reason.code).to eql(40102) # Incompatible clientId for credentials stop_reactor end end