Sha256: 7c1ae2c473b88fefed2d006acb4de886ddac25cff7970afd037185ea693186fa

Contents?: true

Size: 1.49 KB

Versions: 3

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

RSpec.describe 'fixture test' do
  fixtures.each do |fixture|
    let(:options) { { detect_packages: true, detect_readme: true } }

    context "the #{fixture} fixture" do
      subject { Licensee.project(path, **options) }

      let(:path) { fixture_path(fixture) }
      let(:other) { Licensee::License.find('other') }
      let(:none) { Licensee::License.find('none') }
      let(:expectations) { fixture_licenses[fixture] || {} }
      let(:license_file) { subject.license_file }
      let(:matcher) { license_file&.matcher }

      it 'has an expected license in fixtures-licenses.yml' do
        msg = 'Expected an entry in `'.dup
        msg << fixture_path('fixtures-licenses.yml')
        msg << "` for the `#{fixture}` fixture. Please run "
        msg << 'script/dump-fixture-licenses and confirm the output.'
        expect(fixture_licenses).to have_key(fixture), msg
      end

      it 'detects the license' do
        expected = if expectations['key']
                     Licensee::License.find(expectations['key'])
                   else
                     none
        end

        expect(subject.license).to eql(expected)
      end

      it 'returns the expected hash' do
        hash = license_file ? license_file.content_hash : nil
        expect(hash).to eql(expectations['hash'])
      end

      it 'uses the expected matcher' do
        expected = matcher ? matcher.name.to_s : nil
        expect(expected).to eql(expectations['matcher'])
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
licensee-9.14.1 spec/fixture_spec.rb
licensee-9.14.0 spec/fixture_spec.rb
licensee-9.13.2 spec/fixture_spec.rb