Sha256: 483d78ec9ee87e495a312cec91ac5cd2bf71f8671cfda1ec2de466aceeef4e50

Contents?: true

Size: 1.15 KB

Versions: 24

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'image_optim'
require 'image_optim/cmd'
require 'tempfile'

describe ImageOptim do
  before do
    stub_const('Cmd', ImageOptim::Cmd)
  end

  # grab images from image_optim gem
  image_optim_root = Gem.loaded_specs['image_optim'].gem_dir
  images_dir = FSPath.new(image_optim_root) / 'spec/images'
  test_images = images_dir.glob('**/*.*')

  isolated_options_base = Hash[
    ImageOptim::Worker.klasses.map do |klass|
      [klass.bin_sym, false]
    end
  ].merge(skip_missing_workers: false)

  ImageOptim::Worker.klasses.each do |worker_klass|
    next if [:pngout, :svgo].include?(worker_klass.bin_sym)

    describe "#{worker_klass.bin_sym} worker" do
      it 'optimizes at least one test image' do
        options = isolated_options_base.merge(worker_klass.bin_sym => true)

        image_optim = ImageOptim.new(options)
        if Array(worker_klass.init(image_optim)).empty?
          image_optim = ImageOptim.new(options.merge(allow_lossy: true))
        end

        expect(test_images.any? do |original|
          image_optim.optimize_image(original)
        end).to be true
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
image_optim_pack-0.11.1.20250125-x86_64-linux spec/image_optim_spec.rb
image_optim_pack-0.11.1.20250125-x86_64-darwin spec/image_optim_spec.rb
image_optim_pack-0.11.1.20250125 spec/image_optim_spec.rb
image_optim_pack-0.11.1.20250108-x86_64-linux spec/image_optim_spec.rb
image_optim_pack-0.11.1.20250108-x86_64-darwin spec/image_optim_spec.rb
image_optim_pack-0.11.1.20250108 spec/image_optim_spec.rb
image_optim_pack-0.11.1.20241130-x86_64-linux spec/image_optim_spec.rb
image_optim_pack-0.11.1.20241130-x86_64-darwin spec/image_optim_spec.rb
image_optim_pack-0.11.1.20241130 spec/image_optim_spec.rb
image_optim_pack-0.11.1.20240914-x86_64-linux spec/image_optim_spec.rb
image_optim_pack-0.11.1.20240914-x86_64-darwin spec/image_optim_spec.rb
image_optim_pack-0.11.1.20240914 spec/image_optim_spec.rb
image_optim_pack-0.11.1.20240713-x86_64-linux spec/image_optim_spec.rb
image_optim_pack-0.11.1.20240713-x86_64-darwin spec/image_optim_spec.rb
image_optim_pack-0.11.1.20240713 spec/image_optim_spec.rb
image_optim_pack-0.11.0-x86_64-linux spec/image_optim_spec.rb
image_optim_pack-0.11.0-x86_64-darwin spec/image_optim_spec.rb
image_optim_pack-0.11.0 spec/image_optim_spec.rb
image_optim_pack-0.10.1.20240317 spec/image_optim_spec.rb
image_optim_pack-0.10.1.20240317-x86_64-linux spec/image_optim_spec.rb