Sha256: b11baacd5272ba2ecc24ba0b006c2e809aaa9253709b58ccd415032442314908

Contents?: true

Size: 1.98 KB

Versions: 18

Compression:

Stored size: 1.98 KB

Contents

require 'rails_helper'

describe 'inline edit' do
  before do
    user = create :user
    sign_in user
  end

  let(:cosa) { create :cosa }

  describe '#show' do
    subject do
      get '/u/inline/show', params:, headers: { 'Turbo-Frame': turbo_frame_id }
    end

    let(:params) do
      { model: cosa.to_gid.to_param, attribute: :nombre }
    end

    let(:turbo_frame_id) { 'turbo-frame' }

    it do
      subject
      expect(response).to have_http_status(:ok)
      expect(response.body).to include cosa.nombre
    end

    context 'when no turbo frame targetted' do
      let(:turbo_frame_id) { nil }

      it do
        subject
        expect(response).to have_http_status(:bad_request)
      end
    end
  end

  describe '#edit' do
    subject do
      get '/u/inline/edit', params:, headers: { 'Turbo-Frame': turbo_frame_id }
    end

    let(:params) do
      { model: cosa.to_gid.to_param, attribute: :nombre }
    end

    let(:turbo_frame_id) { 'turbo-frame' }

    it do
      subject
      expect(response).to have_http_status(:ok)
      expect(response.body).to include cosa.nombre
    end

    context 'when no turbo frame targetted' do
      let(:turbo_frame_id) { nil }

      it do
        subject
        expect(response).to have_http_status(:bad_request)
      end
    end
  end

  describe '#update' do
    subject do
      patch "/u/cosas/#{cosa.to_param}", params:
    end

    let(:params) do
      {
        inline_attribute: 'nombre',
        cosa: {
          nombre:
        }
      }
    end

    let(:nombre) { 'otro' }

    it do
      subject
      expect(response.body).to include 'turbo-frame'
      expect(response).to have_http_status(:ok)
    end

    it do
      expect { subject }.to change { cosa.reload.nombre }.to 'otro'
    end

    context 'when validation fails' do
      let(:nombre) { nil }

      it do
        subject
        expect(response.body).to include 'turbo-frame'
        expect(response).to have_http_status(:unprocessable_entity)
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
pg_rails-7.6.20 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.19 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.18 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.17 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.16 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.15 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.14 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.13 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.12 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.11 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.10 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.9 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.8 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.7 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.6 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.5 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.4 pg_engine/spec/requests/users/inline_edit_spec.rb
pg_rails-7.6.3 pg_engine/spec/requests/users/inline_edit_spec.rb