Repository columns actions loggin

This commit is contained in:
Urban Rotnik 2019-03-07 09:05:35 +01:00
parent 32422c00eb
commit cfe2888bea
4 changed files with 93 additions and 4 deletions

View file

@ -36,6 +36,8 @@ class RepositoryColumnsController < ApplicationController
respond_to do |format|
format.json do
if @repository_column.save
log_activity(:create_column_inventory)
if generate_repository_list_items(params[:list_items])
render json: {
id: @repository_column.id,
@ -87,6 +89,8 @@ class RepositoryColumnsController < ApplicationController
format.json do
@repository_column.update_attributes(repository_column_params)
if @repository_column.save
log_activity(:edit_column_inventory)
if update_repository_list_items(params[:list_items])
render json: {
id: @repository_column.id,
@ -126,6 +130,8 @@ class RepositoryColumnsController < ApplicationController
def destroy
column_id = @repository_column.id
column_name = @repository_column.name
log_activity(:delete_column_inventory) # Should we move this call somewhere?
respond_to do |format|
format.json do
if @repository_column.destroy
@ -273,4 +279,16 @@ class RepositoryColumnsController < ApplicationController
end
success
end
def log_activity(type_of)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @repository,
team: current_team,
message_items: {
repository_column: @repository_column.id,
repository: @repository.id
})
end
end

View file

@ -0,0 +1,69 @@
# frozen_string_literal: true
require 'rails_helper'
describe RepositoryColumnsController, type: :controller do
login_user
let(:user) { subject.current_user }
let(:team) { create :team, created_by: user }
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:repository) { create :repository, created_by: user, team: team }
let(:repository_column) do
create :repository_column, created_by: user, repository: repository
end
describe 'POST create' do
let(:params) do
{
repository_id: repository.id,
repository_column: {
name: 'repository_column',
data_type: 'RepositoryTextValue'
}
}
end
it 'calls create activity for creating inventory column' do
expect(Activities::CreateActivityService)
.to(receive(:call)
.with(hash_including(activity_type: :create_column_inventory)))
post :create, params: params, format: :json
end
end
describe 'PUT update' do
let(:params) do
{
id: repository_column.id,
repository_id: repository.id,
repository_column: {
name: 'new_repository_column'
}
}
end
it 'calls create activity for editing intentory column' do
expect(Activities::CreateActivityService)
.to(receive(:call)
.with(hash_including(activity_type: :edit_column_inventory)))
post :update, params: params, format: :json
end
end
describe 'DELETE destroy' do
let(:params) do
{ repository_id: repository.id, id: repository_column.id }
end
it 'calls create activity for deleting inventory items' do
expect(Activities::CreateActivityService)
.to(receive(:call)
.with(hash_including(activity_type: :delete_column_inventory)))
delete :destroy, params: params, format: :json
end
end
end

View file

@ -2,7 +2,7 @@
FactoryBot.define do
factory :repository do
sequence(:name) { |n| "My project-#{n}" }
sequence(:name) { |n| "My repository-#{n}" }
created_by { create :user }
team
end

View file

@ -1,8 +1,10 @@
# frozen_string_literal: true
FactoryBot.define do
factory :repository_column do
name 'My Column'
created_by { User.first || create(:user) }
repository { Repository.first || create(:repository) }
sequence(:name) { |n| "My column-#{n}" }
created_by { create :user }
repository
data_type :RepositoryTextValue
end
end