From 8378b72ebacc51e5e090faa527462b801e4c2803 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 19 May 2018 21:05:08 +0200 Subject: Ensure push subscription is immediately removed when application is revoked (#7548) * Ensure push subscription is immediately removed when application is revoked * When token is revoked from app, unsubscribe too --- spec/fabricators/web_push_subscription_fabricator.rb | 2 +- spec/fabricators/web_setting_fabricator.rb | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'spec/fabricators') diff --git a/spec/fabricators/web_push_subscription_fabricator.rb b/spec/fabricators/web_push_subscription_fabricator.rb index 72d11b77c..97f90675d 100644 --- a/spec/fabricators/web_push_subscription_fabricator.rb +++ b/spec/fabricators/web_push_subscription_fabricator.rb @@ -1,4 +1,4 @@ -Fabricator(:web_push_subscription) do +Fabricator(:web_push_subscription, from: Web::PushSubscription) do endpoint Faker::Internet.url key_p256dh Faker::Internet.password key_auth Faker::Internet.password diff --git a/spec/fabricators/web_setting_fabricator.rb b/spec/fabricators/web_setting_fabricator.rb index e5136829b9..369b86bc1 100644 --- a/spec/fabricators/web_setting_fabricator.rb +++ b/spec/fabricators/web_setting_fabricator.rb @@ -1,3 +1,2 @@ -Fabricator('Web::Setting') do - +Fabricator(:web_setting, from: Web::Setting) do end -- cgit From 12e590edd74daf85c6ab0880ef4556ad47068e7a Mon Sep 17 00:00:00 2001 From: Shuhei Kitagawa Date: Tue, 22 May 2018 21:45:10 +0900 Subject: Add tests for report notes controller (#7589) --- .../admin/report_notes_controller_spec.rb | 91 ++++++++++++++++++++++ spec/fabricators/report_note_fabricator.rb | 5 ++ 2 files changed, 96 insertions(+) create mode 100644 spec/controllers/admin/report_notes_controller_spec.rb create mode 100644 spec/fabricators/report_note_fabricator.rb (limited to 'spec/fabricators') diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb new file mode 100644 index 000000000..2c32303fb --- /dev/null +++ b/spec/controllers/admin/report_notes_controller_spec.rb @@ -0,0 +1,91 @@ +require 'rails_helper' + +describe Admin::ReportNotesController do + render_views + + let(:user) { Fabricate(:user, admin: true) } + + before do + sign_in user, scope: :user + end + + describe 'POST #create' do + subject { post :create, params: params } + + let(:report) { Fabricate(:report, action_taken: action_taken, action_taken_by_account_id: account_id) } + + context 'when parameter is valid' do + + context 'when report is unsolved' do + let(:action_taken) { false } + let(:account_id) { nil } + + context 'when create_and_resolve flag is on' do + let(:params) { { report_note: { content: 'test content', report_id: report.id }, create_and_resolve: nil } } + + it 'creates a report note and resolves report' do + expect{ subject }.to change{ ReportNote.count }.by(1) + expect(report.reload).to be_action_taken + expect(subject).to redirect_to admin_reports_path + end + end + + context 'when create_and_resolve flag is false' do + let(:params) { { report_note: { content: 'test content', report_id: report.id } } } + + it 'creates a report note and does not resolve report' do + expect{ subject }.to change{ ReportNote.count }.by(1) + expect(report.reload).not_to be_action_taken + expect(subject).to redirect_to admin_report_path(report) + end + end + end + + context 'when report is resolved' do + let(:action_taken) { true } + let(:account_id) { user.account.id } + + context 'when create_and_unresolve flag is on' do + let(:params) { { report_note: { content: 'test content', report_id: report.id }, create_and_unresolve: nil } } + + it 'creates a report note and unresolves report' do + expect{ subject }.to change{ ReportNote.count }.by(1) + expect(report.reload).not_to be_action_taken + expect(subject).to redirect_to admin_report_path(report) + end + end + + context 'when create_and_unresolve flag is false' do + let(:params) { { report_note: { content: 'test content', report_id: report.id } } } + + it 'creates a report note and does not unresolve report' do + expect{ subject }.to change{ ReportNote.count }.by(1) + expect(report.reload).to be_action_taken + expect(subject).to redirect_to admin_report_path(report) + end + end + end + end + + context 'when parameter is invalid' do + let(:params) { { report_note: { content: '', report_id: report.id } } } + let(:action_taken) { false } + let(:account_id) { nil } + + it 'renders admin/reports/show' do + expect(subject).to render_template 'admin/reports/show' + end + end + end + + describe 'DELETE #destroy' do + subject { delete :destroy, params: { id: report_note.id } } + + let!(:report_note) { Fabricate(:report_note) } + + it 'deletes note' do + expect{ subject }.to change{ ReportNote.count }.by(-1) + expect(subject).to redirect_to admin_report_path(report_note.report) + end + end +end diff --git a/spec/fabricators/report_note_fabricator.rb b/spec/fabricators/report_note_fabricator.rb new file mode 100644 index 000000000..e139efffb --- /dev/null +++ b/spec/fabricators/report_note_fabricator.rb @@ -0,0 +1,5 @@ +Fabricator(:report_note) do + report + account { Fabricate(:account) } + content "Test Content" +end -- cgit