summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb
blob: 91c27825cce5ed86b05dae1faad4259a5a667acd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Gitlab::Usage::Metrics::KeyPathProcessor do
  describe '#unflatten_default_path' do
    using RSpec::Parameterized::TableSyntax

    where(:key_path, :value, :expected_hash) do
      'uuid'                                     | nil    | { uuid: nil }
      'uuid'                                     | '1111' | { uuid: '1111' }
      'counts.issues'                            | nil    | { counts: { issues: nil } }
      'counts.issues'                            | 100    | { counts: { issues: 100 } }
      'usage_activity_by_stage.verify.ci_builds' | 100    | { usage_activity_by_stage: { verify: { ci_builds: 100 } } }
    end

    with_them do
      subject { described_class.process(key_path, value) }

      it { is_expected.to eq(expected_hash) }
    end
  end
end