mirror of
https://github.com/CodeforLeipzig/stadtratmonitor.git
synced 2025-04-20 07:11:33 +02:00
commit
568da30c54
7 changed files with 109 additions and 2 deletions
|
@ -53,4 +53,25 @@ RSpec.feature "Basic search", type: :feature, elasticsearch: true do
|
|||
expect(result).to have_css("span.published", text: I18n.l(paper.published_at.to_date))
|
||||
end
|
||||
|
||||
scenario "Finds papers by name" do
|
||||
paper = FactoryGirl.create(:paper, name: "Opendata als default")
|
||||
Paper.__elasticsearch__.refresh_index!
|
||||
visit search_path body: "leipzig", paper_search: {query: "Opendata"}
|
||||
expect(page).to have_content("1 Dokument in der Datenbank")
|
||||
result = page.find("li.search-result", match: :first)
|
||||
expect(result).to have_link(paper.name, href: paper.url)
|
||||
end
|
||||
|
||||
scenario "Finds papers by content" do
|
||||
paper = FactoryGirl.create(:paper,
|
||||
name: "Opendata als default",
|
||||
content: "Alle Verwaltungsdokumente werden als Opendata veröffentlicht"
|
||||
)
|
||||
Paper.__elasticsearch__.refresh_index!
|
||||
visit search_path body: "leipzig", paper_search: {query: "Verwaltungsdokumente"}
|
||||
expect(page).to have_content("1 Dokument in der Datenbank")
|
||||
result = page.find("li.search-result", match: :first)
|
||||
expect(result).to have_link(paper.name, href: paper.url)
|
||||
end
|
||||
|
||||
end
|
||||
|
|
69
spec/features/search_filters_spec.rb
Normal file
69
spec/features/search_filters_spec.rb
Normal file
|
@ -0,0 +1,69 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.feature "Search filters", type: :feature, elasticsearch: true do
|
||||
|
||||
before(:each) do
|
||||
@antrag = FactoryGirl.create(:paper,
|
||||
paper_type: "Antrag",
|
||||
name: "Mehr Spielplätze in Leipzig",
|
||||
originator: "Dezernat Jugend, Soziales, Gesundheit und Schule"
|
||||
)
|
||||
@anfrage = FactoryGirl.create(:paper,
|
||||
paper_type: "Anfrage",
|
||||
originator: "CDU-Fraktion"
|
||||
)
|
||||
@vorlage_1 = FactoryGirl.create(:paper,
|
||||
paper_type: "Vorlage",
|
||||
name: "Zustand der Spielplätze",
|
||||
originator: "Dezernat Jugend, Soziales, Gesundheit und Schule"
|
||||
)
|
||||
@vorlage_2 = FactoryGirl.create(:paper,
|
||||
paper_type: "Vorlage",
|
||||
name: "Mehr Ampeln in der Innenstadt",
|
||||
originator: "Oberbürgermeister"
|
||||
)
|
||||
Paper.__elasticsearch__.refresh_index!
|
||||
end
|
||||
|
||||
scenario "Displays paper types and their respective count witin the search results" do
|
||||
visit search_path body: "leipzig"
|
||||
paper_type_filter = page.find("select#paper_search_paper_type")
|
||||
expect(paper_type_filter).to have_css("option", text: "Antrag (1)")
|
||||
expect(paper_type_filter).to have_css("option", text: "Anfrage (1)")
|
||||
expect(paper_type_filter).to have_css("option", text: "Vorlage (2)")
|
||||
|
||||
visit search_path body: "leipzig", paper_search: {query: "Spielplätze"}
|
||||
paper_type_filter = page.find("select#paper_search_paper_type")
|
||||
expect(paper_type_filter).to have_css("option", text: "Antrag (1)")
|
||||
expect(paper_type_filter).not_to have_css("option", text: "Anfrage")
|
||||
expect(paper_type_filter).to have_css("option", text: "Vorlage (1)")
|
||||
end
|
||||
|
||||
scenario "Filtering by paper type", js: true do
|
||||
visit search_path body: "leipzig"
|
||||
expect(page).to have_css("li.search-result", count: 4)
|
||||
select "Antrag (1)", from: "Typ"
|
||||
expect(page).to have_css("li.search-result", count: 1, text: "Spielplätze")
|
||||
end
|
||||
|
||||
scenario "Displays originators and their respective count within the search results" do
|
||||
visit search_path body: "leipzig"
|
||||
originator_filter = page.find("select#paper_search_originator")
|
||||
expect(originator_filter).to have_css("option", text: "CDU-Fraktion (1)")
|
||||
expect(originator_filter).to have_css("option", text: "Dezernat Jugend, Soziales, Gesundheit und Schule (2)")
|
||||
expect(originator_filter).to have_css("option", text: "Oberbürgermeister (1)")
|
||||
|
||||
visit search_path body: "leipzig", paper_search: {query: "Spielplätze"}
|
||||
originator_filter = page.find("select#paper_search_originator")
|
||||
expect(originator_filter).to have_css("option", text: "Dezernat Jugend, Soziales, Gesundheit und Schule (2)")
|
||||
expect(originator_filter).not_to have_css("option", text: "Oberbürgermeister")
|
||||
end
|
||||
|
||||
scenario "Filtering by originator", js: true do
|
||||
visit search_path body: "leipzig"
|
||||
expect(page).to have_css("li.search-result", count: 4)
|
||||
select "Oberbürgermeister (1)", from: "Einreicher"
|
||||
expect(page).to have_css("li.search-result", count: 1, text: "Ampeln")
|
||||
end
|
||||
|
||||
end
|
2
spec/support/capybara.rb
Normal file
2
spec/support/capybara.rb
Normal file
|
@ -0,0 +1,2 @@
|
|||
require 'capybara/poltergeist'
|
||||
Capybara.javascript_driver = :poltergeist
|
Loading…
Add table
Add a link
Reference in a new issue