diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb index 61a9f690..2d7feef1 100644 --- a/app/controllers/imports_controller.rb +++ b/app/controllers/imports_controller.rb @@ -35,6 +35,10 @@ class ImportsController < ApplicationController end def create + @import = Import.new + + authorize @import + files_params = params.dig(:import, :files) raw_files = Array(files_params).reject(&:blank?) diff --git a/spec/requests/api/v1/stats_spec.rb b/spec/requests/api/v1/stats_spec.rb index 43e8f142..2e7eb8ae 100644 --- a/spec/requests/api/v1/stats_spec.rb +++ b/spec/requests/api/v1/stats_spec.rb @@ -3,22 +3,39 @@ require 'rails_helper' RSpec.describe 'Api::V1::Stats', type: :request do - let(:user) { create(:user) } - describe 'GET /index' do - let!(:user) { create(:user) } - let!(:stats_in_2020) { create_list(:stat, 12, year: 2020, user:) } - let!(:stats_in_2021) { create_list(:stat, 12, year: 2021, user:) } - let!(:points_in_2020) do + let(:user) { create(:user) } + let(:stats_in_2020) { create_list(:stat, 12, year: 2020, user:) } + let(:stats_in_2021) { create_list(:stat, 12, year: 2021, user:) } + let(:points_in_2020) do (1..85).map do |i| - create(:point, :with_geodata, :reverse_geocoded, timestamp: Time.zone.local(2020, 1, 1).to_i + i.hours, user:) + create(:point, :with_geodata, + timestamp: Time.zone.local(2020, 1, 1).to_i + i.hours, + user:, + country_name: 'Test Country', + city: 'Test City', + reverse_geocoded_at: Time.current) end end - let!(:points_in_2021) do + let(:points_in_2021) do (1..95).map do |i| - create(:point, :with_geodata, :reverse_geocoded, timestamp: Time.zone.local(2021, 1, 1).to_i + i.hours, user:) + create(:point, :with_geodata, + timestamp: Time.zone.local(2021, 1, 1).to_i + i.hours, + user:, + country_name: 'Test Country', + city: 'Test City', + reverse_geocoded_at: Time.current) end end + + before do + # Create all the test data + stats_in_2020 + stats_in_2021 + points_in_2020 + points_in_2021 + end + let(:expected_json) do { totalDistanceKm: (stats_in_2020.map(&:distance).sum + stats_in_2021.map(&:distance).sum) / 1000, @@ -84,3 +101,4 @@ RSpec.describe 'Api::V1::Stats', type: :request do end end end + diff --git a/spec/serializers/point_serializer_spec.rb b/spec/serializers/point_serializer_spec.rb index e202a761..c07e2a90 100644 --- a/spec/serializers/point_serializer_spec.rb +++ b/spec/serializers/point_serializer_spec.rb @@ -34,7 +34,8 @@ RSpec.describe PointSerializer do 'course' => point.course, 'course_accuracy' => point.course_accuracy, 'external_track_id' => point.external_track_id, - 'track_id' => point.track_id + 'track_id' => point.track_id, + 'country_name' => point.read_attribute(:country_name) } end diff --git a/spec/serializers/stats_serializer_spec.rb b/spec/serializers/stats_serializer_spec.rb index eef34e59..7198f48f 100644 --- a/spec/serializers/stats_serializer_spec.rb +++ b/spec/serializers/stats_serializer_spec.rb @@ -30,12 +30,22 @@ RSpec.describe StatsSerializer do let!(:stats_in_2021) { create_list(:stat, 12, year: 2021, user:) } let!(:points_in_2020) do (1..85).map do |i| - create(:point, :with_geodata, :reverse_geocoded, timestamp: Time.zone.local(2020, 1, 1).to_i + i.hours, user:) + create(:point, :with_geodata, + timestamp: Time.zone.local(2020, 1, 1).to_i + i.hours, + user:, + country_name: 'Test Country', + city: 'Test City', + reverse_geocoded_at: Time.current) end end let!(:points_in_2021) do (1..95).map do |i| - create(:point, :with_geodata, :reverse_geocoded, timestamp: Time.zone.local(2021, 1, 1).to_i + i.hours, user:) + create(:point, :with_geodata, + timestamp: Time.zone.local(2021, 1, 1).to_i + i.hours, + user:, + country_name: 'Test Country', + city: 'Test City', + reverse_geocoded_at: Time.current) end end let(:expected_json) do