|
144 | 144 | before do |
145 | 145 | @client = Stream::Client.new('key', 'secret', 'app_id') |
146 | 146 | @captured_requests = [] |
147 | | - |
| 147 | + |
148 | 148 | # Mock the HTTP client to capture requests |
149 | | - allow_any_instance_of(Stream::StreamHTTPClient).to receive(:make_http_request) do |instance, method, relative_url, params, data, headers| |
| 149 | + allow_any_instance_of(Stream::StreamHTTPClient).to receive(:make_http_request) do |_instance, method, relative_url, params, data, headers| |
150 | 150 | @captured_requests << { |
151 | 151 | method: method, |
152 | 152 | url: relative_url, |
153 | 153 | params: params, |
154 | 154 | data: data, |
155 | 155 | headers: headers |
156 | 156 | } |
157 | | - |
| 157 | + |
158 | 158 | # Return mock response |
159 | 159 | { |
160 | 160 | 'results' => [], |
|
164 | 164 | end |
165 | 165 |
|
166 | 166 | it 'should encode multiple activity IDs as comma-separated values' do |
167 | | - ids = ['id1', 'id2', 'id3'] |
168 | | - |
| 167 | + ids = %w[id1 id2 id3] |
| 168 | + |
169 | 169 | @client.get_activities(ids: ids) |
170 | | - |
| 170 | + |
171 | 171 | expect(@captured_requests.length).to eq(1) |
172 | 172 | request = @captured_requests.first |
173 | | - |
| 173 | + |
174 | 174 | # Verify the IDs are joined with commas, not passed as an array |
175 | 175 | expect(request[:params][:ids]).to eq('id1,id2,id3') |
176 | 176 | expect(request[:params][:ids]).not_to be_a(Array) |
|
179 | 179 |
|
180 | 180 | it 'should handle single ID without comma separation' do |
181 | 181 | @client.get_activities(ids: ['single-id']) |
182 | | - |
| 182 | + |
183 | 183 | expect(@captured_requests.length).to eq(1) |
184 | 184 | request = @captured_requests.first |
185 | | - |
| 185 | + |
186 | 186 | # Single ID should still be encoded correctly |
187 | 187 | expect(request[:params][:ids]).to eq('single-id') |
188 | 188 | expect(request[:params][:ids]).not_to be_a(Array) |
189 | 189 | end |
190 | 190 |
|
191 | 191 | it 'should preserve other parameters when encoding IDs' do |
192 | | - @client.get_activities(ids: ['id1', 'id2'], limit: 10, offset: 20) |
193 | | - |
| 192 | + @client.get_activities(ids: %w[id1 id2], limit: 10, offset: 20) |
| 193 | + |
194 | 194 | expect(@captured_requests.length).to eq(1) |
195 | 195 | request = @captured_requests.first |
196 | | - |
| 196 | + |
197 | 197 | expect(request[:params][:ids]).to eq('id1,id2') |
198 | 198 | expect(request[:params][:limit]).to eq(10) |
199 | 199 | expect(request[:params][:offset]).to eq(20) |
|
0 commit comments