@@ -75,6 +75,16 @@ module Hyperclient
7575 link . _expand . _url . must_equal '/orders'
7676 link . _url . must_equal '/orders'
7777 end
78+
79+ it 'does not expand unknown variables' do
80+ link = Link . new ( 'key' , { 'href' => '/orders{?id}' , 'templated' => true } , entry_point )
81+ link . _expand ( unknown : '1' ) . _url . must_equal '/orders'
82+ end
83+
84+ it 'only expands known variables' do
85+ link = Link . new ( 'key' , { 'href' => '/orders{?id}' , 'templated' => true } , entry_point )
86+ link . _expand ( unknown : '1' , id : '2' ) . _url . must_equal '/orders?id=2'
87+ end
7888 end
7989 end
8090
@@ -91,6 +101,18 @@ module Hyperclient
91101 link . _url . must_equal '/orders?id=1'
92102 end
93103
104+ it 'does not expand an uri template with unknown variables' do
105+ link = Link . new ( 'key' , { 'href' => '/orders{?id}' , 'templated' => true } , entry_point , unknown : 1 )
106+
107+ link . _url . must_equal '/orders'
108+ end
109+
110+ it 'only expands known variables in a uri template' do
111+ link = Link . new ( 'key' , { 'href' => '/orders{?id}' , 'templated' => true } , entry_point , unknown : 1 , id : 2 )
112+
113+ link . _url . must_equal '/orders?id=2'
114+ end
115+
94116 it 'returns the link when no uri template' do
95117 link = Link . new ( 'key' , { 'href' => '/orders' } , entry_point )
96118 link . _url . must_equal '/orders'
0 commit comments