Tests for FeedItem model installed and passed
authorNeil Smith <neil.git@njae.me.uk>
Mon, 6 Jan 2014 08:48:30 +0000 (08:48 +0000)
committerNeil Smith <neil.git@njae.me.uk>
Mon, 6 Jan 2014 08:48:30 +0000 (08:48 +0000)
config/application.rb
spec/models/feed_item_spec.rb
spec/spec_helper.rb [new file with mode: 0644]

index 71c84efbcb131ae6b55415a9d513ff2fd53c954a..d277bac0789376df7e1535fd65926cd373fcb7eb 100644 (file)
@@ -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
index 68eddb01ca447d66a427d8de4a93d88f917331f4..f932e431132af1c11af0202f123370822013d542 100644 (file)
@@ -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 (file)
index 0000000..943bc19
--- /dev/null
@@ -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