Sha256: a174fda4dd3843a7aa8c0a2a720a490468f0baafc1dbf6cab1d93c5303fe38c9

Contents?: true

Size: 1.56 KB

Versions: 2

Compression:

Stored size: 1.56 KB

Contents

# encoding: utf-8
require 'spec_helper'
require 'fedux_org_stdlib/version_management/rubygem_version_file_parser'

RSpec.describe FeduxOrgStdlib::VersionManagement::RubygemVersionFileParser do
  let(:parser) { FeduxOrgStdlib::VersionManagement::RubygemVersionFileParser.new }

  context '#parse' do
    it 'extracts version number' do
      write_file(
      'version.rb', 
      <<-EOS.strip_heredoc
       #main MyLibrary
       module MyLibrary
         VERSION = '0.0.0'
       end
      EOS
      )

      parser.parse(absolute_path('version.rb'))

      expect(parser.version).to eq('0.0.0')
    end

    it 'extracts modules' do
      write_file(
      'version.rb', 
      <<-EOS.strip_heredoc
        #main MyLibrary
        module MyLibrary
          VERSION = '0.0.0'
        end
      EOS
      )

      parser.parse(absolute_path('version.rb'))

      expect(parser.modules).to eq([ 'MyLibrary' ])
    end

    it 'extracts nested modules as well' do
      write_file(
      'version.rb', 
      <<-EOS.strip_heredoc
      #main MyLibrary
      module MyLibrary
        module MyClass
          VERSION = '0.0.0'
        end
      end
      EOS
      )

      parser.parse(absolute_path('version.rb'))

      expect(parser.modules).to eq(['MyLibrary', 'MyClass'])
    end

    it 'fails if version cannot be extracted' do
      write_file(
      'version.rb', 
      <<-EOS.strip_heredoc
        #main MyLibrary
      EOS
      )

      expect {
        parser.parse(absolute_path('version.rb'))
      }.to raise_error VersionManagement::Exceptions::VersionFileInvalid
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fedux_org-stdlib-0.7.21 spec/version_management/rubygem_version_file_parser_spec.rb
fedux_org-stdlib-0.7.20 spec/version_management/rubygem_version_file_parser_spec.rb