Skip to content

Commit

Permalink
Fix double escaping of props
Browse files Browse the repository at this point in the history
  • Loading branch information
subvertallchris committed Nov 30, 2014
1 parent e976ad8 commit 79b2a67
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
3 changes: 2 additions & 1 deletion lib/neo4j-core/cypher_translator.rb
Expand Up @@ -9,9 +9,10 @@ def escape_value(value)
end
end

# Like escape_value but it does not wrap the value in quotes
def create_escape_value(value)
if value.is_a?(String) || value.is_a?(Symbol)
"#{escape_quotes(sanitize_escape_sequences(value.to_s))}"
"#{sanitize_escape_sequences(value.to_s)}"
else
value
end
Expand Down
2 changes: 2 additions & 0 deletions spec/neo4j-core/unit/cypher_translator_spec.rb
Expand Up @@ -26,6 +26,8 @@
"a\b",
'\u00b5',
"\u00b5",
'test\\usomething',
"D'Amore-Schamberger",
].each do |s|
it "does not change #{s}" do
expect(klass.sanitize_escape_sequences(s)).to eq(s)
Expand Down
25 changes: 16 additions & 9 deletions spec/shared_examples/node_auto_tx.rb
Expand Up @@ -8,20 +8,16 @@
context "with auto commit" do
describe "class methods" do
describe 'create()' do
subject { Neo4j::Node.create }

subject do
Neo4j::Node.create
end
its(:exist?) { should be true }
its(:neo_id) { should be_a(Fixnum) }
its(:props) { should == {} }
end

describe 'create(name: "kalle", age: 42)' do
subject { Neo4j::Node.create(name: 'kalle', age: 42) }

subject do
Neo4j::Node.create(name: 'kalle', age: 42)
end
its(:exist?) { should be true }
its(:neo_id) { should be_a(Fixnum) }
its(:props) { should == { name: 'kalle', age: 42} }
Expand All @@ -32,12 +28,23 @@
end
end

describe "create(name: 'D\'Amore-Schamberger')" do
subject { Neo4j::Node.create(name: "D'Amore-Schamberger") }

it { is_expected.to be_persisted }
its(:props) { is_expected.to eq({ name: "D'Amore-Schamberger" }) }
end

describe 'create(name: "test\\usomething")' do
subject { Neo4j::Node.create(name: "test\\usomething") }

it { is_expected.to be_persisted }
its(:props) { is_expected.to eq({ name: "test\\usomething" }) }
end

describe 'create(name: "kalle", age: nil)' do
subject { Neo4j::Node.create(name: 'kalle', age: nil) }

subject do
Neo4j::Node.create(name: 'kalle', age: nil)
end
it 'read the properties using []' do
expect(subject[:name]).to eq('kalle')
expect(subject[:age]).to be_nil
Expand Down

0 comments on commit 79b2a67

Please sign in to comment.