Add coverage for custom filters (#30347)
parent
00cf8d3748
commit
0a2110b9af
|
@ -0,0 +1,72 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe 'Filters' do
|
||||||
|
let(:user) { Fabricate(:user) }
|
||||||
|
let(:filter_title) { 'Filter of fun and games' }
|
||||||
|
|
||||||
|
before { sign_in(user) }
|
||||||
|
|
||||||
|
describe 'Creating a filter' do
|
||||||
|
it 'Populates a new filter from form' do
|
||||||
|
navigate_to_filters
|
||||||
|
|
||||||
|
click_on I18n.t('filters.new.title')
|
||||||
|
fill_in_filter_form
|
||||||
|
expect(page).to have_content(filter_title)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'Editing an existing filter' do
|
||||||
|
let(:new_title) { 'Change title value' }
|
||||||
|
|
||||||
|
before { Fabricate :custom_filter, account: user.account, title: filter_title }
|
||||||
|
|
||||||
|
it 'Updates the saved filter' do
|
||||||
|
navigate_to_filters
|
||||||
|
|
||||||
|
click_on filter_title
|
||||||
|
|
||||||
|
fill_in filter_title_field, with: new_title
|
||||||
|
click_on I18n.t('generic.save_changes')
|
||||||
|
|
||||||
|
expect(page).to have_content(new_title)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'Destroying an existing filter' do
|
||||||
|
before { Fabricate :custom_filter, account: user.account, title: filter_title }
|
||||||
|
|
||||||
|
it 'Deletes the filter' do
|
||||||
|
navigate_to_filters
|
||||||
|
|
||||||
|
expect(page).to have_content filter_title
|
||||||
|
expect do
|
||||||
|
click_on I18n.t('filters.index.delete')
|
||||||
|
end.to change(CustomFilter, :count).by(-1)
|
||||||
|
|
||||||
|
expect(page).to_not have_content(filter_title)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def navigate_to_filters
|
||||||
|
visit settings_path
|
||||||
|
|
||||||
|
click_on I18n.t('filters.index.title')
|
||||||
|
expect(page).to have_content I18n.t('filters.index.title')
|
||||||
|
end
|
||||||
|
|
||||||
|
def fill_in_filter_form
|
||||||
|
fill_in filter_title_field, with: filter_title
|
||||||
|
check I18n.t('filters.contexts.home')
|
||||||
|
within('.custom_filter_keywords_keyword') do
|
||||||
|
fill_in with: 'Keyword'
|
||||||
|
end
|
||||||
|
click_on I18n.t('filters.new.save')
|
||||||
|
end
|
||||||
|
|
||||||
|
def filter_title_field
|
||||||
|
I18n.t('simple_form.labels.defaults.title')
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue