Sha256: b2688467825cc2e0b011b5ac71c9377718dd340871fe134a6085a7d13c4e472f

Contents?: true

Size: 1.84 KB

Versions: 5

Compression:

Stored size: 1.84 KB

Contents

require_relative '../spec_helper'

describe Dogapi::Client do
  DASHBOARD_ID = '3er-f8j-eus'.freeze
  TITLE = 'My awesome dashboard'.freeze
  WIDGETS = [{
    'definition' => {
      'requests ' => [
        { 'q' => 'avg:system.mem.free{*}' }
      ],
      'title' => 'Average Memory Free',
      'type' => 'timeseries'
    },
    'id' => 1234
  }].freeze
  LAYOUT_TYPE = 'ordered'.freeze
  DESCRIPTION = 'Lorem ipsum'.freeze
  IS_READ_ONLY = true
  NOTIFY_LIST = ['user@domain.com'].freeze
  TEMPLATE_VARIABLES = [{
    'name' => 'host1',
    'prefix' => 'host',
    'default' => 'my-host'
  }].freeze

  REQUIRED_ARGS = {
    title: TITLE,
    widgets: WIDGETS,
    layout_type: LAYOUT_TYPE
  }.freeze

  OPTIONS = {
    description: DESCRIPTION,
    is_read_only: IS_READ_ONLY,
    notify_list: NOTIFY_LIST,
    template_variables: TEMPLATE_VARIABLES
  }
  DASHBOARD_ARGS = REQUIRED_ARGS.values + [OPTIONS]
  DASHBOARD_PAYLOAD = REQUIRED_ARGS.merge(OPTIONS)

  describe '#create_board' do
    it_behaves_like 'an api method',
                    :create_board, DASHBOARD_ARGS,
                    :post, '/dashboard', DASHBOARD_PAYLOAD
  end

  describe '#update_board' do
    it_behaves_like 'an api method',
                    :update_board, [DASHBOARD_ID] + DASHBOARD_ARGS,
                    :put, "/dashboard/#{DASHBOARD_ID}", DASHBOARD_PAYLOAD
  end

  describe '#get_board' do
    it_behaves_like 'an api method',
                    :get_board, [DASHBOARD_ID],
                    :get, "/dashboard/#{DASHBOARD_ID}"
  end

  describe '#get_all_boards' do
    it_behaves_like 'an api method',
                    :get_all_boards, [],
                    :get, '/dashboard'
  end

  describe '#delete_board' do
    it_behaves_like 'an api method',
                    :delete_board, [DASHBOARD_ID],
                    :delete, "/dashboard/#{DASHBOARD_ID}"
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dogapi-1.38.0 spec/integration/dashboard_spec.rb
dogapi-1.37.1 spec/integration/dashboard_spec.rb
dogapi-1.37.0 spec/integration/dashboard_spec.rb
dogapi-1.36.0 spec/integration/dashboard_spec.rb
dogapi-1.35.0 spec/integration/dashboard_spec.rb