2017-04-05 08:29:48 -04:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe Gitlab::UsageData do
|
2017-07-19 10:45:28 -04:00
|
|
|
let(:projects) { create_list(:project, 3) }
|
|
|
|
let!(:board) { create(:board, project: projects[0]) }
|
2017-04-05 08:29:48 -04:00
|
|
|
|
|
|
|
describe '#data' do
|
2017-07-19 10:45:28 -04:00
|
|
|
before do
|
|
|
|
create(:jira_service, project: projects[0])
|
|
|
|
create(:jira_service, project: projects[1])
|
|
|
|
create(:prometheus_service, project: projects[1])
|
|
|
|
create(:service, project: projects[0], type: 'SlackSlashCommandsService', active: true)
|
|
|
|
create(:service, project: projects[1], type: 'SlackService', active: true)
|
|
|
|
create(:service, project: projects[2], type: 'SlackService', active: true)
|
2018-03-27 08:16:50 -04:00
|
|
|
|
|
|
|
gcp_cluster = create(:cluster, :provided_by_gcp)
|
|
|
|
create(:cluster, :provided_by_user)
|
|
|
|
create(:cluster, :provided_by_user, :disabled)
|
|
|
|
create(:clusters_applications_helm, :installed, cluster: gcp_cluster)
|
|
|
|
create(:clusters_applications_ingress, :installed, cluster: gcp_cluster)
|
|
|
|
create(:clusters_applications_prometheus, :installed, cluster: gcp_cluster)
|
|
|
|
create(:clusters_applications_runner, :installed, cluster: gcp_cluster)
|
2017-07-19 10:45:28 -04:00
|
|
|
end
|
|
|
|
|
2017-05-01 11:13:33 -04:00
|
|
|
subject { described_class.data }
|
2017-04-05 08:29:48 -04:00
|
|
|
|
|
|
|
it "gathers usage data" do
|
|
|
|
expect(subject.keys).to match_array(%i(
|
|
|
|
active_user_count
|
|
|
|
counts
|
|
|
|
recorded_at
|
2017-01-18 13:33:33 -05:00
|
|
|
mattermost_enabled
|
2017-04-06 15:16:57 -04:00
|
|
|
edition
|
2017-04-05 08:49:22 -04:00
|
|
|
version
|
2018-06-07 11:01:20 -04:00
|
|
|
installation_type
|
2017-04-05 08:49:22 -04:00
|
|
|
uuid
|
2017-05-09 15:58:22 -04:00
|
|
|
hostname
|
2017-09-15 12:23:56 -04:00
|
|
|
signup
|
|
|
|
ldap
|
|
|
|
gravatar
|
|
|
|
omniauth
|
|
|
|
reply_by_email
|
|
|
|
container_registry
|
|
|
|
gitlab_pages
|
|
|
|
gitlab_shared_runners
|
|
|
|
git
|
|
|
|
database
|
2018-02-13 11:52:00 -05:00
|
|
|
avg_cycle_analytics
|
2017-04-05 08:29:48 -04:00
|
|
|
))
|
|
|
|
end
|
|
|
|
|
|
|
|
it "gathers usage counts" do
|
|
|
|
count_data = subject[:counts]
|
|
|
|
|
|
|
|
expect(count_data[:boards]).to eq(1)
|
2017-07-19 10:45:28 -04:00
|
|
|
expect(count_data[:projects]).to eq(3)
|
2017-04-05 08:29:48 -04:00
|
|
|
|
|
|
|
expect(count_data.keys).to match_array(%i(
|
|
|
|
boards
|
|
|
|
ci_builds
|
2017-06-19 13:56:27 -04:00
|
|
|
ci_internal_pipelines
|
|
|
|
ci_external_pipelines
|
2017-09-08 13:38:02 -04:00
|
|
|
ci_pipeline_config_auto_devops
|
|
|
|
ci_pipeline_config_repository
|
2017-04-05 08:29:48 -04:00
|
|
|
ci_runners
|
|
|
|
ci_triggers
|
2017-05-07 18:35:56 -04:00
|
|
|
ci_pipeline_schedules
|
2017-09-12 06:33:48 -04:00
|
|
|
auto_devops_enabled
|
|
|
|
auto_devops_disabled
|
2017-04-05 08:29:48 -04:00
|
|
|
deploy_keys
|
|
|
|
deployments
|
|
|
|
environments
|
2017-11-01 03:12:44 -04:00
|
|
|
clusters
|
|
|
|
clusters_enabled
|
|
|
|
clusters_disabled
|
2018-03-26 15:54:13 -04:00
|
|
|
clusters_platforms_gke
|
|
|
|
clusters_platforms_user
|
|
|
|
clusters_applications_helm
|
|
|
|
clusters_applications_ingress
|
|
|
|
clusters_applications_prometheus
|
|
|
|
clusters_applications_runner
|
2017-06-15 06:50:45 -04:00
|
|
|
in_review_folder
|
2017-04-05 08:29:48 -04:00
|
|
|
groups
|
|
|
|
issues
|
|
|
|
keys
|
|
|
|
labels
|
|
|
|
lfs_objects
|
|
|
|
merge_requests
|
|
|
|
milestones
|
|
|
|
notes
|
|
|
|
projects
|
2017-07-19 03:07:17 -04:00
|
|
|
projects_imported_from_github
|
2017-07-19 10:45:28 -04:00
|
|
|
projects_jira_active
|
|
|
|
projects_slack_notifications_active
|
|
|
|
projects_slack_slash_active
|
2017-04-06 15:52:08 -04:00
|
|
|
projects_prometheus_active
|
2017-04-05 08:29:48 -04:00
|
|
|
pages_domains
|
|
|
|
protected_branches
|
|
|
|
releases
|
2018-05-03 08:55:14 -04:00
|
|
|
remote_mirrors
|
2017-04-05 08:29:48 -04:00
|
|
|
snippets
|
|
|
|
todos
|
2017-03-09 11:00:25 -05:00
|
|
|
uploads
|
2017-04-05 08:29:48 -04:00
|
|
|
web_hooks
|
|
|
|
))
|
|
|
|
end
|
2017-07-19 10:45:28 -04:00
|
|
|
|
|
|
|
it 'gathers projects data correctly' do
|
|
|
|
count_data = subject[:counts]
|
|
|
|
|
|
|
|
expect(count_data[:projects]).to eq(3)
|
|
|
|
expect(count_data[:projects_prometheus_active]).to eq(1)
|
|
|
|
expect(count_data[:projects_jira_active]).to eq(2)
|
|
|
|
expect(count_data[:projects_slack_notifications_active]).to eq(2)
|
|
|
|
expect(count_data[:projects_slack_slash_active]).to eq(1)
|
2018-03-27 08:16:50 -04:00
|
|
|
|
|
|
|
expect(count_data[:clusters_enabled]).to eq(6)
|
|
|
|
expect(count_data[:clusters_disabled]).to eq(1)
|
|
|
|
expect(count_data[:clusters_platforms_gke]).to eq(1)
|
|
|
|
expect(count_data[:clusters_platforms_user]).to eq(1)
|
|
|
|
expect(count_data[:clusters_applications_helm]).to eq(1)
|
|
|
|
expect(count_data[:clusters_applications_ingress]).to eq(1)
|
|
|
|
expect(count_data[:clusters_applications_prometheus]).to eq(1)
|
|
|
|
expect(count_data[:clusters_applications_runner]).to eq(1)
|
2017-07-19 10:45:28 -04:00
|
|
|
end
|
2017-04-05 08:29:48 -04:00
|
|
|
end
|
|
|
|
|
2017-09-15 12:23:56 -04:00
|
|
|
describe '#features_usage_data_ce' do
|
|
|
|
subject { described_class.features_usage_data_ce }
|
|
|
|
|
|
|
|
it 'gathers feature usage data' do
|
2018-02-02 13:39:55 -05:00
|
|
|
expect(subject[:signup]).to eq(Gitlab::CurrentSettings.allow_signup?)
|
2017-09-15 12:23:56 -04:00
|
|
|
expect(subject[:ldap]).to eq(Gitlab.config.ldap.enabled)
|
2018-02-02 13:39:55 -05:00
|
|
|
expect(subject[:gravatar]).to eq(Gitlab::CurrentSettings.gravatar_enabled?)
|
2017-09-15 12:23:56 -04:00
|
|
|
expect(subject[:omniauth]).to eq(Gitlab.config.omniauth.enabled)
|
|
|
|
expect(subject[:reply_by_email]).to eq(Gitlab::IncomingEmail.enabled?)
|
|
|
|
expect(subject[:container_registry]).to eq(Gitlab.config.registry.enabled)
|
|
|
|
expect(subject[:gitlab_shared_runners]).to eq(Gitlab.config.gitlab_ci.shared_runners_enabled)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe '#components_usage_data' do
|
|
|
|
subject { described_class.components_usage_data }
|
|
|
|
|
|
|
|
it 'gathers components usage data' do
|
|
|
|
expect(subject[:gitlab_pages][:enabled]).to eq(Gitlab.config.pages.enabled)
|
|
|
|
expect(subject[:gitlab_pages][:version]).to eq(Gitlab::Pages::VERSION)
|
|
|
|
expect(subject[:git][:version]).to eq(Gitlab::Git.version)
|
|
|
|
expect(subject[:database][:adapter]).to eq(Gitlab::Database.adapter_name)
|
|
|
|
expect(subject[:database][:version]).to eq(Gitlab::Database.version)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2017-04-05 08:29:48 -04:00
|
|
|
describe '#license_usage_data' do
|
2017-05-01 11:13:33 -04:00
|
|
|
subject { described_class.license_usage_data }
|
2017-04-05 08:29:48 -04:00
|
|
|
|
|
|
|
it "gathers license data" do
|
2018-02-02 13:39:55 -05:00
|
|
|
expect(subject[:uuid]).to eq(Gitlab::CurrentSettings.uuid)
|
2017-04-05 08:29:48 -04:00
|
|
|
expect(subject[:version]).to eq(Gitlab::VERSION)
|
2018-06-07 11:01:20 -04:00
|
|
|
expect(subject[:installation_type]).to eq(Gitlab::INSTALLATION_TYPE)
|
2017-04-05 08:29:48 -04:00
|
|
|
expect(subject[:active_user_count]).to eq(User.active.count)
|
|
|
|
expect(subject[:recorded_at]).to be_a(Time)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|