Sha256: 0ac514702f9c6ec82eeb2759465ff0b55ad9d244762ac208a1e60b829c99b8d9

Contents?: true

Size: 1.04 KB

Versions: 6

Compression:

Stored size: 1.04 KB

Contents

load File.join(File.dirname(__FILE__), 'spec_helper.rb')
require 'advisory_example'

shared_examples_for "Gem Advisory" do |path|
  include_examples 'Advisory', path

  advisory = YAML.load_file(path)

  describe path do
    let(:gem) { File.basename(File.dirname(path)) }

    describe "gem" do
      subject { advisory['gem'] }

      it { is_expected.to be_kind_of(String) }
      it "should be equal to filename (case-insensitive)" do
        expect(subject.downcase).to eq(gem.downcase)
      end
    end

    describe "versions" do
      it "assumes that future versions will be patched" do
        unaffected_versions = advisory['unaffected_versions'] || []
        patched_versions    = advisory['patched_versions'] || []

        versions = (unaffected_versions + patched_versions).sort_by do |v|
          Gem::Version.new(v.match(/[0-9.]+\.\d+/)[0])
        end

        # If a gem is unpatched this test makes no sense
        unless patched_versions.none?
          expect(versions.last.match(/^>=|^>/)).to be_truthy
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
bundler-leak-0.2.0 data/ruby-mem-advisory-db/spec/gem_example.rb
bundler-leak-0.1.1 data/ruby-mem-advisory-db/spec/gem_example.rb
bundler-leak-0.1.0 data/ruby-mem-advisory-db/spec/gem_example.rb
bundler-leak-0.0.0 data/ruby-mem-advisory-db/spec/gem_example.rb
bundler-budit-0.6.2 data/ruby-advisory-db/spec/gem_example.rb
bundler-budit-0.6.1 data/ruby-advisory-db/spec/gem_example.rb