mirror of
				https://github.com/scinote-eln/scinote-web.git
				synced 2025-10-31 16:49:40 +08:00 
			
		
		
		
	Remove obsolete code, fix tests
This commit is contained in:
		
							parent
							
								
									afc6d12b49
								
							
						
					
					
						commit
						5717e37f2b
					
				
					 4 changed files with 2 additions and 331 deletions
				
			
		|  | @ -46,16 +46,6 @@ class ProjectsController < ApplicationController | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def index_dt | ||||
|     @draw = params[:draw].to_i | ||||
|     respond_to do |format| | ||||
|       format.json do | ||||
|         team = current_team || current_user.teams.first | ||||
|         @projects = ProjectsOverviewService.new(team, current_user, params).projects_datatable | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def sidebar | ||||
|     current_task ||= current_task || nil | ||||
|     current_experiment ||= current_experiment || current_task&.experiment || nil | ||||
|  |  | |||
|  | @ -47,29 +47,6 @@ class ProjectsOverviewService | |||
|     mixed_sort_records(cards) | ||||
|   end | ||||
| 
 | ||||
|   def projects_datatable | ||||
|     table_state = @view_state.state.dig('projects', 'table') | ||||
|     per_page = if @params[:length] && @params[:length] != '-1' | ||||
|                  @params[:length].to_i | ||||
|                else | ||||
|                  10 | ||||
|                end | ||||
|     if table_state['length'] != per_page | ||||
|       table_state['length'] = per_page | ||||
|       table_state['time'] = Time.now.to_i | ||||
|       @view_state.state['projects']['table'] = table_state | ||||
|       @view_state.save! | ||||
|     end | ||||
|     page = @params[:start] ? (@params[:start].to_i / per_page) + 1 : 1 | ||||
|     records = fetch_dt_records | ||||
|     records = records.where(archived: true) if @params[:filter] == 'archived' | ||||
|     records = records.where(archived: false) if @params[:filter] == 'active' | ||||
|     search_value = @params.dig(:search, :value) | ||||
|     records = search(records, search_value) if search_value.present? | ||||
|     records = sort(records).page(page).per(per_page) | ||||
|     records | ||||
|   end | ||||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def fetch_project_records | ||||
|  | @ -221,23 +198,4 @@ class ProjectsOverviewService | |||
|       '7' => 'task_count' | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|   def sort(records) | ||||
|     order_state = @view_state.state['projects']['table']['order'][0] | ||||
|     order = @params[:order]&.values&.first | ||||
|     if order | ||||
|       dir = order[:dir] == 'desc' ? 'DESC' : 'ASC' | ||||
|       column_index = order[:column] | ||||
|     else | ||||
|       dir = 'ASC' | ||||
|       column_index = '1' | ||||
|     end | ||||
|     if order_state != [column_index.to_i, dir.downcase] | ||||
|       @view_state.state['projects']['table']['order'][0] = | ||||
|         [column_index.to_i, dir.downcase] | ||||
|     end | ||||
|     sort_column = sortable_columns[column_index] | ||||
|     sort_column ||= sortable_columns['1'] | ||||
|     records.order("#{sort_column} #{dir}") | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ describe ProjectsController, type: :controller do | |||
|   let!(:team) { create :team, created_by: user } | ||||
|   let!(:user_team) { create :user_team, team: team, user: user } | ||||
|   before do | ||||
|     @projects_overview = ProjectsOverviewService.new(team, user, params) | ||||
|     @projects_overview = ProjectsOverviewService.new(team, user, nil, params) | ||||
|   end | ||||
| 
 | ||||
|   let!(:project_1) do | ||||
|  | @ -73,20 +73,6 @@ describe ProjectsController, type: :controller do | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '#index_dt' do | ||||
|     context 'in JSON format' do | ||||
|       let(:params) do | ||||
|         { start: 1, length: 2, order: { '0': { dir: 'ASC', column: '2' } } } | ||||
|       end | ||||
| 
 | ||||
|       it 'returns success response' do | ||||
|         get :index_dt, params: params, format: :json | ||||
|         expect(response).to have_http_status(:success) | ||||
|         expect(response.media_type).to eq 'application/json' | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'POST create' do | ||||
|     context 'in JSON format' do | ||||
|       let(:params) do | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ describe ProjectsOverviewService do | |||
|   let!(:user) { create :user } | ||||
|   let!(:team) { create :team } | ||||
|   before do | ||||
|     @projects_overview = ProjectsOverviewService.new(team, user, params) | ||||
|     @projects_overview = ProjectsOverviewService.new(team, user, nil, params) | ||||
|   end | ||||
| 
 | ||||
