diff options
Diffstat (limited to 'spec/models/clusters/agent_token_spec.rb')
-rw-r--r-- | spec/models/clusters/agent_token_spec.rb | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/spec/models/clusters/agent_token_spec.rb b/spec/models/clusters/agent_token_spec.rb index bde4798abec..ad9f948224f 100644 --- a/spec/models/clusters/agent_token_spec.rb +++ b/spec/models/clusters/agent_token_spec.rb @@ -39,7 +39,9 @@ RSpec.describe Clusters::AgentToken do end describe '#track_usage', :clean_gitlab_redis_cache do - let(:agent_token) { create(:cluster_agent_token) } + let_it_be(:agent) { create(:cluster_agent) } + + let(:agent_token) { create(:cluster_agent_token, agent: agent) } subject { agent_token.track_usage } @@ -73,6 +75,34 @@ RSpec.describe Clusters::AgentToken do expect_redis_update end end + + context 'agent is inactive' do + before do + allow(agent).to receive(:active?).and_return(false) + end + + it 'creates an activity event' do + expect { subject }.to change { agent.activity_events.count } + + event = agent.activity_events.last + expect(event).to have_attributes( + kind: 'agent_connected', + level: 'info', + recorded_at: agent_token.reload.read_attribute(:last_used_at), + agent_token: agent_token + ) + end + end + + context 'agent is active' do + before do + allow(agent).to receive(:active?).and_return(true) + end + + it 'does not create an activity event' do + expect { subject }.not_to change { agent.activity_events.count } + end + end end def expect_redis_update |