Sha256: a8b7eca60be3e970b49398e3207fc692e083ed0a27c0f86cbf807369fdbfa97f

Contents?: true

Size: 1.19 KB

Versions: 6

Compression:

Stored size: 1.19 KB

Contents

require "spec_helper"

describe Setting do
  describe "validations" do
    subject { create(:setting) }

    it "has a valid fabricator" do
      expect(subject).to be_valid
    end

    it "validates presence of name" do
      subject.name = ""
      expect(subject).not_to be_valid
    end

    it "validates presence of content" do
      subject.content = ""
      expect(subject).not_to be_valid
    end
  end

  describe "#editable" do
    subject { Setting.editable }

    it "includes settings with editable set to true" do
      editable_setting = create(:setting, editable: true)
      expect(subject).to include(editable_setting)
    end

    it "excludes settings without editable set to true" do
      non_editable_setting = create(:setting, editable: false)
      expect(subject).not_to include(non_editable_setting)
    end
  end

  describe "#name" do
    subject { create(:setting, name: "URL Setting").name }

    it "does not change name's case" do
      expect(subject).to eq "URL Setting"
    end
  end

  describe "#key" do
    subject { create(:setting, name: "URL Setting").key }

    it "downcases and replaces underscores with spaces" do
      expect(subject).to eq "url_setting"
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
homesteading_publisher-0.2.4 spec/models/homesteading/settings_spec.rb
homesteading_publisher-0.2.3 spec/models/homesteading/settings_spec.rb
homesteading_publisher-0.2.2 spec/models/homesteading/settings_spec.rb
homesteading_publisher-0.2.1 spec/models/homesteading/settings_spec.rb
homesteading_publisher-0.2.0 spec/models/homesteading/settings_spec.rb
homesteading_publisher-0.1.3 spec/models/homesteading/settings_spec.rb