|   let!(:project_1) do | ||||
|  | @ -191,267 +191,4 @@ describe ProjectsOverviewService do | |||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '#projects_datatable' do | ||||
|     let(:params) { {} } | ||||
| 
 | ||||
|     context 'with request parameters { {} }' do | ||||
|       it 'returns projects, sorted by ascending archivation attribute (active' \ | ||||
|          ' first), offset by 0, paginated by 10' do | ||||
|         projects = @projects_overview.projects_datatable | ||||
|         expect(projects.length).to eq 10 | ||||
|         expect(projects.uniq.length).to eq projects.length | ||||
|         expect(projects).not_to include(project_2, project_4, project_5, | ||||
|                                         project_6) | ||||
|         projects1 = projects.reject(&:archived?) | ||||
|                             .select(&:visible?) | ||||
|         expect(projects1.length).to eq 10 | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context "with request parameters { filter: 'active' }" do | ||||
|       let(:params) { super().merge(filter: 'active') } | ||||
| 
 | ||||
|       it 'returns active projects, sorted by ascending archivation ' \ | ||||
|          'attribute (active first), offset by 0, paginated by 10' do | ||||
|         projects = @projects_overview.projects_datatable | ||||
|         expect(projects.length).to eq 10 | ||||
|         expect(projects.uniq.length).to eq projects.length | ||||
|         expect(projects).not_to include(project_2, project_4, project_5, | ||||
|                                         project_6) | ||||
|         projects1 = projects.reject(&:archived?) | ||||
|                             .select(&:visible?) | ||||
|         expect(projects1.length).to eq 10 | ||||
|       end | ||||
| 
 | ||||
|       context 'with request parameters { start: 15 }' do | ||||
|         let(:params) { super().merge(start: 15) } | ||||
| 
 | ||||
