Sha256: 6344256370637587045b1c771be4431224a00fb260a92020a44dbecdea3da797

Contents?: true

Size: 1.76 KB

Versions: 10

Compression:

Stored size: 1.76 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require './lib/fusuma/plugin/base'
require './lib/fusuma/plugin/manager'

module Fusuma
  module Plugin
    class DummyPlugin < Base
      def config_param_types
        {
          dummy_string: String,
          dummy_list: Array,
          dummy_bool: [TrueClass, FalseClass]
        }
      end
    end

    class DummyChildPlugin < DummyPlugin
    end

    RSpec.describe DummyPlugin do
      before do
        @dummy_plugin = DummyPlugin.new
        @dummy_child_plugin = DummyChildPlugin.new

        ConfigHelper.load_config_yml = <<-CONFIG
        plugin:
          dummy_plugin:
            dummy_string: dummy
            dummy_list:
              - 1
              - 2
              - 3
            dummy_bool: true
        CONFIG
      end

      after do
        Config.custom_path = nil
      end
      describe '.inherited' do
        it 'should add required class to subclass on Manager' do
          expect(Manager.plugins[Base.name]).to include(DummyPlugin)
        end
      end

      describe '.plugins' do
        it 'should list plugins' do
          expect(DummyPlugin.plugins).to eq([DummyChildPlugin])
        end
      end

      describe '#config_param_types' do
        it 'should define class for config params' do
          expect(@dummy_plugin.config_param_types).to be_a Hash
        end
      end

      describe '#config_params' do
        it 'should fetch options from config' do
          expect(@dummy_plugin.config_params).to be_a Hash
          expect(@dummy_plugin.config_params(:dummy_string)).to be_a String
        end
      end

      describe '#config_index' do
        it 'should return index' do
          expect(@dummy_plugin.config_index).to be_a Config::Index
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
fusuma-2.4.1 spec/lib/plugin/base_spec.rb
fusuma-2.4.0 spec/lib/plugin/base_spec.rb
fusuma-2.3.0 spec/lib/plugin/base_spec.rb
fusuma-2.2.0 spec/lib/plugin/base_spec.rb
fusuma-2.1.0 spec/lib/plugin/base_spec.rb
fusuma-2.0.5 spec/lib/plugin/base_spec.rb
fusuma-2.0.4 spec/lib/plugin/base_spec.rb
fusuma-2.0.3 spec/lib/plugin/base_spec.rb
fusuma-2.0.2 spec/lib/plugin/base_spec.rb
fusuma-2.0.1 spec/lib/plugin/base_spec.rb