module NxtVcrHarness

Constants

VERSION

Public Class Methods

enable_vcr_cassette_helper() click to toggle source
# File lib/nxt_vcr_harness.rb, line 43
def enable_vcr_cassette_helper
  RSpec.configure do |config|
    config.include VcrCassetteHelper
  end
end
enable_vcr_tag(options = {}) click to toggle source
# File lib/nxt_vcr_harness.rb, line 26
def enable_vcr_tag(options = {})
  tag_name = options.fetch(:tag_name, :vcr_cassette)
  default_cassette_options = options.fetch(:default_cassette_options, {})

  RSpec.configure do |config|
    config.around(:each, tag_name) do |example|
      cassette_path = CassetteNameByExample.new(example).call(**options.slice(:prefix, :suffix))
      cassette_options = example.metadata[tag_name].is_a?(TrueClass) ? {} : example.metadata[tag_name]
      cassette_options = default_cassette_options.merge(cassette_options)

      VCR.use_cassette(cassette_path, **cassette_options) do
        example.call
      end
    end
  end
end
track_cassettes() click to toggle source
# File lib/nxt_vcr_harness.rb, line 54
def track_cassettes
  RSpec.configure do |config|
    config.after(:suite) do
      CassetteTracker.instance.stats
      CassetteTracker.instance.reveal_unused_cassettes(::VCR.configuration.cassette_library_dir)
    end
  end

  VCR.configure do |config|
    config.before_playback do |_, cassette|
      CassetteTracker.instance.track(cassette)
    end
  end
end
track_cassettes_if(condition) click to toggle source
# File lib/nxt_vcr_harness.rb, line 49
def track_cassettes_if(condition)
  return unless condition
  track_cassettes
end

Private Instance Methods

enable_vcr_cassette_helper() click to toggle source
# File lib/nxt_vcr_harness.rb, line 43
def enable_vcr_cassette_helper
  RSpec.configure do |config|
    config.include VcrCassetteHelper
  end
end
enable_vcr_tag(options = {}) click to toggle source
# File lib/nxt_vcr_harness.rb, line 26
def enable_vcr_tag(options = {})
  tag_name = options.fetch(:tag_name, :vcr_cassette)
  default_cassette_options = options.fetch(:default_cassette_options, {})

  RSpec.configure do |config|
    config.around(:each, tag_name) do |example|
      cassette_path = CassetteNameByExample.new(example).call(**options.slice(:prefix, :suffix))
      cassette_options = example.metadata[tag_name].is_a?(TrueClass) ? {} : example.metadata[tag_name]
      cassette_options = default_cassette_options.merge(cassette_options)

      VCR.use_cassette(cassette_path, **cassette_options) do
        example.call
      end
    end
  end
end
track_cassettes() click to toggle source
# File lib/nxt_vcr_harness.rb, line 54
def track_cassettes
  RSpec.configure do |config|
    config.after(:suite) do
      CassetteTracker.instance.stats
      CassetteTracker.instance.reveal_unused_cassettes(::VCR.configuration.cassette_library_dir)
    end
  end

  VCR.configure do |config|
    config.before_playback do |_, cassette|
      CassetteTracker.instance.track(cassette)
    end
  end
end
track_cassettes_if(condition) click to toggle source
# File lib/nxt_vcr_harness.rb, line 49
def track_cassettes_if(condition)
  return unless condition
  track_cassettes
end