Sha256: 166f81071d0726db9a6b908d15d4c7e1448409ece2eb4ba966ebd9f88413e6cb

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

# encoding: utf-8
#
require 'spec_helper'

describe Mode::Sdk::ColumnSet do
  describe '#columns' do
    it 'builds an array of columns from hashes' do
      set = Mode::Sdk::ColumnSet.new([{}, {}])

      expect(set.columns.map(&:class)).to eq([
        Mode::Sdk::Column, Mode::Sdk::Column])
    end
  end

  describe '#validate!' do
    it 'raises error if no columns are provided' do
      set = Mode::Sdk::ColumnSet.new(nil)

      expect {
        set.validate!
      }.to raise_error(Mode::Sdk::ColumnSet::InvalidError) do |exception|
        expect(exception.message).to match(/no columns provided/i)
      end
    end

    it 'raises error if column is invalid' do
      expect_any_instance_of(Mode::Sdk::Column).to receive(
        :validate!).and_raise(Mode::Sdk::Column::InvalidError)

      set = Mode::Sdk::ColumnSet.new([{}])

      expect {
        set.validate!
      }.to raise_error(Mode::Sdk::Column::InvalidError)
    end

    it 'returns true if columns are valid' do
      expect_any_instance_of(Mode::Sdk::Column).to receive(:validate!)

      set = Mode::Sdk::ColumnSet.new([{}])

      expect(set.validate!).to eq(true)
    end
  end

  describe '#to_array' do
    it 'converts columns to attributes' do
      set = Mode::Sdk::ColumnSet.new([{ foo: 'bar' }])

      expect(set.to_array).to eq([{ 'foo' => 'bar' }])
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mode-sdk-0.1.0 spec/lib/mode/sdk/column_set_spec.rb
mode-sdk-0.0.1 spec/lib/mode/sdk/column_set_spec.rb