Skip to content
Snippets Groups Projects
metric_spec.rb 1.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • require 'spec_helper'
    
    describe Gitlab::Metrics::Metric do
      let(:metric) do
        described_class.new('foo', { number: 10 }, { host: 'localtoast' })
      end
    
      describe '#series' do
        subject { metric.series }
    
        it { is_expected.to eq('foo') }
      end
    
      describe '#values' do
        subject { metric.values }
    
        it { is_expected.to eq({ number: 10 }) }
      end
    
      describe '#tags' do
        subject { metric.tags }
    
        it { is_expected.to eq({ host: 'localtoast' }) }
      end
    
    
      describe '#type' do
        subject { metric.type }
    
        it { is_expected.to eq(:metric) }
      end
    
      describe '#event?' do
        it 'returns false for a regular metric' do
          expect(metric.event?).to eq(false)
        end
    
        it 'returns true for an event metric' do
          expect(metric).to receive(:type).and_return(:event)
    
          expect(metric.event?).to eq(true)
        end
      end
    
    
      describe '#to_hash' do
        it 'returns a Hash' do
          expect(metric.to_hash).to be_an_instance_of(Hash)
        end
    
        describe 'the returned Hash' do
          let(:hash) { metric.to_hash }
    
          it 'includes the series' do
            expect(hash[:series]).to eq('foo')
          end
    
          it 'includes the tags' do
            expect(hash[:tags]).to be_an_instance_of(Hash)
          end
    
          it 'includes the values' do
            expect(hash[:values]).to eq({ number: 10 })
          end
    
          it 'includes the timestamp' do
    
    Douwe Maan's avatar
    Douwe Maan committed
            expect(hash[:timestamp]).to be_an(Integer)