60 lines
2.2 KiB
Ruby
60 lines
2.2 KiB
Ruby
# encoding: utf-8
|
|
|
|
require 'spec_helper'
|
|
require Rails.root.join('db', 'post_migrate', '20170803090603_calculate_conv_dev_index_percentages.rb')
|
|
|
|
describe CalculateConvDevIndexPercentages, :migration do
|
|
let(:migration) { described_class.new }
|
|
let!(:conv_dev_index) do
|
|
table(:conversational_development_index_metrics).create!(
|
|
leader_issues: 9.256,
|
|
leader_notes: 0,
|
|
leader_milestones: 16.2456,
|
|
leader_boards: 5.2123,
|
|
leader_merge_requests: 1.2,
|
|
leader_ci_pipelines: 12.1234,
|
|
leader_environments: 3.3333,
|
|
leader_deployments: 1.200,
|
|
leader_projects_prometheus_active: 0.111,
|
|
leader_service_desk_issues: 15.891,
|
|
instance_issues: 1.234,
|
|
instance_notes: 28.123,
|
|
instance_milestones: 0,
|
|
instance_boards: 3.254,
|
|
instance_merge_requests: 0.6,
|
|
instance_ci_pipelines: 2.344,
|
|
instance_environments: 2.2222,
|
|
instance_deployments: 0.771,
|
|
instance_projects_prometheus_active: 0.109,
|
|
instance_service_desk_issues: 13.345,
|
|
percentage_issues: 0,
|
|
percentage_notes: 0,
|
|
percentage_milestones: 0,
|
|
percentage_boards: 0,
|
|
percentage_merge_requests: 0,
|
|
percentage_ci_pipelines: 0,
|
|
percentage_environments: 0,
|
|
percentage_deployments: 0,
|
|
percentage_projects_prometheus_active: 0,
|
|
percentage_service_desk_issues: 0)
|
|
end
|
|
|
|
describe '#up' do
|
|
it 'calculates percentages correctly' do
|
|
migration.up
|
|
conv_dev_index.reload
|
|
|
|
expect(conv_dev_index.percentage_issues).to be_within(0.1).of(13.3)
|
|
expect(conv_dev_index.percentage_notes).to be_zero # leader 0
|
|
expect(conv_dev_index.percentage_milestones).to be_zero # instance 0
|
|
expect(conv_dev_index.percentage_boards).to be_within(0.1).of(62.4)
|
|
expect(conv_dev_index.percentage_merge_requests).to eq(50.0)
|
|
expect(conv_dev_index.percentage_ci_pipelines).to be_within(0.1).of(19.3)
|
|
expect(conv_dev_index.percentage_environments).to be_within(0.1).of(66.7)
|
|
expect(conv_dev_index.percentage_deployments).to be_within(0.1).of(64.2)
|
|
expect(conv_dev_index.percentage_projects_prometheus_active).to be_within(0.1).of(98.2)
|
|
expect(conv_dev_index.percentage_service_desk_issues).to be_within(0.1).of(84.0)
|
|
end
|
|
end
|
|
end
|