Sha256: 885c228482697eef8865cd9e0c6c36cf5abbacd54c59126a2d39257a3adc687f

Contents?: true

Size: 1.38 KB

Versions: 4

Compression:

Stored size: 1.38 KB

Contents

require 'spec_helper'

describe Helena::SessionsController do
  routes { Helena::Engine.routes }

  let(:survey) { create :survey }
  let(:version) { survey.versions.create version: 0, question_groups: [build(:question_group)] }
  let(:session) do
    create :session, survey: survey, version: version, answers: [
      build(:string_answer, code: 'string_answer_1', value: 'abc'),
      build(:integer_answer, code: 'integer_answer_1', value: '123')
    ]
  end

  context 'version not active' do
    before { version.update_attribute :active, false }

    it 'raises not found when editing' do
      get :edit, parametrize(token: session.token)
      is_expected.to respond_with :not_found
    end

    it 'raises not found when updating' do
      patch :update, parametrize(token: session.token)
      is_expected.to respond_with :not_found
    end
  end

  it 'return json result of the current session' do
    get :show, parametrize(token: session.view_token).merge(format: :json)

    result = ActiveSupport::JSON.decode(response.body)
    expect(result['answer']['string_answer_1']).to eq 'abc'
    expect(result['answer']['integer_answer_1']).to eq 123
  end

  it 'renders session_report as slim template' do
    session.version.update_attribute :session_report, 'h1 make it slim!'
    get :show, parametrize(token: session.view_token)

    expect(response.body).to eq '<h1>make it slim!</h1>'
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
helena-2.1.0 spec/controllers/helena/sessions_controller_spec.rb
helena-2.0.2 spec/controllers/helena/sessions_controller_spec.rb
helena-2.0.1 spec/controllers/helena/sessions_controller_spec.rb
helena-2.0.0 spec/controllers/helena/sessions_controller_spec.rb