4
4
RSpec . describe ChefVault ::Mixin ::Helper do
5
5
include ChefVault ::Mixin ::Helper
6
6
7
- let ( :json ) { { "username" : "root" } }
8
- let ( :json_data ) { '{"username": "root", "password": "abcabc"}' }
9
- let ( :buggy_json_data ) { '{"username": "root", "password": "abc\abc"' }
7
+ before do
8
+ allow ( ChefVault ::Log ) . to receive ( :warn )
9
+ end
10
+
11
+ let ( :json_base ) { { "username" : "root" } }
12
+ let ( :valid_json ) { '{"username": "root", "password": "abcabc"}' }
13
+ let ( :malformed_json ) { '{"username": ' }
14
+ let ( :valid_json_with_special_character ) { { "Data" : "Null->\u0000 <-Byte" } }
10
15
11
- describe "#validate_json " do
12
- it "Raises InvalidValue Exception when invalid data provided" do
13
- expect { validate_json ( buggy_json_data ) } . to raise_error ( ChefVault :: Exceptions :: InvalidValue )
16
+ describe "#values_from_json " do
17
+ it "should raise Exception when invalid JSON provided" do
18
+ expect { values_from_json ( malformed_json ) } . to raise_error ( JSON :: ParserError )
14
19
end
15
20
16
- it "Not to raise error if valid data provided" do
17
- expect { validate_json ( json_data ) } . to_not raise_error
21
+ it "should not to raise error if valid data provided" do
22
+ expect { values_from_json ( valid_json ) } . to_not raise_error
18
23
end
19
24
20
- it "not to raise error if data consist of tab/new line OR space" do
25
+ it "should not to raise error if data consist of tab/new line OR space" do
21
26
%w{ abc\tabc abc\nabc } . each do |pass |
22
- json_data_with_slash = json . merge ( "password" : pass )
23
- expect { validate_json ( json_data_with_slash . to_json ) } . to_not raise_error
27
+ json_data_with_slash = json_base . merge ( "password" : pass )
28
+ expect { values_from_json ( json_data_with_slash . to_json ) } . to_not raise_error
24
29
end
25
30
end
31
+
32
+ it 'should not warn or fail when JSON contains special characters' do
33
+ expect ( ChefVault ::Log ) . to_not receive ( :warn )
34
+ expect { values_from_json ( valid_json_with_special_character . to_json ) } . to_not raise_error
35
+ end
26
36
end
27
37
end
0 commit comments