Sha256: 12ec2b3522f50243ca09e930f3d3999784a401aa510670887e7f5538dec85fa0

Contents?: true

Size: 1.51 KB

Versions: 2

Compression:

Stored size: 1.51 KB

Contents

# encoding: UTF-8

describe Central::Devtools::Project::Initializer::Rspec do
  let(:spec_root) { Central::Devtools.root.join('spec') }
  let(:unit_test_timeout) { instance_double(Float) }

  let(:project) do
    instance_double(
      Central::Devtools::Project,
      spec_root: spec_root,
      devtools:  instance_double(
        Central::Devtools::Config::Devtools,
        unit_test_timeout: unit_test_timeout
      )
    )
  end

  describe '.call' do
    subject do
      described_class.call(project)
    end

    it 'performs expected rspec initialization' do
      called = false
      example = -> { called = true }

      expect(Dir).to receive(:glob)
        .with(Central::Devtools.root.join(
                'shared/spec/{shared,support}/**/*.rb')
             ).and_return(%w(shared-a shared-b))

      expect(Kernel).to receive(:require).with('shared-a')
      expect(Kernel).to receive(:require).with('shared-b')

      expect(Dir).to receive(:glob)
        .with(Central::Devtools.root.join('spec/{shared,support}/**/*.rb'))
        .and_return(%w(support-a support-b))

      expect(Kernel).to receive(:require).with('support-a')
      expect(Kernel).to receive(:require).with('support-b')

      expect(Timeout).to receive(:timeout).with(unit_test_timeout) do |&block|
        block.call
      end

      expect(RSpec.configuration).to receive(:around)
        .with(file_path: %r{\bspec/unit/})
        .and_yield(example)

      expect(subject).to be(described_class)

      expect(called).to be(true)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
central-devtools-0.8.4 spec/unit/central/devtools/project/initializer/rspec_spec.rb
central-devtools-0.8.3 spec/unit/central/devtools/project/initializer/rspec_spec.rb