spec/looksist/looksist_spec.rb in looksist-0.2.5 vs spec/looksist/looksist_spec.rb in looksist-0.2.6

- old
+ new

@@ -58,10 +58,55 @@ expect(e.nome).to eq('Rajini') expect(e.age).to eq(16) expect(e.to_json).to eq("{\"nome\":\"Rajini\",\"age\":16,\"id\":1}") end end + + context 'Look up support in case of Inheritance' do + it 'should also get parent class lookups during to json conversion' do + + module InheritedLookUp + class Employee + include Her::Model + use_api TEST_API + include Looksist + attr_accessor :id + attr_accessor :department_id + lookup :name, using: :id, bucket_name: 'employees' + + def initialize(id, department_id) + @id = id + @department_id = department_id + end + + def as_json(opts) + super(opts).merge(id: @id) + end + end + + class Manager < Employee + lookup :name, using: :department_id, as: {name: 'department_name'} + + def is_manager? + true + end + + def as_json(opts) + super(opts).merge(is_manager: is_manager?) + end + end + end + + expect(@mock).to receive(:get).once.with('employees/1').and_return('SuperStar') + expect(@mock).to receive(:get).once.with('departments/2').and_return('Kollywood') + + e = InheritedLookUp::Manager.new(1, 2) + + expect(e.to_json).to eq("{\"department_name\":\"Kollywood\",\"name\":\"SuperStar\",\"id\":1,\"is_manager\":true}") + end + end + end context 'with l2 cache' do before(:each) do @mock = {} Looksist.configure do |looksist| @@ -125,11 +170,11 @@ def as_json(opts) super(opts) end end end - expect(@mock).to receive(:get).never.with('employees_/1') + expect(@mock).to receive(:get).never.with('employees/1') e = TolerantLookUp::Employee.new expect(e.to_json).to eq('{}') end end @@ -289,7 +334,8 @@ expect(@mock).not_to receive(:get).with('ids/1') employee_second_instance.name end end + end end \ No newline at end of file