require_relative "../examples" RSpec.describe "CampaignCriterion methods" do include_context "use api" def add_campaign_criterions(location_id) api.campaign_management.call(:add_campaign_criterions, campaign_criterions: [ { negative_campaign_criterion: { campaign_id: Examples.campaign_id, location_criterion: { location_id: location_id } } } ], criterion_type: "Targets") end describe "#add_campaign_criterions" do it "returns CampaignCriterion ids" do expect(add_campaign_criterions(190)).to include( campaign_criterion_ids: [a_kind_of(Integer)], nested_partial_errors: "" ) end end describe "#delete_campaign_criterions" do it "returns no errors" do response = add_campaign_criterions(191) expect(api.campaign_management.call(:delete_campaign_criterions, campaign_criterion_ids: [ {long: response[:campaign_criterion_ids].first} ], campaign_id: Examples.campaign_id, criterion_type: "Targets")).to eq( partial_errors: "" ) end end describe "#get_campaign_criterions_by_ids" do it "returns CampaignCriterions" do response = add_campaign_criterions(193) criterion_id = response[:campaign_criterion_ids].first.to_s criterions = api.campaign_management.get_campaign_criterions_by_ids( campaign_criterion_ids: [{long: criterion_id}], campaign_id: Examples.campaign_id, criterion_type: "Age DayTime Device Gender Location LocationIntent Radius" ) expect(criterions).to include( campaign_id: Examples.campaign_id.to_s, criterion: { type: "LocationCriterion", display_name: a_kind_of(String), enclosed_location_ids: nil, location_id: "193", location_type: a_kind_of(String) }, forward_compatibility_map: nil, id: criterion_id, status: a_kind_of(String), type: "NegativeCampaignCriterion" ) end end end