Sha256: 31789de64774bb2048877fc4b6d823d92bfeb3b021115f0102e1a820c9ce11e8

Contents?: true

Size: 1.77 KB

Versions: 19

Compression:

Stored size: 1.77 KB

Contents

require 'spec_helper'

describe Betterdocs::JsonParamsRepresenter do
  module MyJsonParams
    include Betterdocs::JsonParamsRepresenter

    param :string do
      description 'Some string'
      types    String
      value    'peter.paul@betterplace.org'
    end

    param :number do
      description 'some integer number'
      types       Integer
      value       666
      required    yes
    end

    param :flag do
      description 'some boolean flag'
      types       [ true, false ]
      value       true
      required    no
    end
  end

  let :object do
    OpenStruct.new.tap do |o|
      o.string = 'some string'
      o.number = 666
      o.flag   = true
      MyJsonParams.apply(o)
    end
  end

  let :docs do
    MyJsonParams.docs
  end

  it 'can be converted into a ActionController::Parameters instance' do
    expect(object.as_json).to be_a HashWithIndifferentAccess
  end

  it 'it can be turned into a hash' do
    expect(object.as_json).to eq("string" => "some string", "number" => 666, "flag" => true)
  end

  it 'it can be turned into json' do
    expect(object.to_json).to eq '{"string":"some string","number":666,"flag":true}'
  end

  it 'can check a parameter hash' do
    skip
  end

  it 'can return all the documented parameters as a hash' do
    expect(docs.params.keys).to eq %i[ string number flag ]
  end

  context '#param' do
    let :param do
      docs.param(:string)
    end

    it 'can return a single documented parameter' do
      expect(param).to be_a Betterdocs::Dsl::JsonParams::Param
      expect(param.description).to eq 'Some string'
      expect(param.value).to eq 'peter.paul@betterplace.org'
      expect(param.types).to eq %w[ string ]
      expect(param.required).to eq true
    end
  end

  it 'foos' do
    puts docs.to_s
    skip
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
betterdocs-0.11.0 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.10.0 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.9.2 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.9.1 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.9.0 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.8.1 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.8.0 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.7.1 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.7.0 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.8 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.7 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.6 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.5 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.4 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.3 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.2 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.1 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.6.0 spec/betterdocs/json_params_representer_spec.rb
betterdocs-0.5.0 spec/betterdocs/json_params_representer_spec.rb