Sha256: 3866cfd47e4301b407ff186bbe8ae9aae86a607d298c59881e0dcf93800a1ff3

Contents?: true

Size: 867 Bytes

Versions: 3

Compression:

Stored size: 867 Bytes

Contents

# frozen_string_literal: true

require 'rails_helper'

RSpec.describe Rating::Rate do
  let!(:object) { build :rating_rate }

  it { expect(object).to be_valid }

  it { is_expected.to belong_to :author }
  it { is_expected.to belong_to :resource }
  it { is_expected.to belong_to :scopeable }

  it { is_expected.to validate_presence_of :author }
  it { is_expected.to validate_presence_of :resource }
  it { is_expected.to validate_presence_of :value }

  it do
    expect(subject).to validate_numericality_of(:value).is_less_than_or_equal_to(100).is_less_than_or_equal_to 100
  end

  it do
    scopes = %i[author_type resource_id resource_type scopeable_id scopeable_type]
    scopes += %i[scope_1 scope_2] if ENV['CONFIG_ENABLED_WITH_EXTRA_SCOPES'] == 'true'

    expect(object).to validate_uniqueness_of(:author_id).scoped_to(scopes).case_insensitive
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rating-0.11.0 spec/models/rate_spec.rb
rating-0.10.0 spec/models/rate_spec.rb
rating-0.9.0 spec/models/rate_spec.rb