Sha256: 13e9d9e04417a121a898b30320025f3cf54c67f6a3badcdf4e1a6eb2c782e146

Contents?: true

Size: 1.87 KB

Versions: 2

Compression:

Stored size: 1.87 KB

Contents

require 'spec_helper'

describe "Settings interface" do
  after do
    RailsSettingsUi.settings_displayed_as_select_tag = []
    RailsSettingsUi.ignored_settings = []
  end

  describe "settings display correctly for" do
    it "string" do
      visit "/settings"
      expect(page).to have_selector('input#settings_project_name[type=text]')
    end

    it "long text" do
      visit "/settings"
      page.should have_selector('textarea#settings_description')
    end

    it "boolean" do
      visit "/settings"
      page.should have_selector('input#settings_check_something[type=checkbox]')
    end

    describe "array" do
      it "should display as checkboxes group by default" do
        visit "/settings"
        page.should have_selector('input#settings_mode_manual[type=checkbox]')
        page.should have_selector('input#settings_mode_auto[type=checkbox]')
      end

      it "should display as select if setting defined in RailsSettingsUi.settings_displayed_as_select_tag" do
        RailsSettingsUi.settings_displayed_as_select_tag = [:mode]
        visit "/settings"
        page.should have_selector('select#settings_mode')
      end
    end    
  end

  describe "if setting defined in RailsSettingsUi.ignored_settings" do
    it "should not to be displayed" do
      RailsSettingsUi.ignored_settings = [:mode]
      visit "/settings"
      expect(page).not_to have_selector('select#settings_mode')
    end
  end

  describe "validations" do
    it "should validate numeric setting" do
      visit "/settings"
      fill_in("settings[limit]", with: "test")
      click_on I18n.t("settings.index.save_all")
      expect(page).to have_content("Invalid numeric")
    end

    it "should validate hash setting" do
      visit "/settings"
      fill_in("settings[style]", with: "test")
      click_on I18n.t("settings.index.save_all")
      expect(page).to have_content("Invalid hash")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails-settings-ui-0.1.1 spec/features/settings_spec.rb
rails-settings-ui-0.1.0 spec/features/settings_spec.rb