Sha256: cb595e61cd9f5163861d658342b47c53a08adc11e72190fe7c575c6ba773185a

Contents?: true

Size: 1.3 KB

Versions: 6

Compression:

Stored size: 1.3 KB

Contents

module Adhoq
  RSpec.describe Execution, :type => :model do
    before do
      storage = Adhoq::Storage::OnTheFly.new
      allow(Adhoq).to receive(:current_storage) { storage }
    end

    let(:execution) do
      query = create(:adhoq_query, query: 'SELECT name, description FROM adhoq_queries')
      query.execute!('xlsx')
    end

    specify { expect(execution.report).to be_on_the_fly }

    specify 'can get report only on execution' do
      expect(execution.report.data).to have_values_in_xlsx_sheet([
        ["name",    "description"],
        ["A query", "Simple simple SELECT"]
      ])

      # Accessable only once
      expect(execution.report.data).to be_nil
    end

    describe '#generate_report!' do
      subject { -> { execution.generate_report! } }

      let(:execution) { Execution.new(query: query, raw_sql: query.query, report_format: 'csv') }

      context 'when execute query successfully' do
        let(:query) { create(:adhoq_query, query: 'SELECT name, description FROM adhoq_queries') }

        it { is_expected.to change { execution.status.to_s }.to('success') }
      end

      context 'when execute query failed' do
        let(:query) { create(:adhoq_query, query: 'INVALID SQL') }

        it { is_expected.to change { execution.status.to_s }.to('failure') }
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
adhoq-1.0.2 spec/models/adhoq/execution_spec.rb
adhoq-1.0.1 spec/models/adhoq/execution_spec.rb
adhoq-1.0.0 spec/models/adhoq/execution_spec.rb
adhoq-0.5.0 spec/models/adhoq/execution_spec.rb
adhoq-0.5.0.beta1 spec/models/adhoq/execution_spec.rb
adhoq-0.4.0 spec/models/adhoq/execution_spec.rb