spec/rest/sm/suppressions_spec.rb in sendgrid4r-1.12.0 vs spec/rest/sm/suppressions_spec.rb in sendgrid4r-1.13.0

- old
+ new

@@ -41,24 +41,42 @@ expect(emails.recipient_emails.length).to eq(2) expect(emails.recipient_emails[0]).to eq(@email2) expect(emails.recipient_emails[1]).to eq(@email3) end + it '#search_suppressed_emails' do + emails = @client.search_suppressed_emails( + group_id: @group.id, recipient_emails: [@email1] + ) + expect(emails.length).to eq(1) + expect(emails[0]).to eq(@email1) + end + it '#get_suppressed_emails' do emails = @client.get_suppressed_emails(group_id: @group.id) expect(emails.length).to eq(1) expect(emails[0]).to eq(@email1) end + it '#get_groups_by_email' do + groups = @client.get_groups_by_email(email_address: @email1) + expect(groups.suppressions).to be_a(Array) + groups.suppressions.each do |group| + next unless group.name == @group_name + expect(group.id).to eq(@group.id) + expect(group.name).to eq(@group_name) + expect(group.description).to eq(@group_desc) + expect(group.suppressed).to eq(true) + expect(group.is_default).to eq(false) + end + end + it '#get_suppressions' do - suppressions = @client.get_suppressions(email_address: @email1) - expect(suppressions.suppressions).to be_a(Array) - suppressions.suppressions.each do |suppression| - next unless suppression.name == @group_name - expect(suppression.name).to eq(@group_name) - expect(suppression.description).to eq(@group_desc) - expect(suppression.suppressed).to eq(true) + suppressions = @client.get_suppressions + expect(suppressions).to be_a(Array) + suppressions.each do |suppression| + expect(suppression).to be_a(Suppressions::Suppression) end end it '#delete_suppressed_email' do @client.delete_suppressed_email( @@ -96,82 +114,151 @@ let(:emails) do '["test1@example.com","test2@example.com"]' end - let(:suppression) do + let(:group) do '{'\ - '"id": 4,'\ - '"name": "Special Offers",'\ - '"description": "Special offers and coupons",'\ - '"suppressed": false'\ + '"description": "Optional description.",'\ + '"id": 1,'\ + '"is_default": true,'\ + '"name": "Weekly News",'\ + '"suppressed": true'\ '}' end - let(:suppressions) do + let(:groups) do '{'\ '"suppressions": ['\ '{'\ + '"description": "Optional description.",'\ '"id": 1,'\ - '"name": "Weekly Newsletter",'\ - '"description": "The weekly newsletter",'\ - '"suppressed": false'\ + '"is_default": true,'\ + '"name": "Weekly News",'\ + '"suppressed": true'\ '},'\ '{'\ - '"id": 4,'\ - '"name": "Special Offers",'\ - '"description": "Special offers and coupons",'\ + '"description": "Some daily news.",'\ + '"id": 2,'\ + '"is_default": true,'\ + '"name": "Daily News",'\ + '"suppressed": true'\ + '},'\ + '{'\ + '"description": "An old group.",'\ + '"id": 2,'\ + '"is_default": false,'\ + '"name": "Old News",'\ '"suppressed": false'\ '}'\ ']'\ '}' end + let(:suppressions) do + '['\ + '{'\ + '"email":"test@example.com",'\ + '"group_id": 1,'\ + '"group_name": "Weekly News",'\ + '"created_at": 1410986704'\ + '},'\ + '{'\ + '"email":"test1@example.com",'\ + '"group_id": 2,'\ + '"group_name": "Daily News",'\ + '"created_at": 1411493671'\ + '},'\ + '{'\ + '"email":"test2@example.com",'\ + '"group_id": 2,'\ + '"group_name": "Daily News",'\ + '"created_at": 1411493671'\ + '}'\ + ']' + end + + let(:suppression) do + '{'\ + '"email":"test@example.com",'\ + '"group_id": 1,'\ + '"group_name": "Weekly News",'\ + '"created_at": 1410986704'\ + '}' + end + it '#post_suppressed_emails' do allow(client).to receive(:execute).and_return(recipient_emails) actual = client.post_suppressed_emails( group_id: 0, recipient_emails: ['', ''] ) expect(actual).to be_a(RecipientEmails) end + it '#search_suppressed_emails' do + allow(client).to receive(:execute).and_return(emails) + actual = client.search_suppressed_emails( + group_id: 0, recipient_emails: ['', ''] + ) + expect(actual).to be_a(Array) + end + it '#get_suppressed_emails' do allow(client).to receive(:execute).and_return(emails) actual = client.get_suppressed_emails(group_id: 0) expect(actual).to be_a(Array) end + it '#get_groups_by_email' do + allow(client).to receive(:execute).and_return(groups) + actual = client.get_groups_by_email(email_address: '') + expect(actual.suppressions).to be_a(Array) + actual.suppressions.each do |group| + expect(group).to be_a(Suppressions::Group) + end + end + it '#get_suppressions' do allow(client).to receive(:execute).and_return(suppressions) - actual = client.get_suppressions(email_address: '') - expect(actual.suppressions).to be_a(Array) - actual.suppressions.each do |suppression| - expect(suppression).to be_a(Suppressions::Suppression) + actual = client.get_suppressions + expect(actual).to be_a(Array) + actual.each do |group| + expect(group).to be_a(Suppressions::Suppression) end end it '#delete_suppressed_email' do allow(client).to receive(:execute).and_return('') actual = client.delete_suppressed_email(group_id: 0, email_address: '') expect(actual).to eq('') end - it 'creates suppression instance' do - actual = Suppressions.create_suppression(JSON.parse(suppression)) - expect(actual).to be_a(Suppressions::Suppression) - expect(actual.id).to eq(4) - expect(actual.name).to eq('Special Offers') - expect(actual.description).to eq('Special offers and coupons') - expect(actual.suppressed).to eq(false) + it 'creates group instance' do + actual = Suppressions.create_group(JSON.parse(group)) + expect(actual).to be_a(Suppressions::Group) + expect(actual.id).to eq(1) + expect(actual.name).to eq('Weekly News') + expect(actual.description).to eq('Optional description.') + expect(actual.suppressed).to eq(true) + expect(actual.is_default).to eq(true) end - it 'creates suppressions instance' do - actual = Suppressions.create_suppressions(JSON.parse(suppressions)) - expect(actual).to be_a(Suppressions::Suppressions) + it 'creates groups instance' do + actual = Suppressions.create_groups(JSON.parse(groups)) + expect(actual).to be_a(Suppressions::Groups) expect(actual.suppressions).to be_a(Array) - actual.suppressions.each do |suppression| - expect(suppression).to be_a(Suppressions::Suppression) + actual.suppressions.each do |group| + expect(group).to be_a(Suppressions::Group) end + end + + it 'create suppression instance' do + actual = Suppressions.create_suppression(JSON.parse(suppression)) + expect(actual).to be_a(Suppressions::Suppression) + expect(actual.email).to eq('test@example.com') + expect(actual.group_id).to eq(1) + expect(actual.group_name).to eq('Weekly News') + expect(actual.created_at).to eq(Time.at(1410986704)) end end end end