aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/admin_public_body_category_controller_spec.rb23
-rw-r--r--spec/controllers/admin_public_body_heading_controller_spec.rb11
-rw-r--r--spec/factories/public_body_categories.rb23
-rw-r--r--spec/factories/public_body_category_links.rb13
-rw-r--r--spec/factories/public_body_headings.rb30
5 files changed, 84 insertions, 16 deletions
diff --git a/spec/controllers/admin_public_body_category_controller_spec.rb b/spec/controllers/admin_public_body_category_controller_spec.rb
index a5518e13c..4f921bb9b 100644
--- a/spec/controllers/admin_public_body_category_controller_spec.rb
+++ b/spec/controllers/admin_public_body_category_controller_spec.rb
@@ -60,8 +60,11 @@ describe AdminPublicBodyCategoryController do
context 'when editing a public body category' do
before do
- PublicBodyCategory.load_categories
- @category = PublicBodyCategory.find_by_title("Useless ministries")
+ @category = FactoryGirl.create(:useless_category)
+ I18n.with_locale('es') do
+ @category.title = 'Los useless ministries'
+ @category.save!
+ end
end
render_views
@@ -80,9 +83,16 @@ describe AdminPublicBodyCategoryController do
end
context 'when updating a public body category' do
+
before do
- PublicBodyCategory.load_categories
- @category = PublicBodyCategory.find_by_title("Useless ministries")
+ @heading = FactoryGirl.create(:silly_heading)
+ @category = @heading.public_body_categories.detect do |category|
+ category.title == 'Useless ministries'
+ end
+ I18n.with_locale('es') do
+ @category.title = 'Los useless ministries'
+ @category.save!
+ end
end
render_views
@@ -98,7 +108,7 @@ describe AdminPublicBodyCategoryController do
it "saves edits to a public body category's heading associations" do
@category.public_body_headings.count.should == 1
@category.public_body_headings.first.name.should == "Silly ministries"
- heading = PublicBodyHeading.find_by_name("Popular agencies")
+ heading = FactoryGirl.create(:popular_heading)
post :update, { :id => @category.id,
:public_body_category => { :title => "Renamed" },
:headings => {"heading_#{heading.id}" => heading.id} }
@@ -152,9 +162,6 @@ describe AdminPublicBodyCategoryController do
end
context 'when destroying a public body category' do
- before do
- PublicBodyCategory.load_categories
- end
it "destroys a public body category" do
pbc = PublicBodyCategory.create(:title => "Empty Category", :category_tag => "empty", :description => "-")
diff --git a/spec/controllers/admin_public_body_heading_controller_spec.rb b/spec/controllers/admin_public_body_heading_controller_spec.rb
index 811bd9e74..2a8214703 100644
--- a/spec/controllers/admin_public_body_heading_controller_spec.rb
+++ b/spec/controllers/admin_public_body_heading_controller_spec.rb
@@ -57,8 +57,7 @@ describe AdminPublicBodyHeadingController do
context 'when editing a public body heading' do
before do
- PublicBodyCategory.load_categories
- @heading = PublicBodyHeading.find_by_name("Silly ministries")
+ @heading = FactoryGirl.create(:silly_heading)
end
render_views
@@ -70,8 +69,7 @@ describe AdminPublicBodyHeadingController do
context 'when updating a public body heading' do
before do
- PublicBodyCategory.load_categories
- @heading = PublicBodyHeading.find_by_name("Silly ministries")
+ @heading = FactoryGirl.create(:silly_heading)
end
it "saves edits to a public body heading" do
@@ -109,12 +107,9 @@ describe AdminPublicBodyHeadingController do
end
context 'when destroying a public body heading' do
- before do
- PublicBodyCategory.load_categories
- end
it "does not destroy a public body heading that has associated categories" do
- heading = PublicBodyHeading.find_by_name("Silly ministries")
+ heading = FactoryGirl.create(:silly_heading)
n = PublicBodyHeading.count
post :destroy, { :id => heading.id }
response.should redirect_to(:controller=>'admin_public_body_heading', :action=>'edit', :id => heading.id)
diff --git a/spec/factories/public_body_categories.rb b/spec/factories/public_body_categories.rb
new file mode 100644
index 000000000..a69bf912c
--- /dev/null
+++ b/spec/factories/public_body_categories.rb
@@ -0,0 +1,23 @@
+
+FactoryGirl.define do
+ factory :public_body_categories do
+
+ factory :useless_category do
+ title 'Useless ministries'
+ category_tag 'useless_agency'
+ description "a useless ministry"
+ end
+
+ factory :lonely_category do
+ title 'Lonely agencies'
+ category_tag 'lonely_agency'
+ description "a lonely agency"
+ end
+
+ factory :popular_category do
+ title 'Popular agencies'
+ category_tag 'popular_agency'
+ description "a popular agency"
+ end
+ end
+end
diff --git a/spec/factories/public_body_category_links.rb b/spec/factories/public_body_category_links.rb
new file mode 100644
index 000000000..758dd0c52
--- /dev/null
+++ b/spec/factories/public_body_category_links.rb
@@ -0,0 +1,13 @@
+FactoryGirl.define do
+ factory :public_body_category_link do
+ factory :useless_link do
+ association :public_body_category, :factory => :useless_category
+ end
+ factory :lonely_link do
+ association :public_body_category, :factory => :lonely_category
+ end
+ factory :popular_link do
+ association :public_body_category, :factory => :popular_category
+ end
+ end
+end
diff --git a/spec/factories/public_body_headings.rb b/spec/factories/public_body_headings.rb
new file mode 100644
index 000000000..dda40f207
--- /dev/null
+++ b/spec/factories/public_body_headings.rb
@@ -0,0 +1,30 @@
+FactoryGirl.define do
+ factory :public_body_heading do
+
+ factory :silly_heading do
+ name 'Silly ministries'
+ display_order 0
+ after_create do |heading|
+ FactoryGirl.create(:useless_link, :public_body_heading => heading,
+ :category_display_order => 0)
+ FactoryGirl.create(:lonely_link, :public_body_heading => heading,
+ :category_display_order => 1)
+ end
+ end
+
+ factory :popular_heading do
+ name 'Popular agencies'
+ display_order 1
+ after_create do |heading|
+ FactoryGirl.create(:popular_link, :public_body_heading => heading,
+ :category_display_order => 0)
+ end
+ end
+
+ factory :heading_with_no_categories do
+ name 'Heading with no categories'
+ display_order 2
+ end
+
+ end
+end