mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-21 15:56:10 +08:00
fix(query): Properly escape single quotes in SQLite
This commit is contained in:
parent
763e42d974
commit
6e11f3d5b4
|
@ -115,6 +115,16 @@ describe "ModelQuery", ->
|
|||
sql: "SELECT `Namespace`.`data` FROM `Namespace` \
|
||||
WHERE `Namespace`.`email_address` = 'ben@nylas.com' AND `Namespace`.`id` = 2"
|
||||
|
||||
it "should correctly escape single quotes with more double single quotes (LIKE)", ->
|
||||
@runScenario Namespace,
|
||||
builder: (q) -> q.where(Namespace.attributes.emailAddress.like("you're"))
|
||||
sql: "SELECT `Namespace`.`data` FROM `Namespace` WHERE `Namespace`.`email_address` like '%you''re%'"
|
||||
|
||||
it "should correctly escape single quotes with more double single quotes (equal)", ->
|
||||
@runScenario Namespace,
|
||||
builder: (q) -> q.where(Namespace.attributes.emailAddress.equal("you're"))
|
||||
sql: "SELECT `Namespace`.`data` FROM `Namespace` WHERE `Namespace`.`email_address` = 'you''re'"
|
||||
|
||||
it "should correctly generate COUNT queries", ->
|
||||
@runScenario Thread,
|
||||
builder: (q) -> q.where({namespaceId: 'abcd'}).count()
|
||||
|
|
|
@ -73,14 +73,13 @@ class Matcher
|
|||
return false
|
||||
|
||||
whereSQL: (klass) ->
|
||||
|
||||
if @comparator is "like"
|
||||
val = "%#{@val}%"
|
||||
else
|
||||
val = @val
|
||||
|
||||
if _.isString(val)
|
||||
escaped = "'#{val.replace(/'/g, '\\\'')}'"
|
||||
escaped = "'#{val.replace(/'/g, "''")}'"
|
||||
else if val is true
|
||||
escaped = 1
|
||||
else if val is false
|
||||
|
|
Loading…
Reference in a new issue