-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy pathpresenter_spec.rb
67 lines (54 loc) · 1.39 KB
/
presenter_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# frozen_string_literal: true
describe Grape::Presenters::Presenter do
subject { dummy_class.new }
let(:dummy_class) do
Class.new do
include Grape::DSL::InsideRoute
attr_reader :env, :request, :new_settings
def initialize
@env = {}
@header = {}
@new_settings = { namespace_inheritable: {}, namespace_stackable: {} }
end
end
end
describe 'represent' do
let(:object_mock) do
Object.new
end
it 'represent object' do
expect(described_class.represent(object_mock)).to eq object_mock
end
end
describe 'present' do
let(:hash_mock) do
{ key: :value }
end
describe 'instance' do
before do
subject.present hash_mock, with: described_class
end
it 'presents dummy hash' do
expect(subject.body).to eq hash_mock
end
end
describe 'multiple presenter' do
let(:hash_mock1) do
{ key1: :value1 }
end
let(:hash_mock2) do
{ key2: :value2 }
end
describe 'instance' do
before do
subject.present hash_mock1, with: described_class
subject.present hash_mock2, with: described_class
end
it 'presents both dummy presenter' do
expect(subject.body[:key1]).to eq hash_mock1[:key1]
expect(subject.body[:key2]).to eq hash_mock2[:key2]
end
end
end
end
end