# frozen_string_literal: true require 'rails_helper' releases = [ { type: :appearance_release, obligatory_attribute: :person_name }, { type: :talent_release, obligatory_attribute: :person_name }, { type: :location_release, obligatory_attribute: :name }, { type: :material_release, obligatory_attribute: :name } ] releases.each do |release| RSpec.describe Api::NotesController, type: :controller do let(:current_user) { create(:user, :admin) } describe '#create' do it 'creates a note and returns a created response' do project = create(:project, name: 'first', account_id: current_user.primary_account.id) tested_release = create(release[:type], release[:obligatory_attribute] => 'contract template 1', :project_id => project.id) sign_in_to_api(current_user) post :create, params: { "#{release[:type]}_id": tested_release.id, note: { content: 'blah blah' } } expect(response.status).to eq 201 end end describe '#index' do it 'returns all notes for the release' do project = create(:project, name: 'first', account_id: current_user.primary_account.id) tested_release = create(release[:type], release[:obligatory_attribute] => 'contract template 1', :project_id => project.id) sign_in_to_api(current_user) get :index, params: { "#{release[:type]}_id": tested_release.id } expect(response).to be_successful end end end end