23 lines
1.4 KiB
Ruby
23 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe TextToRegexQuery do
|
|
include_examples 'pg_search', SimpleVectorModel
|
|
describe '.new' do
|
|
# just default
|
|
it { expect(described_class.new('some-default-value', [:"players.name"], :"players.name").where_clause(SimpleVectorModel)).to eq([' players.name like ? OR 1<>1', '%some-default-value%']) }
|
|
|
|
# default and named
|
|
it { expect(described_class.new('name:hamo id:1', [:"players.name"], :"players.name").where_clause(SimpleVectorModel)).to eq([' players.name like ? OR players.name like ? OR 1<>1', '%id:1%', '%hamo%']) }
|
|
|
|
# escape characters
|
|
it { expect(described_class.new('name:hamo id:1',[:"players.name"], :"players.name").where_clause(SimpleVectorModel)).to eq([' players.name like ? OR players.name like ? OR 1<>1', '%id:1%', '%hamo%']) }
|
|
|
|
# default and explicit with underscore
|
|
it { expect(described_class.new('device_id:-123', [:"players.name", :"players.device_id"], :"players.device_id").where_clause(SimpleVectorModel)).to eq([" players.device_id like ? OR 1<>1", "%-123%"]) }
|
|
|
|
# default and explicit with underscore with multiple columns
|
|
it { expect(described_class.new('name:bla device_id:-123', [:"players.name", :"players.device_id"], :"players.device_id").where_clause(SimpleVectorModel)).to eq([" players.name like ? OR players.device_id like ? OR 1<>1", "%bla%", "%-123%"]) }
|
|
|
|
end
|
|
end
|