Sha256: 1c79c8c464d7b7b6954611024b96323c4011320a49bd0418d80ed50f5244cbb9

Contents?: true

Size: 1.67 KB

Versions: 11

Compression:

Stored size: 1.67 KB

Contents

require "rails_helper"

describe Dorsale::SmallData::FiltersController, type: :controller do
  routes { Dorsale::Engine.routes }

  let(:user) { create(:user) }

  before(:each) { sign_in(user) }

  let(:filters) { {key: "value"} }

  before(:each) do
    request.env["HTTP_REFERER"] = "where_i_came_from"
  end

  describe "create" do
    let(:action) {post :create, filters: filters}

    it "should redirect to refferer" do
      action
      expect(response).to redirect_to "where_i_came_from"
    end

    it "should redirect to call back url if defined" do
      post :create, filters: {key: "value"}, back_url: "xxx"
      expect(response).to redirect_to "xxx"
    end

    it "should store the filter in cookie" do
      action
      expect(response.cookies["filters"]).to eq(filters.to_json)
    end

    it "should merge filters with previous filters" do
      action
      post :create, filters: {other_key: "value2"}
      expect(response.cookies["filters"]).to eq({key: "value", other_key: "value2"}.to_json)
    end
  end

  describe "back_url" do
    it "should reset page" do
      post :create, filters: {}, back_url: "/dorsale/flyboy/tasks"
      expect(response).to redirect_to "/dorsale/flyboy/tasks"

      post :create, filters: {}, back_url: "/dorsale/flyboy/tasks?&sort=term&page=3"
      expect(response).to redirect_to "/dorsale/flyboy/tasks?&sort=term"

      post :create, filters: {}, back_url: "/dorsale/flyboy/tasks?&sort=term&page=3&a=b"
      expect(response).to redirect_to "/dorsale/flyboy/tasks?&sort=term&a=b"

      post :create, filters: {}, back_url: "/dorsale/flyboy/tasks?page=3&a=b"
      expect(response).to redirect_to "/dorsale/flyboy/tasks?a=b"
    end
  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
dorsale-2.7.3 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.7.2 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.7.1 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.7.0 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.6.8 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.6.7 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.6.6 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.6.5 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.6.4 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.6.3 spec/controllers/dorsale/small_data/filters_controller_spec.rb
dorsale-2.6.2 spec/controllers/dorsale/small_data/filters_controller_spec.rb