parsley/spec/models/usda_food_spec.rb

46 lines
1.5 KiB
Ruby
Raw Normal View History

2016-01-28 14:19:51 -06:00
require 'rails_helper'
RSpec.describe UsdaFood do
let!(:data) do
{
2016-01-28 18:18:45 -06:00
salted_butter: create(:usda_food, long_description: 'Salted Butter'),
unsalted_butter: create(:usda_food, long_description: 'Unsalted Butter'),
flour: create(:usda_food, long_description: 'Flour'),
bread_flour: create(:usda_food, long_description: 'Bread Flour'),
2016-09-28 17:08:43 -05:00
sugar: create(:usda_food, long_description: 'Sugar,Granulated'),
mustard: create(:usda_food, long_description: 'HONEY MUSTARD DIPPING SAUCE')
2016-01-28 14:19:51 -06:00
}
end
def items(*syms)
Array.wrap(syms).map { |s| data[s] }
end
it 'can be found by single tokens' do
2016-01-28 18:18:45 -06:00
r = UsdaFood.matches_tokens(:long_description, ['sal'])
2016-01-28 14:19:51 -06:00
expect(r.length).to eq 1
expect(r).to contain_exactly *items(:salted_butter)
2016-01-28 18:18:45 -06:00
r = UsdaFood.matches_tokens(:long_description, ['flour'])
2016-01-28 14:19:51 -06:00
expect(r.length).to eq 2
expect(r).to contain_exactly *items(:flour, :bread_flour)
end
it 'can be found by multiple tokens' do
2016-01-28 18:18:45 -06:00
r = UsdaFood.matches_tokens(:long_description, ['sal', 'butter'])
2016-01-28 14:19:51 -06:00
expect(r.length).to eq 1
expect(r).to contain_exactly *items(:salted_butter)
2016-09-28 17:08:43 -05:00
r = UsdaFood.matches_tokens(:long_description, ['butter', 'sal'])
expect(r.length).to eq 1
expect(r).to contain_exactly *items(:salted_butter)
2016-01-28 14:19:51 -06:00
end
it 'treats commas like spaces' do
2016-01-28 18:18:45 -06:00
r = UsdaFood.matches_tokens(:long_description, ['gran', 'sugar'])
2016-01-28 14:19:51 -06:00
expect(r.length).to eq 1
expect(r).to contain_exactly *items(:sugar)
end
end