Sha256: 44afb357017223292caa5435b71ed43d1d1317b5bfef57ebfde901db880bb31d

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

require 'spec_helper'

describe ReportsKit::Reports::FilterWithMeasure do
  subject { described_class.new(filter: filter, measure: measure) }
  let(:filter) { ReportsKit::Reports::Filter.new(properties) }
  let(:measure) { ReportsKit::Reports::Measure.new(key: 'issue', dimensions: %w(repo)) }

  context 'with a datetime filter' do
    let(:properties) { 'opened_at' }

    it 'returns the settings' do
      expect(subject.settings).to eq({ column: 'issues.opened_at' })
    end
  end

  context 'with a belongs_to association filter' do
    let(:properties) { 'repo' }

    it 'returns the settings' do
      expect(subject.settings).to eq({ column: 'issues.repo_id' })
    end
  end

  context 'with a has_many association filter' do
    let(:properties) { 'tags' }

    it 'returns the settings' do
      expect(subject.settings).to eq({ joins: :tags, column: 'tags.id' })
    end
  end

  context 'with a has_many :through association filter' do
    let(:properties) { 'labels' }

    it 'returns the settings' do
      expect(subject.settings).to eq({ joins: :issues_labels, column: 'issues_labels.label_id' })
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reports_kit-0.2.0 spec/reports_kit/reports/filter_with_measure_spec.rb