Make rspec work without rails dependency

This commit is contained in:
Benjamin Neff 2017-04-05 00:43:17 +02:00
parent 1f067c62a7
commit e6e9893c1f
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
8 changed files with 48 additions and 20 deletions

View file

@ -162,11 +162,13 @@ Metrics/BlockLength:
- "spec/**/*.rb" - "spec/**/*.rb"
- "test/dummy/config/**/*.rb" - "test/dummy/config/**/*.rb"
# Rails cops only for controllers
Rails/Date:
Exclude:
- "spec/support/**/*"
Rails/TimeZone: Rails/TimeZone:
Exclude: Exclude:
- "spec/lib/**/*" - "spec/lib/**/*"
# Rails cops only for controllers
Rails/Delegate: Rails/Delegate:
Exclude: Exclude:
- "lib/**/*" - "lib/**/*"

10
Gemfile
View file

@ -17,9 +17,9 @@ end
group :development do group :development do
# code style # code style
gem "pronto", "0.8.2" gem "pronto", "0.8.2", require: false
gem "pronto-rubocop", "0.8.0", require: false gem "pronto-rubocop", "0.8.0", require: false
gem "rubocop", "0.48.0" gem "rubocop", "0.48.0", require: false
# automatic test runs # automatic test runs
gem "guard-rspec", require: false gem "guard-rspec", require: false
@ -56,7 +56,9 @@ group :test do
end end
group :development, :test do group :development, :test do
gem "rake"
# unit tests # unit tests
gem "rspec-core", "~> 3.5.1" gem "rspec", "~> 3.5.0"
gem "rspec-rails", "~> 3.5.1" gem "rspec-rails", "~> 3.5.1"
end end

View file

@ -248,8 +248,9 @@ DEPENDENCIES
pronto-rubocop (= 0.8.0) pronto-rubocop (= 0.8.0)
pry pry
pry-byebug pry-byebug
rake
rspec (~> 3.5.0)
rspec-collection_matchers (~> 1.1.2) rspec-collection_matchers (~> 1.1.2)
rspec-core (~> 3.5.1)
rspec-json_expectations (~> 2.1) rspec-json_expectations (~> 2.1)
rspec-rails (~> 3.5.1) rspec-rails (~> 3.5.1)
rubocop (= 0.48.0) rubocop (= 0.48.0)

View file

@ -13,14 +13,19 @@ RDoc::Task.new(:rdoc) do |rdoc|
rdoc.rdoc_files.include("lib/**/*.rb") rdoc.rdoc_files.include("lib/**/*.rb")
end end
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__) if defined?(::Rails)
load "rails/tasks/engine.rake" APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
load "rails/tasks/engine.rake"
load "rails/tasks/statistics.rake"
load "rails/tasks/statistics.rake" Rails.application.load_tasks
else
require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:spec)
FileList["lib/tasks/**/*.rake"].each {|task| load(task) }
end
Bundler::GemHelper.install_tasks name: "diaspora_federation" Bundler::GemHelper.install_tasks name: "diaspora_federation"
Rails.application.load_tasks
task test: :spec task test: :spec
task default: :test task default: :test

View file

@ -14,7 +14,7 @@ module DiasporaFederation
DiasporaFederation.server_uri = temp DiasporaFederation.server_uri = temp
end end
context "certificate_authorities" do context "certificate_authorities", rails: true do
before do before do
@certificate_authorities = DiasporaFederation.certificate_authorities @certificate_authorities = DiasporaFederation.certificate_authorities
end end

View file

@ -12,12 +12,25 @@ unless ENV["NO_COVERAGE"] == "true"
end end
end end
ENV["RAILS_ENV"] ||= "test" dummy_app_path = File.join(File.dirname(__FILE__), "..", "test", "dummy")
require File.join(File.dirname(__FILE__), "..", "test", "dummy", "config", "environment")
require "rspec/rails" begin
require "webmock/rspec" require "rails" # try to load rails
rescue LoadError
Dir["#{File.join(dummy_app_path, 'app', 'models')}/*.rb"].each {|f| require f }
require File.join(dummy_app_path, "config", "initializers", "diaspora_federation")
else
ENV["RAILS_ENV"] ||= "test"
require File.join(dummy_app_path, "config", "environment")
require "rspec/rails"
end
# test helpers
require "json-schema-rspec"
require "rspec/collection_matchers"
require "rspec/json_expectations" require "rspec/json_expectations"
require "webmock/rspec"
# load factories # load factories
require "factories" require "factories"
@ -39,7 +52,12 @@ RSpec.configure do |config|
expect_config.syntax = :expect expect_config.syntax = :expect
end end
config.filter_run_excluding rails: (Rails::VERSION::MAJOR == 5 ? 4 : 5) if defined?(::Rails)
config.filter_run_excluding rails: (::Rails::VERSION::MAJOR == 5 ? 4 : 5)
else
config.exclude_pattern = "**/controllers/**/*_spec.rb, **/routing/**/*_spec.rb"
config.filter_run_excluding rails: true
end
# whitelist codeclimate.com so test coverage can be reported # whitelist codeclimate.com so test coverage can be reported
config.after(:suite) do config.after(:suite) do

View file

@ -135,7 +135,7 @@ shared_examples "a boolean validator" do
end end
it "must not be an arbitrary string or other object" do it "must not be an arbitrary string or other object" do
["asdf", Time.zone.today, 1234].each do |val| ["asdf", Date.today, 1234].each do |val|
validator = described_class.new(entity_stub(entity, property => val)) validator = described_class.new(entity_stub(entity, property => val))
expect(validator).not_to be_valid expect(validator).not_to be_valid

View file

@ -1,4 +1,4 @@
require "diaspora_federation/discovery" require "diaspora_federation"
ca_file = if File.file?("/etc/ssl/certs/ca-certificates.crt") ca_file = if File.file?("/etc/ssl/certs/ca-certificates.crt")
# For Debian, Ubuntu, Archlinux, Gentoo # For Debian, Ubuntu, Archlinux, Gentoo