Skip to content

Commit d45a2b8

Browse files
committed
wip
1 parent d7af764 commit d45a2b8

File tree

1 file changed

+28
-21
lines changed

1 file changed

+28
-21
lines changed

ruby/hyper-model/spec/batch7/poly_assoc_spec.rb

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,19 @@ def self.build_tables
158158

159159
end
160160

161+
def compare_to_server(model, expression, expected_result, load=true)
162+
server_side = eval("#{model.class}.find(#{model.id}).#{expression}")
163+
expect(server_side).to eq(expected_result)
164+
be_expected_result = expected_result.is_a?(Array) ? contain_exactly(*expected_result) : eq(expected_result)
165+
if load
166+
expect_promise("Hyperstack::Model.load { #{model.class}.find(#{model.id}).#{expression} }")
167+
.to be_expected_result
168+
else
169+
wait_for_ajax
170+
expect_evaluate_ruby("#{model.class}.find(#{model.id}).#{expression}").to be_expected_result
171+
end
172+
end
173+
161174
context "simple polymorphic relationship" do
162175
before(:each) do
163176
@imageable1 = Employee.create(name: 'imageable1', ss: '123')
@@ -170,18 +183,6 @@ def self.build_tables
170183

171184
end
172185

173-
def compare_to_server(model, expression, expected_result, load=true)
174-
server_side = eval("#{model.class}.find(#{model.id}).#{expression}")
175-
expect(server_side).to eq(expected_result)
176-
be_expected_result = expected_result.is_a?(Array) ? contain_exactly(*expected_result) : eq(expected_result)
177-
if load
178-
expect_promise("Hyperstack::Model.load { #{model.class}.find(#{model.id}).#{expression} }")
179-
.to be_expected_result
180-
else
181-
wait_for_ajax
182-
expect_evaluate_ruby("#{model.class}.find(#{model.id}).#{expression}").to be_expected_result
183-
end
184-
end
185186

186187
it 'read belongs_to' do
187188
compare_to_server @picture11, 'imageable.name', 'imageable1'
@@ -281,30 +282,36 @@ def compare_to_server(model, expression, expected_result, load=true)
281282

282283
it 'loads previously defined data client side' do
283284
@uzer1.groups << @group1
284-
# run this on client after above
285-
expect(@group1.uzers.collect(&:id)).to eq [@uzer1.id]
285+
compare_to_server @group1, 'uzers.collect(&:id)', [@uzer1.id]
286286
end
287287

288288
it 'creates due to a broadcast client side' do
289-
expect(@group1.uzers.count).to eq(0) # client side
289+
compare_to_server @group1, 'uzers.collect(&:id)', [] # client side
290290
@uzer1.groups << @group1 # server side
291-
expect(@group1.uzers.collect(&:id)).to eq [@uzer1.id] # client side
291+
compare_to_server @group1, 'uzers.collect(&:id)', [@uzer1.id], false # client side
292292
end
293293

294294
it 'destroys due to a broadcast client side' do
295295
@uzer1.groups << @group1 # server side
296-
expect(@group1.uzers.collect(&:id)).to eq [@uzer1.id] # client
296+
compare_to_server @group1, 'uzers.collect(&:id)', [@uzer1.id] # client
297297
Membership.find_by(uzer: @uzer1, memerable: @group1).destroy # server side
298-
expect(@group1.uzers.count).to eq(0) # client side
298+
compare_to_server @group1, 'uzers.count', 0 # client side
299299
end
300300

301301
it 'updates the server when new entries are made on the client' do
302-
@uzer1.groups << @group1 # client side
303-
@uzer1.save # needed for client side semantics
304-
expect(@group1.uzers.collect(&:id)).to eq [@uzer1.id] # server side
302+
# Not Working!
303+
evaluate_promise do
304+
uzer = Uzer.find(1)
305+
group = Group.find(1)
306+
uzer.groups << group # client side
307+
group.save # needed for client side semantics
308+
end
309+
binding.pry
310+
compare_to_server @group1, 'uzers.collect(&:id)', [@uzer1.id] # server side
305311
end
306312

307313
it 'updates the server when entries are deleted on the client' do
314+
# Not converted to client side execution
308315
@uzer1.groups << @group1 # server side
309316
Membership.find_by(uzer: @uzer1, memerable: @group1).destroy # client side
310317
expect(@group1.uzers.count).to eq(0) # server side

0 commit comments

Comments
 (0)