Sha256: e918194a03175d4f99bac45719ecf0ce34d9fc7095f8d3b5aba9988c8ad372cf

Contents?: true

Size: 1.29 KB

Versions: 2

Compression:

Stored size: 1.29 KB

Contents

require 'rails_helper'

describe RepoAnalyzer::ExtractProjectInfoJob, type: :job do
  let(:repo_name) { "platanus/alisur-formulator" }
  let(:project_path) { "spec/assets/test_project" }

  let(:files_list) do
    "app/extractors/repo_analyzer/project_versions_extractor.rb"
  end

  let(:bridge) do
    instance_double(
      "RepoAnalyzer::ProjectDataBridge"
    )
  end

  let(:extracted_data) do
    {
      project_versions_extractor: {
        rails_version: "6.0"
      }
    }
  end

  let(:extractor) do
    instance_double(
      "RepoAnalyzer::ProjectVersionsExtractor",
      extract: extracted_data
    )
  end

  let(:engine_root) { instance_double("Pathname", join: files_list) }

  def perform_now
    described_class.perform_now(repo_name, project_path)
  end

  before do
    allow(RepoAnalyzer::Engine).to receive(:root).and_return(engine_root)
    allow(RepoAnalyzer::ProjectDataBridge).to receive(:new).and_return(bridge)
    allow(RepoAnalyzer::ProjectVersionsExtractor).to receive(:new).and_return(extractor)
  end

  it { expect(perform_now).to eq(extracted_data) }

  it do
    perform_now
    expect(RepoAnalyzer::ProjectDataBridge).to have_received(:new).with(repo_name, project_path).once
    expect(RepoAnalyzer::ProjectVersionsExtractor).to have_received(:new).with(bridge).once
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
repo_analyzer-1.6.0 spec/jobs/repo_analyzer/extract_project_info_job_spec.rb
repo_analyzer-1.5.0 spec/jobs/repo_analyzer/extract_project_info_job_spec.rb