File: connection_adapter_shared_examples.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (36 lines) | stat: -rw-r--r-- 1,030 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# frozen_string_literal: true

require 'spec_helper'

RSpec.shared_examples 'connection adapter' do
  subject(:connection) { described_class.new(connection_object) }

  let(:connection_class) { class_double(Class, name: connection_class_name) }
  let(:connection_object) { instance_double(connection_class_name, class: connection_class) }
  let(:adapter) do
    instance_double(
      described_class::CONNECTION_ADAPTERS[connection_class_name],
      current_schema: schema,
      exec_query: query_result,
      select_rows: rows
    )
  end

  before do
    allow(connection).to receive(:connection_adapter).and_return(adapter)
  end

  context 'when using a valid connection adapter' do
    describe '#current_schema' do
      it { expect(connection.current_schema).to eq(schema) }
    end

    describe '#select_rows' do
      it { expect(connection.select_rows(sql, schemas)).to eq(rows) }
    end

    describe '#exec_query' do
      it { expect(connection.exec_query(sql, schemas)).to eq(query_result) }
    end
  end
end