Implicit variable scoping

This commit is contained in:
Florian Weingarten
2019-04-25 10:28:43 -04:00
parent b3b63a683f
commit af614f3a2e
15 changed files with 102 additions and 161 deletions
+30 -22
View File
@@ -102,21 +102,6 @@ class ContextUnitTest < Minitest::Test
assert_nil @context['does_not_exist']
end
def test_scoping
@context.push
@context.pop
assert_raises(Liquid::ContextError) do
@context.pop
end
assert_raises(Liquid::ContextError) do
@context.push
@context.pop
@context.pop
end
end
def test_length_query
@context['numbers'] = [1, 2, 3, 4]
@@ -170,20 +155,43 @@ class ContextUnitTest < Minitest::Test
def test_add_item_in_outer_scope
@context['test'] = 'test'
@context.push
assert_equal 'test', @context['test']
@context.pop
@context.stack('test') do
assert_equal 'test', @context['test']
end
assert_equal 'test', @context['test']
end
def test_add_item_in_inner_scope
@context.push
@context['test'] = 'test'
assert_equal 'test', @context['test']
@context.pop
@context.stack('test') do
@context['test'] = 'test'
assert_equal 'test', @context['test']
end
assert_nil @context['test']
end
def test_nested_scopes
@context['test'] = 1
@context.stack('test') do
assert_equal 1, @context['test']
@context['test'] = 2
assert_equal 2, @context['test']
@context.stack('test') do
assert_equal 2, @context['test']
@context['test'] = 3
assert_equal 3, @context['test']
end
assert_equal 2, @context['test']
end
assert_equal 1, @context['test']
end
def test_hierachical_data
@context['hash'] = { "name" => 'tobi' }
assert_equal 'tobi', @context['hash.name']