Sha256: fa9898602f5872cf400c71b2e6f6bc233f37ebbb02de82cd25bb1644904b5439

Contents?: true

Size: 1.69 KB

Versions: 31

Compression:

Stored size: 1.69 KB

Contents

require 'rails_helper'

describe Releaf::SettingsController do
  login_as_user :user

  describe "GET index" do
    login_as_user :user
    it "lists only settings that not scoped to any object and exists within `Releaf::Settings.registry`" do
      Releaf::Settings.destroy_all
      Releaf::Settings.registry = {}

      Releaf::Settings.create(var: "a", value: "1")
      Releaf::Settings.create(var: "b", value: "2")
      Releaf::Settings.create(var: "c", value: "2")
      Releaf::Settings.create(var: "a", value: "3", thing_type: "User", thing_id: "1")

      Releaf::Settings.register(key: "a", default: "x", description: "some setting")
      Releaf::Settings.register(key: "b", default: "xxxx", description: "some other setting")

      get :index
      expect(assigns(:collection).size).to eq(2)
    end
  end

  describe "PATCH update" do
    login_as_user :user
    it "updates settings object with normalized value" do
      Releaf::Settings.destroy_all
      Releaf::Settings.registry = {}
      Releaf::Settings.register(key: "a", default: false, type: "boolean")

      allow(Releaf::Settings::NormalizeValue).to receive(:call).
        with(value: "1", input_type: :boolean).and_return(88)

      patch :update, {id: Releaf::Settings.first.id, resource: {value: "1"}}
      expect(Releaf::Settings.first.value).to eq(88)
    end
  end

  describe "#features" do
    it "has `index`, `search` and `edit` features" do
      expect(subject.features).to eq([:index, :edit, :search])
    end
  end

  describe "#resources" do
    it "returns only registered settings ordered by `var`" do
      allow(Releaf::Settings).to receive(:registered).and_return(:x)
      expect(subject.resources).to eq(:x)
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
releaf-core-1.1.22 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.21 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.20 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.19 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.18 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.17 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.16 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.15 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.14 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.13 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.12 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.11 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.10 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.9 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.8 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.7 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.6 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.5 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.4 spec/controllers/releaf/settings_controller_spec.rb
releaf-core-1.1.3 spec/controllers/releaf/settings_controller_spec.rb