Implement CalloutsHelper

This commit is contained in:
Matija Čupić 2018-01-27 17:32:10 +01:00
parent d77181d5b5
commit ec6c5833b6
No known key found for this signature in database
GPG key ID: 4BAF84FFACD2E5DE
2 changed files with 56 additions and 0 deletions

View file

@ -0,0 +1,11 @@
module CalloutsHelper
def show_gke_cluster_integration_callout?(kube_feature_name, project)
!user_dismissed?(kube_feature_name) && project.team.master?(current_user)
end
private
def user_dismissed?(feature_name)
Callout.find_by(user: current_user, feature_name: feature_name).dismissed_state?
end
end

View file

@ -0,0 +1,45 @@
require "spec_helper"
describe CalloutsHelper do
let(:user) { create(:user) }
before do
allow(helper).to receive(:current_user).and_return(user)
end
describe '.show_gke_cluster_integration_callout?' do
let(:project) { create(:project) }
subject { helper.show_gke_cluster_integration_callout?('test_name', project) }
context 'when user has not dismissed' do
before do
allow(helper).to receive(:user_dismissed?).and_return(false)
end
context 'when user is master' do
before do
allow(project).to receive_message_chain(:team, :master?).and_return(true)
end
it { is_expected.to be true }
end
context 'when user is not master' do
before do
allow(project).to receive_message_chain(:team, :master?).and_return(false)
end
it { is_expected.to be false }
end
end
context 'when user dismissed' do
before do
allow(helper).to receive(:user_dismissed?).and_return(true)
end
it { is_expected.to be false }
end
end
end