|
179 | 179 | expect(results[0]['id']).to eq response['id'] |
180 | 180 | feed.remove_activity(response['id']) |
181 | 181 | results = feed.get(limit: 1)['results'] |
182 | | - expect(results[0]['id']).not_to eq response['id'] if results.count > 0 |
| 182 | + expect(results[0]['id']).not_to eq response['id'] if results.any? |
183 | 183 | end |
184 | 184 |
|
185 | 185 | example 'removing an activity by foreign_id' do |
|
675 | 675 | response = @client.get_activities(ids: [activity['id']], reactions: { own: true }) |
676 | 676 | expect(response['results'][0]['own_reactions']['like'][0]).to eq reaction |
677 | 677 | end |
| 678 | + example 'get multiple activities by IDs' do |
| 679 | + # Create two different activities |
| 680 | + activity1 = @feed42.add_activity( |
| 681 | + actor: 'alice', |
| 682 | + verb: 'tweet', |
| 683 | + object: 'message1', |
| 684 | + foreign_id: "tweet-#{Time.now.to_i}-1" |
| 685 | + ) |
| 686 | + |
| 687 | + activity2 = @feed42.add_activity( |
| 688 | + actor: 'bob', |
| 689 | + verb: 'like', |
| 690 | + object: 'post1', |
| 691 | + foreign_id: "like-#{Time.now.to_i}-2" |
| 692 | + ) |
| 693 | + |
| 694 | + # Remove duration from comparison since it varies |
| 695 | + activity1.delete('duration') |
| 696 | + activity2.delete('duration') |
| 697 | + |
| 698 | + # Wait a moment for activities to be indexed |
| 699 | + sleep(2) |
| 700 | + |
| 701 | + # Test: Get both activities by their IDs in a single call |
| 702 | + response = @client.get_activities( |
| 703 | + ids: [activity1['id'], activity2['id']] |
| 704 | + ) |
| 705 | + |
| 706 | + expect(response).to include('duration', 'results') |
| 707 | + expect(response['results'].count).to be 2 |
| 708 | + |
| 709 | + # Verify both activities are returned |
| 710 | + returned_ids = response['results'].map { |a| a['id'] } |
| 711 | + expect(returned_ids).to include(activity1['id']) |
| 712 | + expect(returned_ids).to include(activity2['id']) |
| 713 | + |
| 714 | + # Verify the returned activities match the original activities |
| 715 | + response['results'].each do |returned_activity| |
| 716 | + returned_activity.delete('duration') |
| 717 | + |
| 718 | + if returned_activity['id'] == activity1['id'] |
| 719 | + expect(returned_activity).to eq(activity1) |
| 720 | + elsif returned_activity['id'] == activity2['id'] |
| 721 | + expect(returned_activity).to eq(activity2) |
| 722 | + else |
| 723 | + raise "Unexpected activity ID: #{returned_activity['id']}" |
| 724 | + end |
| 725 | + end |
| 726 | + end |
| 727 | + |
678 | 728 | example 'activity recent reaction enrichment' do |
679 | 729 | activity = @feed42.add_activity({ actor: 'jim', verb: 'buy', object: 'wallet' }) |
680 | 730 | reaction = @client.reactions.add('dislike', activity['id'], 'jim') |
|
0 commit comments