Sha256: edd91123d1ebff571e62d059e64280b62fbf58f1fe4e9aaeb1144215adcb5382

Contents?: true

Size: 1.77 KB

Versions: 8

Compression:

Stored size: 1.77 KB

Contents

RSpec.describe Flipper::UI::Actions::Features do
  let(:token) do
    if Rack::Protection::AuthenticityToken.respond_to?(:random_token)
      Rack::Protection::AuthenticityToken.random_token
    else
      'a'
    end
  end

  let(:session) do
    { :csrf => token, 'csrf' => token, '_csrf_token' => token }
  end

  describe "POST /settings/export" do
    before do
      flipper.enable_percentage_of_actors :search, 10
      flipper.enable_percentage_of_time :search, 15
      flipper.enable_actor :search, Flipper::Actor.new('User;1')
      flipper.enable_actor :search, Flipper::Actor.new('User;100')
      flipper.enable_group :search, :admins
      flipper.enable_group :search, :employees
      flipper.enable :plausible
      flipper.disable :google_analytics

      post '/settings/export',
        {'authenticity_token' => token},
        'rack.session' => session
    end

    it 'responds with success' do
      expect(last_response.status).to be(200)
    end

    it 'sets content disposition' do
      expect(last_response.headers['Content-Disposition']).to match(/Attachment;filename=flipper_memory_[0-9]*\.json/)
    end

    it 'renders json' do
      data = JSON.parse(last_response.body)
      expect(last_response.headers['Content-Type']).to eq('application/json')
      expect(data['version']).to eq(1)
      expect(data['features']).to eq({
        "search"=> {"boolean"=>nil, "groups"=>["admins", "employees"], "actors"=>["User;1", "User;100"], "percentage_of_actors"=>"10", "percentage_of_time"=>"15"},
        "plausible"=> {"boolean"=>"true", "groups"=>[], "actors"=>[], "percentage_of_actors"=>nil, "percentage_of_time"=>nil},
        "google_analytics"=> {"boolean"=>nil, "groups"=>[], "actors"=>[], "percentage_of_actors"=>nil, "percentage_of_time"=>nil},
      })
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
flipper-ui-1.0.0 spec/flipper/ui/actions/export_spec.rb
flipper-ui-1.0.0.pre spec/flipper/ui/actions/export_spec.rb
flipper-ui-0.28.3 spec/flipper/ui/actions/export_spec.rb
flipper-ui-0.28.2 spec/flipper/ui/actions/export_spec.rb
flipper-ui-0.28.1 spec/flipper/ui/actions/export_spec.rb
flipper-ui-0.28.0 spec/flipper/ui/actions/export_spec.rb
flipper-ui-0.27.1 spec/flipper/ui/actions/export_spec.rb
flipper-ui-0.27.0 spec/flipper/ui/actions/export_spec.rb