From cfe2888bea499446ba4d06f18d77a5a29fdd1027 Mon Sep 17 00:00:00 2001 From: Urban Rotnik Date: Thu, 7 Mar 2019 09:05:35 +0100 Subject: [PATCH] Repository columns actions loggin --- .../repository_columns_controller.rb | 18 +++++ .../repository_columns_controller_sepc.rb | 69 +++++++++++++++++++ spec/factories/repositories.rb | 2 +- spec/factories/repository_columns.rb | 8 ++- 4 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 spec/controllers/repository_columns_controller_sepc.rb diff --git a/app/controllers/repository_columns_controller.rb b/app/controllers/repository_columns_controller.rb index a32e9645d..a3772a29c 100644 --- a/app/controllers/repository_columns_controller.rb +++ b/app/controllers/repository_columns_controller.rb @@ -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 diff --git a/spec/controllers/repository_columns_controller_sepc.rb b/spec/controllers/repository_columns_controller_sepc.rb new file mode 100644 index 000000000..6d10df069 --- /dev/null +++ b/spec/controllers/repository_columns_controller_sepc.rb @@ -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 diff --git a/spec/factories/repositories.rb b/spec/factories/repositories.rb index f828fe789..85cf09522 100644 --- a/spec/factories/repositories.rb +++ b/spec/factories/repositories.rb @@ -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 diff --git a/spec/factories/repository_columns.rb b/spec/factories/repository_columns.rb index 7ee369b11..5ea078747 100644 --- a/spec/factories/repository_columns.rb +++ b/spec/factories/repository_columns.rb @@ -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