From 8c5637a19c6090a10519d06f5cd49d05a6e2d0f1 Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Wed, 5 Feb 2020 11:11:06 +0100 Subject: [PATCH 1/2] Add explicit ordering of items for repository columns [SCI-4317] --- app/models/repository_column.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/repository_column.rb b/app/models/repository_column.rb index b6d912065..d19ac254c 100644 --- a/app/models/repository_column.rb +++ b/app/models/repository_column.rb @@ -5,9 +5,9 @@ class RepositoryColumn < ApplicationRecord belongs_to :created_by, foreign_key: :created_by_id, class_name: 'User' has_many :repository_cells, dependent: :destroy has_many :repository_rows, through: :repository_cells - has_many :repository_list_items, dependent: :destroy, index_errors: true - has_many :repository_status_items, dependent: :destroy, index_errors: true - has_many :repository_checklist_items, dependent: :destroy, index_errors: true + has_many :repository_list_items, -> { order('data ASC') }, dependent: :destroy, index_errors: true + has_many :repository_status_items, -> { order('status ASC') }, dependent: :destroy, index_errors: true + has_many :repository_checklist_items, -> { order('data ASC') }, dependent: :destroy, index_errors: true accepts_nested_attributes_for :repository_status_items, allow_destroy: true accepts_nested_attributes_for :repository_list_items, allow_destroy: true From 7d107bf45b842c5e9a7042f8e6f619cb038c824a Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Wed, 5 Feb 2020 11:58:27 +0100 Subject: [PATCH 2/2] Fix tests [SCI-4317] --- app/models/repository_column.rb | 12 +++++++++--- .../api/v1/inventory_list_items_controller_spec.rb | 7 ++++--- .../repository_columns/create_column_service_spec.rb | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/models/repository_column.rb b/app/models/repository_column.rb index d19ac254c..6b9205c15 100644 --- a/app/models/repository_column.rb +++ b/app/models/repository_column.rb @@ -5,9 +5,15 @@ class RepositoryColumn < ApplicationRecord belongs_to :created_by, foreign_key: :created_by_id, class_name: 'User' has_many :repository_cells, dependent: :destroy has_many :repository_rows, through: :repository_cells - has_many :repository_list_items, -> { order('data ASC') }, dependent: :destroy, index_errors: true - has_many :repository_status_items, -> { order('status ASC') }, dependent: :destroy, index_errors: true - has_many :repository_checklist_items, -> { order('data ASC') }, dependent: :destroy, index_errors: true + has_many :repository_list_items, -> { order('data ASC') }, dependent: :destroy, + index_errors: true, + inverse_of: :repository_column + has_many :repository_status_items, -> { order('status ASC') }, dependent: :destroy, + index_errors: true, + inverse_of: :repository_column + has_many :repository_checklist_items, -> { order('data ASC') }, dependent: :destroy, + index_errors: true, + inverse_of: :repository_column accepts_nested_attributes_for :repository_status_items, allow_destroy: true accepts_nested_attributes_for :repository_list_items, allow_destroy: true diff --git a/spec/requests/api/v1/inventory_list_items_controller_spec.rb b/spec/requests/api/v1/inventory_list_items_controller_spec.rb index 0754fdbfa..92907cd87 100644 --- a/spec/requests/api/v1/inventory_list_items_controller_spec.rb +++ b/spec/requests/api/v1/inventory_list_items_controller_spec.rb @@ -265,8 +265,9 @@ RSpec.describe 'Api::V1::InventoryListItemsController', type: :request do it 'Response with correct inventory list item' do hash_body = nil + item_id = @list_column.repository_list_items.first.id put api_v1_team_inventory_column_list_item_path( - id: @list_column.repository_list_items.first.id, + id: item_id, team_id: @teams.first.id, inventory_id: @valid_inventory.id, column_id: @list_column @@ -275,11 +276,11 @@ RSpec.describe 'Api::V1::InventoryListItemsController', type: :request do expect { hash_body = json }.not_to raise_exception expect(hash_body[:data]).to match( ActiveModelSerializers::SerializableResource - .new(@list_column.repository_list_items.first, + .new(@list_column.repository_list_items.find(item_id), serializer: Api::V1::InventoryListItemSerializer) .as_json[:data] ) - expect(@list_column.repository_list_items.first.data).to match('Updated') + expect(@list_column.repository_list_items.find(item_id).data).to match('Updated') end it 'When invalid request, incorrect type' do diff --git a/spec/services/repository_columns/create_column_service_spec.rb b/spec/services/repository_columns/create_column_service_spec.rb index b6c0d3bbe..d1188b000 100644 --- a/spec/services/repository_columns/create_column_service_spec.rb +++ b/spec/services/repository_columns/create_column_service_spec.rb @@ -7,7 +7,7 @@ describe RepositoryColumns::CreateColumnService do let!(:user_team) { create :user_team, :admin, user: user, team: team } let(:team) { create :team } let(:repository) { create :repository, team: team } - let(:column_type) { :RepositoryListValue } + let(:column_type) { :RepositoryStatusValue } let(:params) do { name: 'myrepo',