diff --git a/.rubocop.yml b/.rubocop.yml index 031cff1..75eb94c 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -162,11 +162,13 @@ Metrics/BlockLength: - "spec/**/*.rb" - "test/dummy/config/**/*.rb" +# Rails cops only for controllers +Rails/Date: + Exclude: + - "spec/support/**/*" Rails/TimeZone: Exclude: - "spec/lib/**/*" - -# Rails cops only for controllers Rails/Delegate: Exclude: - "lib/**/*" diff --git a/Gemfile b/Gemfile index 32843bb..d93f671 100644 --- a/Gemfile +++ b/Gemfile @@ -17,9 +17,9 @@ end group :development do # code style - gem "pronto", "0.8.2" - gem "pronto-rubocop", "0.8.0", require: false - gem "rubocop", "0.48.0" + gem "pronto", "0.8.2", require: false + gem "pronto-rubocop", "0.8.0", require: false + gem "rubocop", "0.48.0", require: false # automatic test runs gem "guard-rspec", require: false @@ -56,7 +56,9 @@ group :test do end group :development, :test do + gem "rake" + # unit tests - gem "rspec-core", "~> 3.5.1" + gem "rspec", "~> 3.5.0" gem "rspec-rails", "~> 3.5.1" end diff --git a/Gemfile.lock b/Gemfile.lock index 32c2d99..b05a0e0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -248,8 +248,9 @@ DEPENDENCIES pronto-rubocop (= 0.8.0) pry pry-byebug + rake + rspec (~> 3.5.0) rspec-collection_matchers (~> 1.1.2) - rspec-core (~> 3.5.1) rspec-json_expectations (~> 2.1) rspec-rails (~> 3.5.1) rubocop (= 0.48.0) diff --git a/Rakefile b/Rakefile index 4e62d3b..4088c01 100644 --- a/Rakefile +++ b/Rakefile @@ -13,14 +13,19 @@ RDoc::Task.new(:rdoc) do |rdoc| rdoc.rdoc_files.include("lib/**/*.rb") end -APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__) -load "rails/tasks/engine.rake" +if defined?(::Rails) + 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" -Rails.application.load_tasks - task test: :spec task default: :test diff --git a/spec/lib/diaspora_federation_spec.rb b/spec/lib/diaspora_federation_spec.rb index 3a5b4f0..4451309 100644 --- a/spec/lib/diaspora_federation_spec.rb +++ b/spec/lib/diaspora_federation_spec.rb @@ -14,7 +14,7 @@ module DiasporaFederation DiasporaFederation.server_uri = temp end - context "certificate_authorities" do + context "certificate_authorities", rails: true do before do @certificate_authorities = DiasporaFederation.certificate_authorities end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b7578b7..b4f4ce2 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -12,12 +12,25 @@ unless ENV["NO_COVERAGE"] == "true" end end -ENV["RAILS_ENV"] ||= "test" -require File.join(File.dirname(__FILE__), "..", "test", "dummy", "config", "environment") +dummy_app_path = File.join(File.dirname(__FILE__), "..", "test", "dummy") -require "rspec/rails" -require "webmock/rspec" +begin + 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 "webmock/rspec" # load factories require "factories" @@ -39,7 +52,12 @@ RSpec.configure do |config| expect_config.syntax = :expect 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 config.after(:suite) do diff --git a/spec/support/shared_validator_specs.rb b/spec/support/shared_validator_specs.rb index 1a09655..d539b16 100644 --- a/spec/support/shared_validator_specs.rb +++ b/spec/support/shared_validator_specs.rb @@ -135,7 +135,7 @@ shared_examples "a boolean validator" do end 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)) expect(validator).not_to be_valid diff --git a/test/dummy/config/initializers/diaspora_federation.rb b/test/dummy/config/initializers/diaspora_federation.rb index d94c9a6..430b5e8 100644 --- a/test/dummy/config/initializers/diaspora_federation.rb +++ b/test/dummy/config/initializers/diaspora_federation.rb @@ -1,4 +1,4 @@ -require "diaspora_federation/discovery" +require "diaspora_federation" ca_file = if File.file?("/etc/ssl/certs/ca-certificates.crt") # For Debian, Ubuntu, Archlinux, Gentoo