Files
Dalan/spec/api/v2/admin/metrics_spec.rb
2026-08-13 19:56:46 +03:30

50 lines
1.7 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
describe API::V2::Admin::Metrics do
include_context 'bearer authentication'
let!(:create_admin_permission) do
create :permission,
role: 'admin'
end
let!(:create_member_permission) do
create :permission,
role: 'member'
end
describe 'GET /api/v2/admin/users' do
let(:do_request) { get '/api/v2/admin/metrics', headers: auth_header }
context 'admin user' do
let(:test_user) { create(:user, role: 'admin') }
it 'returns empty hashes if no activity in database' do
do_request
expect(response.status).to eq(200)
expect(response.body).to eq("{\"signups\":{},\"sucessful_logins\":{},\"failed_logins\":{},\"pending_applications\":0}")
result = JSON.parse(response.body)
expect(result['signups']).to eq({})
expect(result['sucessful_logins']).to eq({})
expect(result['failed_logins']).to eq({})
end
context 'with data' do
let!(:login_activity) { create(:activity, action: 'login', result: 'succeed', topic: 'session', user: test_user) }
let!(:signup_activity) { create(:activity, action: 'signup', result: 'succeed', topic: 'account', user: test_user) }
let!(:failed_login_activity) { create(:activity, topic: 'session', action: 'login', result: 'failed', user: test_user) }
it 'returns data as expected' do
do_request
expect(response.status).to eq(200)
expect(JSON.parse(response.body)['failed_logins']).not_to eq({})
expect(JSON.parse(response.body)['sucessful_logins']).not_to eq({})
expect(JSON.parse(response.body)['signups']).not_to eq({})
end
end
end
end
end