|         it 'returns active projects, sorted by ascending archivation ' \ | ||||
|            'attribute (active first), offset by 15, paginated by 10' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 2 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).not_to include(project_1, project_2, project_3, | ||||
|                                           project_4, project_5, project_6) | ||||
|           projects1 = projects.reject(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 2 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'with request parameters { length: 5 }' do | ||||
|         let(:params) { super().merge(length: 5) } | ||||
| 
 | ||||
|         it 'returns active projects, sorted by ascending archivation ' \ | ||||
|            'attribute (active first), offset by 0, paginated by 5' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 5 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).not_to include(project_2, project_4, project_5, | ||||
|                                           project_6) | ||||
|           projects1 = projects.reject(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 5 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context "with request parameters { order: { '0': { dir: 'asc' } } }" do | ||||
|         let(:params) { super().merge(order: { '0': { dir: 'asc' } }) } | ||||
| 
 | ||||
|         it 'returns active projects, sorted by ascending archivation ' \ | ||||
|            'attribute (archived first), offset by 0, paginated by 10' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 10 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).not_to include(project_2, project_4, project_5, | ||||
|                                           project_6) | ||||
|           projects1 = projects.reject(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 10 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context "with request parameters { order: { '0': { dir: 'desc' } } }" do | ||||
|         let(:params) { super().merge(order: { '0': { dir: 'desc' } }) } | ||||
| 
 | ||||
|         it 'returns active projects, sorted by descending ' \ | ||||
|            'archivation attribute (archived first), offset by 0, ' \ | ||||
|            'paginated by 10' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 10 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).not_to include(project_2, project_4, project_5, | ||||
|                                           project_6) | ||||
|           projects1 = projects.reject(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 10 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'with request parameters { start: 13, length: 4 }' do | ||||
|         let(:params) { super().merge(start: 13, length: 4) } | ||||
| 
 | ||||
|         it 'returns active projects, sorted by ascending archivation ' \ | ||||
|            'attribute (active first), offset by 13, paginated by 4' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 0 | ||||
|           expect(projects).not_to include(project_1, project_2, project_3, | ||||
|                                           project_4, project_5, project_6) | ||||
|           projects1 = projects.reject(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 0 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context "with request parameters { start: 1, length: 2, " \ | ||||
|               "order: { '0': { dir: 'asc', column: '2' } } }" do | ||||
|         let(:params) do | ||||
|           super().merge(start: 1, length: 2, | ||||
|                         order: { '0': { dir: 'asc', column: '2' } }) | ||||
|         end | ||||
| 
 | ||||
|         it 'returns archived projects, sorted by ascending name ' \ | ||||
|            'attribute, offset by 1, paginated by 2' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 2 | ||||
|           expect(projects).to eq [project_3, project_1] | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context "with request parameters { start: 3, length: 12, " \ | ||||
|               "order: { '0': { dir: 'desc', column: '2' } } }" do | ||||
|         let(:params) do | ||||
|           super().merge(start: 3, length: 12, | ||||
|                         order: { '0': { dir: 'desc', column: '2' } }) | ||||
|         end | ||||
| 
 | ||||
|         it 'returns archived projects, sorted by descending name ' \ | ||||
|            'attribute, offset by 3, paginated by 12' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 12 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).to eq [project_26, project_24, project_22, | ||||
|                                   project_20, project_18, project_16, | ||||
|                                   project_14, project_12, project_10, | ||||
|                                   project_8, project_1, project_3] | ||||
|           projects1 = projects.reject(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 12 | ||||
|         end | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context "with request parameters { filter: 'archived' }" do | ||||
|       let(:params) { super().merge(filter: 'archived') } | ||||
| 
 | ||||
|       it 'returns archived projects, sorted by ascending archivation ' \ | ||||
|          'attribute (archived first), offset by 0, paginated by 10' do | ||||
|         projects = @projects_overview.projects_datatable | ||||
|         expect(projects.length).to eq 10 | ||||
|         expect(projects.uniq.length).to eq projects.length | ||||
|         expect(projects).not_to include(project_1, project_3, project_6) | ||||
|         projects1 = projects.select(&:archived?) | ||||
|                             .select(&:visible?) | ||||
|         expect(projects1.length).to eq 10 | ||||
|       end | ||||
| 
 | ||||
|       context 'with request parameters { start: 15 }' do | ||||
|         let(:params) { super().merge(start: 15) } | ||||
| 
 | ||||
|         it 'returns archived projects, sorted by ascending archivation ' \ | ||||
|            'attribute (archived first), offset by 15, paginated by 10' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 3 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).not_to include(project_1, project_2, project_3, | ||||
|                                           project_4, project_5, project_6) | ||||
|           projects1 = projects.select(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 3 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'with request parameters { length: 5 }' do | ||||
|         let(:params) { super().merge(length: 5) } | ||||
| 
 | ||||
|         it 'returns archived projects, sorted by ascending archivation ' \ | ||||
|            'attribute (archived first), offset by 0, paginated by 5' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 5 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).not_to include(project_1, project_3, project_6) | ||||
|           projects1 = projects.select(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 5 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context "with request parameters { order: { '0': { dir: 'asc' } } }" do | ||||
|         let(:params) { super().merge(order: { '0': { dir: 'asc' } }) } | ||||
| 
 | ||||
|         it 'returns archived projects, sorted by ascending archivation ' \ | ||||
|            'attribute (archived first), offset by 0, paginated by 10' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 10 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).not_to include(project_1, project_3, project_6) | ||||
|           projects1 = projects.select(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 10 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context "with request parameters { order: { '0': { dir: 'desc' } } }" do | ||||
|         let(:params) { super().merge(order: { '0': { dir: 'desc' } }) } | ||||
| 
 | ||||
|         it 'returns archived projects, sorted by descending ' \ | ||||
|            'archivation attribute (archived first), offset by 0, paginated by' \ | ||||
|            '10' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 10 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).not_to include(project_1, project_3, project_6) | ||||
|           projects1 = projects.select(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 10 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'with request parameters { start: 13, length: 4 }' do | ||||
|         let(:params) { super().merge(start: 13, length: 4) } | ||||
| 
 | ||||
|         it 'returns archived projects, sorted by ascending archivation ' \ | ||||
|            'attribute (archived first), offset by 13, paginated by 4' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 1 | ||||
|           expect(projects).not_to include(project_1, project_2, project_3, | ||||
|                                           project_4, project_5, project_6) | ||||
|           projects1 = projects.select(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 1 | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context "with request parameters { start: 7, length: 6, " \ | ||||
|               "order: { '0': { dir: 'desc', column: '3' } } }" do | ||||
|         let(:params) do | ||||
|           super().merge(start: 7, length: 6, | ||||
|                         order: { '0': { dir: 'desc', column: '3' } }) | ||||
|         end | ||||
| 
 | ||||
|         it 'returns archived projects, sorted by descending creation ' \ | ||||
|            'time attribute, offset by 7, paginated by 6' do | ||||
|           projects = @projects_overview.projects_datatable | ||||
|           expect(projects.length).to eq 6 | ||||
|           expect(projects.uniq.length).to eq projects.length | ||||
|           expect(projects).to eq [project_13, project_11, project_9, | ||||
|                                   project_7, project_5, project_4] | ||||
|           projects1 = projects.select(&:archived?) | ||||
|                               .select(&:visible?) | ||||
|           expect(projects1.length).to eq 6 | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue