Class: Caffeinate::RSpec::Matchers::EndCaffeinateCampaignSubscription

Inherits:
Object
  • Object
show all
Defined in:
lib/caffeinate/rspec/matchers/end_caffeinate_campaign_subscription.rb

Instance Method Summary collapse

Constructor Details

#initialize(expected_campaign, subscriber, **args) ⇒ EndCaffeinateCampaignSubscription

Returns a new instance of EndCaffeinateCampaignSubscription.



17
18
19
20
21
# File 'lib/caffeinate/rspec/matchers/end_caffeinate_campaign_subscription.rb', line 17

def initialize(expected_campaign, subscriber, **args)
  @expected_campaign = expected_campaign
  @subscriber = subscriber
  @args = args
end

Instance Method Details

#descriptionObject



23
24
25
# File 'lib/caffeinate/rspec/matchers/end_caffeinate_campaign_subscription.rb', line 23

def description
  "end the CampaignSubscription of #{who} on the \"Campaign##{@expected_campaign.slug}\" campaign"
end

#failure_messageObject



27
28
29
# File 'lib/caffeinate/rspec/matchers/end_caffeinate_campaign_subscription.rb', line 27

def failure_message
  "expected the CampaignSubscription of #{who} on the \"Campaign##{@expected_campaign.slug}\" campaign to end but didn't"
end

#failure_message_when_negatedObject



42
43
44
# File 'lib/caffeinate/rspec/matchers/end_caffeinate_campaign_subscription.rb', line 42

def failure_message_when_negated
  "expected the CampaignSubscription of #{who} on the \"Campaign##{@expected_campaign.slug}\" campaign to not end but did"
end

#matches?(block) ⇒ Boolean

Checks whether the block results in the campaign subscription becoming ended.

Parameters:

  • block (Block)

    The block of code to execute.

Returns:

  • (Boolean)


34
35
36
37
38
39
40
# File 'lib/caffeinate/rspec/matchers/end_caffeinate_campaign_subscription.rb', line 34

def matches?(block)
  sub = @expected_campaign.caffeinate_campaign_subscriptions.find_by(subscriber: @subscriber, **@args)
  return false unless sub && !sub.ended?

  block.call
  sub.reload.ended?
end

#supports_block_expectations?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/caffeinate/rspec/matchers/end_caffeinate_campaign_subscription.rb', line 46

def supports_block_expectations?
  true
end