50 lines
1.7 KiB
Ruby
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
|