Sha256: e8714ccf352e8d3e2ab4538bd4a7ef55035c8390e31f0fceab5d7c163b66b1d0

Contents?: true

Size: 1.33 KB

Versions: 3

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

shared_examples 'validations on scale questions' do
  before do
    allow_server_side_validation_error
  end
  context 'requires_answer validation' do
    let(:questionnaire) do
      inject_questionnaire "test", <<-END
        question :v_scale, type: :scale, required: true do
          title "Pick one"
          option :a1, value: 1, description: 'Unicorns'
          option :a2, value: 2, description: 'Rainbows'
        end; end_panel
      END
    end

    scenario 'saving a valid choice' do
      select_radio_option 'v_scale', 'a1'
      run_validations
      expect_no_errors
      expect_saved_value 'v_scale', 'a1'
    end

    scenario 'saving with an unknown scale chosen' do
      next if validation_run_location == :client_side

      # TODO: Is this the behaviour we really want?
      select_radio_option 'v_scale', 'aXX'
      run_validations
      expect_no_errors
      expect_saved_value 'v_scale', 'aXX'
    end

    scenario 'saving without a choice' do
      run_validations
      expect_error_on 'v_scale', 'requires_answer'
    end
  end
end

feature 'Client-side validations on scale questions', js: true do
  include ClientSideValidationHelpers
  it_behaves_like "validations on scale questions"
end

# Server side this is exactly the same as select, so we don't test here.

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
quby-5.6.7 spec/features/question_validations/scale_question_spec.rb
quby-5.6.6 spec/features/question_validations/scale_question_spec.rb
quby-5.6.5 spec/features/question_validations/scale_question_spec.rb