From 17b1980cebd7ce9f48e3fc01408b3ec6d425822f Mon Sep 17 00:00:00 2001 From: Eugene Burmakin Date: Sat, 28 Sep 2024 17:12:32 +0200 Subject: [PATCH] Add a test for GoogleMaps::RecordsParser --- .../google_maps/records_parser_spec.rb | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/spec/services/google_maps/records_parser_spec.rb b/spec/services/google_maps/records_parser_spec.rb index e568c05d..78ae2329 100644 --- a/spec/services/google_maps/records_parser_spec.rb +++ b/spec/services/google_maps/records_parser_spec.rb @@ -4,5 +4,34 @@ require 'rails_helper' RSpec.describe GoogleMaps::RecordsParser do describe '#call' do + subject(:parser) { described_class.new(import).call(json) } + + let(:import) { create(:import) } + let(:json) do + { + 'latitudeE7' => 123_456_789, + 'longitudeE7' => 123_456_789, + 'timestamp' => Time.zone.now.to_s, + 'altitude' => 0, + 'velocity' => 0 + } + end + + it 'creates a point' do + expect { parser }.to change(Point, :count).by(1) + end + + context 'when point already exists' do + before do + create( + :point, user: import.user, import:, latitude: 12.3456789, longitude: 12.3456789, + timestamp: Time.zone.now.to_i + ) + end + + it 'does not create a point' do + expect { parser }.not_to change(Point, :count) + end + end end end