spec/integration/yard/sinclair_spec.rb in sinclair-1.1.3 vs spec/integration/yard/sinclair_spec.rb in sinclair-1.2.0
- old
+ new
@@ -1,41 +1,41 @@
# frozen_string_literal: false
require 'spec_helper'
-describe 'yarn' do
- describe Sinclair do
- let(:klass) { Class.new(MyModel) }
- let(:instance) { klass.new }
- let(:builder) { Sinclair.new(klass) }
+describe Sinclair do
+ describe 'yarn' do
+ let(:klass) { Class.new(MyModel) }
+ let(:instance) { klass.new }
+ let(:builder) { described_class.new(klass) }
let(:default_value) { 10 }
describe '#initialize' do
describe '#total_price' do
before do
- subject.eval_and_add_method(:total_price) do
+ builder.eval_and_add_method(:total_price) do
code = 'self.value * self.quantity'
code.concat ' rescue 0' if options_object.rescue_error
code
end
- subject.build
+ builder.build
end
context 'without options' do
- subject { Sinclair.new(klass, rescue_error: true) }
+ subject(:builder) { described_class.new(klass, rescue_error: true) }
let(:klass) { Class.new(Purchase) }
let(:instance) { klass.new(2.3, 5) }
it 'evaluates into default_value' do
expect(instance.total_price).to eq(0)
end
end
context 'with options' do
- subject { Sinclair.new(klass) }
+ subject(:model) { described_class.new(klass) }
let(:klass) { Class.new(Purchase) }
let(:instance) { klass.new(2.3, 5) }
it do
@@ -61,12 +61,13 @@
builder.add_method(:default_value) { value }
builder.add_method(:value, '@value || default_value')
builder.add_method(:value=) { |val| @value = val }
end
- context 'after the build' do
+ describe 'after the build' do
before { builder.build }
+
it 'creates the expected methods' do
expect(instance.value).to eq(10)
end
context 'when default value is overwritten' do
@@ -78,11 +79,11 @@
expect(instance.value).to eq(20)
end
end
end
- context 'calling the build' do
+ context 'when calling the build' do
it do
expect do
builder.build
end.to change { instance.respond_to?(:default_value) }.to(true)
end
@@ -110,17 +111,14 @@
it 'returns the full name' do
expect(instance.bond_name).to eq('wick, john wick')
end
end
-
- describe '#bond_style' do
- end
end
describe '#eval_and_add_method' do
- subject { klass.new }
+ subject(:builder) { klass.new }
let(:klass) do
Class.new do
include InitialValuer
attr_writer :age
@@ -129,21 +127,21 @@
end
describe '#age' do
context 'when it has not been initialized' do
it do
- expect(subject.age).to eq(20)
+ expect(builder.age).to eq(20)
end
end
context 'when it has been initialized' do
before do
- subject.age
- subject.age = 30
+ builder.age
+ builder.age = 30
end
it do
- expect(subject.age).to eq(30)
+ expect(builder.age).to eq(30)
end
end
end
end
end