diff --git a/Gemfile b/Gemfile index 8ebb0cb6..b946ebbb 100644 --- a/Gemfile +++ b/Gemfile @@ -53,7 +53,7 @@ group :development do # gem 'hanami-scaffold', github: 'davydovanton/hanami-scaffold' - gem 'rack-mini-profiler', require: false + gem 'rack-mini-profiler', '0.9.9', require: false gem 'memory_profiler' end @@ -72,6 +72,7 @@ group :test do gem 'rspec' gem 'rspec-hanami', github: 'davydovanton/rspec-hanami' gem 'capybara' + gem 'capybara-screenshot' gem 'poltergeist' gem 'simplecov', require: false gem 'simplecov-json', require: false diff --git a/Gemfile.lock b/Gemfile.lock index cd2f369a..a73df863 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -54,6 +54,9 @@ GEM rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) + capybara-screenshot (1.0.18) + capybara (>= 1.0, < 3) + launchy claide (1.0.2) claide-plugins (0.9.2) cork @@ -227,6 +230,8 @@ GEM json (2.1.0) jwt (1.5.6) kramdown (1.13.1) + launchy (2.4.3) + addressable (~> 2.3) letsencrypt_heroku (0.2.14) acme-client rainbow @@ -429,6 +434,7 @@ PLATFORMS DEPENDENCIES capybara + capybara-screenshot connection_pool danger danger-rubocop @@ -458,7 +464,7 @@ DEPENDENCIES pry pry-byebug puma - rack-mini-profiler + rack-mini-profiler (= 0.9.9) rake redis (~> 3.2) relative_time diff --git a/config.ru b/config.ru index a4d7c3f2..1db9289e 100644 --- a/config.ru +++ b/config.ru @@ -23,6 +23,7 @@ if Hanami.env?(:development) Rack::MiniProfiler.config.disable_caching = false Rack::MiniProfiler.config.storage = Rack::MiniProfiler::FileStore Rack::MiniProfiler.config.storage_options = { path: './tmp' } + Rack::MiniProfiler.profile_method(Hanami::View::Rendering::Partial, :render) { "Render partial #{@options[:partial]}" } use Rack::MiniProfiler diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7bacf433..fc61b552 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -3,7 +3,7 @@ require 'simplecov' require 'simplecov-json' -require "support/database_cleaner" +require 'support/database_cleaner' SimpleCov.formatters = [ SimpleCov::Formatter::HTMLFormatter, @@ -36,6 +36,8 @@ end require 'rspec/hanami' +require 'capybara-screenshot/rspec' + require 'sidekiq/testing' Sidekiq::Testing.fake! diff --git a/spec/web/features/tasks_spec.rb b/spec/web/features/tasks_spec.rb index 1d53504b..bf311039 100644 --- a/spec/web/features/tasks_spec.rb +++ b/spec/web/features/tasks_spec.rb @@ -47,7 +47,7 @@ def expect_task(task) end -RSpec.describe 'Tasks page', type: :feature, js: true do +RSpec.describe 'Tasks page', type: :feature do include TasksPageHelper @@ -59,30 +59,29 @@ def expect_task(task) let!(:finished_task) { Fabricate.create(:task, user_id: Fabricate.create(:user).id, approved: true, status: 'done', time_estimate: 'more than month', comlexity: 'easy', first_pr: true) } let(:repo) { UserRepository.new } - before(:each) { visit '/tasks' } - it 'status filter in default position "Open"' do + visit '/tasks' expect_task(open_task) end it 'status filter in position "Assigned"' do - find('#task-status-select').select 'Assigned' + visit '/tasks?status=assigned' expect_task(assigned_task) end it 'status filter in position "Closed"' do - find('#task-status-select').select 'Closed' + visit '/tasks?status=closed' expect_task(closed_task) end it 'status filter in position "Finished"' do - find('#task-status-select').select 'Finished' + visit '/tasks?status=done' expect_task(finished_task) end end - describe '#new' do + describe '#new', js: true do before(:each) { visit '/tasks/new' }