Sha256: 99ba7f1d449b3fdb5d0ccc6fe540007d5bc953ad1bda6ca08ce57aa0c0fe237f

Contents?: true

Size: 750 Bytes

Versions: 1

Compression:

Stored size: 750 Bytes

Contents

# frozen_string_literal: true

describe Sinclair::MethodDefinition::ClassStringDefinition do
  describe 'yard' do
    describe '#build' do
      subject(:method_definition) do
        described_class.new(name, code, cached: true)
      end

      let(:klass)    { Class.new }
      let(:code)     { '@x = @x.to_i ** 2 + 1' }
      let(:name)     { :sequence }

      it 'adds a dynamic method' do
        expect { method_definition.build(klass) }.to add_class_method(name).to(klass)
        expect { klass.sequence }
          .to change { klass.instance_variable_get(:@x) }.from(nil).to(1)
        expect { klass.sequence }.not_to change(klass, :sequence)
        expect(klass.instance_variable_get(:@sequence)).to eq(1)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sinclair-1.4.2 spec/integration/yard/sinclair/method_definition/class_string_definition_spec.rb