From 5286275b37ab4a323379b6658a9c6d1e7cebfd46 Mon Sep 17 00:00:00 2001 From: Neil Smith <neil.git@njae.me.uk> Date: Mon, 6 Jan 2014 08:48:30 +0000 Subject: [PATCH] Tests for FeedItem model installed and passed --- config/application.rb | 1 + spec/models/feed_item_spec.rb | 52 ++++++++++++++++++++++++++++++++++- spec/spec_helper.rb | 42 ++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 spec/spec_helper.rb diff --git a/config/application.rb b/config/application.rb index 71c84ef..d277bac 100644 --- a/config/application.rb +++ b/config/application.rb @@ -19,5 +19,6 @@ module Feedcatcher # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] # config.i18n.default_locale = :de + config.i18n.enforce_available_locales = false end end diff --git a/spec/models/feed_item_spec.rb b/spec/models/feed_item_spec.rb index 68eddb0..f932e43 100644 --- a/spec/models/feed_item_spec.rb +++ b/spec/models/feed_item_spec.rb @@ -1,5 +1,55 @@ require 'spec_helper' describe FeedItem do - pending "add some examples to (or delete) #{__FILE__}" + before(:each) do + @feed_item = FeedItem.new( + :feed_name => "feed", + :title => "foo", + :description => "bar" + ) + end + + it "is valid with valid attributes" do + expect(@feed_item).to be_valid + end + + it "is not valid without a feed name" do + @feed_item.feed_name = nil + expect(@feed_item).not_to be_valid + end + + it "is not valid without a title" do + @feed_item.title = nil + expect(@feed_item).not_to be_valid + end + + it "is not valid without a description" do + @feed_item.description = nil + expect(@feed_item).not_to be_valid + end + + it "is not valid with an improper feed name" do + @feed_item.feed_name = 'feed name' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'feed%20name' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'feed&name' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'feed%26name' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'feed<name' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'feed%3Cname' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'feed%name' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'index' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'show' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'update' + expect(@feed_item).not_to be_valid + @feed_item.feed_name = 'action' + expect(@feed_item).not_to be_valid + end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..943bc19 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,42 @@ +# This file is copied to spec/ when you run 'rails generate rspec:install' +ENV["RAILS_ENV"] ||= 'test' +require File.expand_path("../../config/environment", __FILE__) +require 'rspec/rails' +require 'rspec/autorun' + +# Requires supporting ruby files with custom matchers and macros, etc, +# in spec/support/ and its subdirectories. +Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } + +# Checks for pending migrations before tests are run. +# If you are not using ActiveRecord, you can remove this line. +ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) + +RSpec.configure do |config| + # ## Mock Framework + # + # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: + # + # config.mock_with :mocha + # config.mock_with :flexmock + # config.mock_with :rr + + # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures + config.fixture_path = "#{::Rails.root}/spec/fixtures" + + # If you're not using ActiveRecord, or you'd prefer not to run each of your + # examples within a transaction, remove the following line or assign false + # instead of true. + config.use_transactional_fixtures = true + + # If true, the base class of anonymous controllers will be inferred + # automatically. This will be the default behavior in future versions of + # rspec-rails. + config.infer_base_class_for_anonymous_controllers = false + + # Run specs in random order to surface order dependencies. If you find an + # order dependency and want to debug it, you can fix the order by providing + # the seed, which is printed after each run. + # --seed 1234 + config.order = "random" +end -- 2.43.0