Sha256: 2bf7f1888b283c6f8f65310101ae0c716b70a6bcef30f7ad52b421665b8e05c4

Contents?: true

Size: 1.62 KB

Versions: 2

Compression:

Stored size: 1.62 KB

Contents

require 'spec_helper'
require 'kintone/command/apps'

describe Kintone::Command::Apps do
  let(:target) { Kintone::Command::Apps.new(api) }
  let(:api) { Kintone::Api.new('example.cybozu.com', 'Administrator', 'cybozu') }

  describe '#get' do
    subject { target.get(params) }

    context '引数にHashのデータを指定した場合' do
      before(:each) do
        stub_request(
          :get,
          'https://example.cybozu.com/k/v1/apps.json'
        )
          .with(query: query)
          .to_return(body: { apps: [] }.to_json, status: 200,
                     headers: { 'Content-type' => 'application/json' })
      end

      where(:params, :query) do
        [
          [{ ids: [100, 200] }, 'ids[0]=100&ids[1]=200'],
          [{ ids: [] }, nil],
          [{ ids: nil }, 'ids'],
          [{ codes: ['AAA', 'BBB'] }, 'codes[0]=AAA&codes[1]=BBB'],
          [{ codes: [] }, nil],
          [{ codes: nil }, 'codes'],
          [{ name: '名前' }, 'name=名前'],
          [{ name: '' }, 'name='],
          [{ name: nil }, 'name'],
          [{ spaceIds: [100, 200] }, 'spaceIds[0]=100&spaceIds[1]=200'],
          [{ spaceIds: [] }, nil],
          [{ spaceIds: nil }, 'spaceIds'],
          [{ limit: 100 }, 'limit=100'],
          [{ limit: nil }, 'limit'],
          [{ offset: 100 }, 'offset=100'],
          [{ offset: nil }, 'offset'],
          [{}, nil]
        ]
      end

      with_them do
        it { is_expected.to be_a_kind_of(Array) }
      end
    end

    context '引数にnilを指定した場合' do
      let(:params) { nil }

      it { expect { subject }.to raise_error NoMethodError }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kintone-0.1.4 spec/kintone/command/apps_spec.rb
kintone-0.1.3 spec/kintone/command/apps_spec.rb