Sha256: af255329a8952cf4bf595a9265c999bc7be7c5b1b447ff8a122d61b6d7149568

Contents?: true

Size: 1.13 KB

Versions: 8

Compression:

Stored size: 1.13 KB

Contents

require 'spec_helper'

describe Ufo::EcrCleaner do
  let(:docker_image_name) { "123456789.dkr.ecr.us-east-1.amazonaws.com/my-name" }
  let(:repo_domain) { "https://123456789.dkr.ecr.us-east-1.amazonaws.com" }
  let(:cleaner) { Ufo::EcrCleaner.new(docker_image_name, mute: true) }
  before(:each) do
    allow(cleaner).to receive(:update_auth_token).and_return(:whatever)
  end

  context("lots of old images") do
    let(:image_tags) { 10.times.map {|i| "ufo-#{i}" }.reverse }
    before(:each) do
      allow(cleaner).to receive(:fetch_image_tags).and_return(image_tags)
    end

    it "should remove images and keep 3" do
      allow(cleaner).to receive(:ecr).and_return(ecr_stub)
      cleaner.cleanup
      expect(cleaner.ecr).to have_received(:batch_delete_image).with(
          repository_name: "my-name",
          image_ids: [{image_tag: "ufo-6"}, {image_tag: "ufo-5"}, {image_tag: "ufo-4"}, {image_tag: "ufo-3"}, {image_tag: "ufo-2"}, {image_tag: "ufo-1"}, {image_tag: "ufo-0"}]
        )
    end
  end

  def ecr_stub
    ecr = double("Ecr").as_null_object
    allow(ecr).to receive(:batch_delete_image).and_return(:whatever)
    ecr
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ufo-0.1.6 spec/lib/ecr_cleaner_spec.rb
ufo-0.1.5 spec/lib/ecr_cleaner_spec.rb
ufo-0.1.4 spec/lib/ecr_cleaner_spec.rb
ufo-0.1.3 spec/lib/ecr_cleaner_spec.rb
ufo-0.1.2 spec/lib/ecr_cleaner_spec.rb
ufo-0.1.1 spec/lib/ecr_cleaner_spec.rb
ufo-0.1.0 spec/lib/ecr_cleaner_spec.rb
ufo-0.0.6 spec/lib/ecr_cleaner_spec.rb