require_relative '../examples' RSpec.describe 'Conversion goals methods' do include_context 'use api' let(:a_conversion_goal) do { conversion_window_in_minutes: a_kind_of(String), count_type: a_kind_of(String), id: a_kind_of(String), name: a_string_starting_with('Acceptance Test Conversion goal'), revenue: a_kind_of(Hash), scope: a_kind_of(String), status: a_kind_of(String), tag_id: Examples.uet_tag_id.to_s, tracking_status: a_kind_of(String), type: 'Event', action_expression: a_kind_of(String), action_operator: a_kind_of(String), category_expression: a_kind_of(String), category_operator: a_kind_of(String), label_expression: a_kind_of(String), label_operator: a_kind_of(String), value: a_kind_of(String), value_operator: a_kind_of(String), exclude_from_bidding: nil } end describe '#get_conversion_goals_by_ids' do it 'returns a list of conversion goals' do expect(api.campaign_management.get_conversion_goals_by_ids( conversion_goal_types: 'Event', conversion_goal_ids: [{ long: Examples.conversion_goal_id }] )).to contain_exactly(a_conversion_goal) end end describe '#get_conversion_goals_by_tag_ids' do it 'returns a list of conversion_goals' do expect(api.campaign_management.call(:get_conversion_goals_by_tag_ids, { conversion_goal_types: 'Event', tag_ids: [long: Examples.uet_tag_id] })).to include( conversion_goals: { conversion_goal: a_collection_including(a_conversion_goal) }, partial_errors: "" ) end end describe '#update_conversion_goals' do it 'updates the conversion goals' do expect( api.campaign_management.update_conversion_goals( conversion_goals: { event_goal: { id: Examples.conversion_goal_id, name: "Acceptance Test Conversion goal #{random}", } }) ).to eq(partial_errors: '') updated_conversion = api.campaign_management.get_conversion_goals_by_ids( conversion_goal_types: 'Event', conversion_goal_ids: [{ long: Examples.conversion_goal_id }] ).first expect(updated_conversion).to include( name:"Acceptance Test Conversion goal #{random}" ) end end end