diff --git a/spec/fixtures/files/watched/user@domain.com/2023_January.json b/spec/fixtures/files/watched/user@domain.com/2023_January.json index 1c51592c..237a8e2e 100644 --- a/spec/fixtures/files/watched/user@domain.com/2023_January.json +++ b/spec/fixtures/files/watched/user@domain.com/2023_January.json @@ -1 +1,57 @@ -{"type": "FeatureCollection"} \ No newline at end of file +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 14.3439906, + 50.0506312 + ] + }, + "properties": { + "timestamp": "2023-01-01T08:00:00Z" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 14.3439906, + 50.0506312 + ] + }, + "properties": { + "timestamp": "2023-01-01T10:00:00Z" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 14.42076, + 50.08804 + ] + }, + "properties": { + "timestamp": "2023-01-02T12:00:00Z" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 14.42076, + 50.08804 + ] + }, + "properties": { + "timestamp": "2023-01-02T14:00:00Z" + } + } + ] +} \ No newline at end of file diff --git a/spec/fixtures/files/watched/user@domain.com/Records.json b/spec/fixtures/files/watched/user@domain.com/Records.json index 1c51592c..67be4f16 100644 --- a/spec/fixtures/files/watched/user@domain.com/Records.json +++ b/spec/fixtures/files/watched/user@domain.com/Records.json @@ -1 +1,26 @@ -{"type": "FeatureCollection"} \ No newline at end of file +{ + "locations": [ + { + "latitudeE7": 533690550, + "longitudeE7": 836950010, + "accuracy": 150, + "source": "UNKNOWN", + "timestamp": "2012-12-15T14:21:29.460Z" + }, + { + "latitudeE7": 533563380, + "longitudeE7": 837616500, + "accuracy": 18000, + "source": "UNKNOWN", + "timestamp": "2013-01-04T10:22:43.225Z" + }, + { + "latitudeE7": 533690589, + "longitudeE7": 836951347, + "accuracy": 22, + "source": "WIFI", + "deviceTag": 1184882232, + "timestamp": "2013-03-01T05:17:39.849Z" + } + ] +} \ No newline at end of file diff --git a/spec/fixtures/files/watched/user@domain.com/location-history.json b/spec/fixtures/files/watched/user@domain.com/location-history.json index 1c51592c..88805bc2 100644 --- a/spec/fixtures/files/watched/user@domain.com/location-history.json +++ b/spec/fixtures/files/watched/user@domain.com/location-history.json @@ -1 +1,89 @@ -{"type": "FeatureCollection"} \ No newline at end of file +[ + { + "endTime": "2023-08-27T17:04:26.999-05:00", + "startTime": "2023-08-27T15:48:56.000-05:00", + "visit": { + "hierarchyLevel": "0", + "topCandidate": { + "probability": "0.785181", + "semanticType": "Unknown", + "placeID": "ChIJxxP_Qwb2aIYRTwDNDLkUmD0", + "placeLocation": "geo:27.720022,-97.347951" + }, + "probability": "0.710000" + } + }, + { + "endTime": "2023-08-27T22:00:00.000Z", + "startTime": "2023-08-27T20:00:00.000Z", + "timelinePath": [ + { + "point": "geo:27.720007,-97.348044", + "durationMinutesOffsetFromStartTime": "49" + } + ] + }, + { + "endTime": "2023-09-02T23:25:59.000-06:00", + "startTime": "2023-08-27T14:48:56.000-06:00", + "timelineMemory": { + "destinations": [ + { + "identifier": "ChIJs9KSYYBfaIYRj5AOiZNQ0a4" + }, + { + "identifier": "ChIJw6lCfj2sZ4YRl6q2LNNyojk" + }, + { + "identifier": "ChIJA89FstRIAYcRr9I2aBzR89A" + }, + { + "identifier": "ChIJtWVg4r5DFIcRr0zkOeDPEfY" + } + ], + "distanceFromOriginKms": "1594" + } + }, + { + "endTime": "2023-08-28T00:00:00.000Z", + "startTime": "2023-08-27T22:00:00.000Z", + "timelinePath": [ + { + "point": "geo:27.701123,-97.362988", + "durationMinutesOffsetFromStartTime": "4" + }, + { + "point": "geo:27.701123,-97.362988", + "durationMinutesOffsetFromStartTime": "4" + }, + { + "point": "geo:27.687173,-97.363743", + "durationMinutesOffsetFromStartTime": "7" + }, + { + "point": "geo:27.686129,-97.381865", + "durationMinutesOffsetFromStartTime": "10" + }, + { + "point": "geo:27.686129,-97.381865", + "durationMinutesOffsetFromStartTime": "10" + }, + { + "point": "geo:27.686129,-97.381865", + "durationMinutesOffsetFromStartTime": "108" + }, + { + "point": "geo:27.696576,-97.376949", + "durationMinutesOffsetFromStartTime": "109" + }, + { + "point": "geo:27.709617,-97.375988", + "durationMinutesOffsetFromStartTime": "112" + }, + { + "point": "geo:27.709617,-97.375988", + "durationMinutesOffsetFromStartTime": "112" + } + ] + } +] \ No newline at end of file diff --git a/spec/fixtures/files/watched/user@domain.com/owntracks.rec b/spec/fixtures/files/watched/user@domain.com/owntracks.rec index 5ddc6ef7..473591f7 100644 --- a/spec/fixtures/files/watched/user@domain.com/owntracks.rec +++ b/spec/fixtures/files/watched/user@domain.com/owntracks.rec @@ -1,16 +1,13 @@ -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [102.0, 0.5] - }, - "properties": { - "timestamp": "2023-01-01T00:00:00Z", - "accuracy": 10 - } - } - ] -} \ No newline at end of file +2024-03-01T09:03:09Z * {"bs":2,"p":100.266,"batt":94,"_type":"location","tid":"RO","topic":"owntracks/test/iPhone 12 Pro","alt":36,"lon":13.332,"vel":0,"t":"p","BSSID":"b0:f2:8:45:94:33","SSID":"Home Wifi","conn":"w","vac":4,"acc":10,"tst":1709283789,"lat":52.225,"m":1,"inrids":["5f1d1b"],"inregions":["home"],"_http":true} +2024-03-01T17:46:02Z * {"bs":1,"p":100.28,"batt":94,"_type":"location","tid":"RO","topic":"owntracks/test/iPhone 12 Pro","alt":36,"lon":13.333,"t":"p","vel":0,"BSSID":"b0:f2:8:45:94:33","conn":"w","SSID":"Home Wifi","vac":3,"cog":98,"acc":9,"tst":1709315162,"lat":52.226,"m":1,"inrids":["5f1d1b"],"inregions":["home"],"_http":true} +2024-03-01T18:26:55Z * {"lon":13.334,"acc":5,"wtst":1696359532,"event":"leave","rid":"5f1d1b","desc":"home","topic":"owntracks/test/iPhone 12 Pro/event","lat":52.227,"t":"c","tst":1709317615,"tid":"RO","_type":"transition","_http":true} +2024-03-01T18:26:55Z * {"cog":40,"batt":85,"lon":13.335,"acc":5,"bs":1,"p":100.279,"vel":3,"vac":3,"lat":52.228,"topic":"owntracks/test/iPhone 12 Pro","t":"c","conn":"m","m":1,"tst":1709317615,"alt":36,"_type":"location","tid":"RO","_http":true} +2024-03-01T18:28:30Z * {"cog":38,"batt":85,"lon":13.336,"acc":5,"bs":1,"p":100.349,"vel":3,"vac":3,"lat":52.229,"topic":"owntracks/test/iPhone 12 Pro","t":"v","conn":"m","m":1,"tst":1709317710,"alt":35,"_type":"location","tid":"RO","_http":true} +2024-03-01T18:33:03Z * {"cog":18,"batt":85,"lon":13.337,"acc":5,"bs":1,"p":100.347,"vel":4,"vac":3,"lat":52.230,"topic":"owntracks/test/iPhone 12 Pro","conn":"m","m":1,"tst":1709317983,"alt":36,"_type":"location","tid":"RO","_http":true} +2024-03-01T18:40:11Z * {"cog":43,"batt":85,"lon":13.338,"acc":5,"bs":1,"p":100.348,"vel":6,"vac":3,"lat":52.231,"topic":"owntracks/test/iPhone 12 Pro","conn":"m","m":1,"tst":1709318411,"alt":37,"_type":"location","tid":"RO","_http":true} +2024-03-01T18:42:57Z * {"cog":320,"batt":85,"lon":13.339,"acc":5,"bs":1,"p":100.353,"vel":3,"vac":3,"lat":52.232,"topic":"owntracks/test/iPhone 12 Pro","t":"v","conn":"m","m":1,"tst":1709318577,"alt":37,"_type":"location","tid":"RO","_http":true} +2024-03-01T18:40:08Z lwt {"_type":"lwt","tst":1717459208} +2024-03-01T18:40:09Z waypoints {"_type":"waypoint","desc":"Home","lat":52.232,"lon":13.339,"rad":50,"tst":1717459768} +2024-03-01T18:40:10Z event {"_type":"transition","acc":5,"desc":"Home","event":"enter","lat":52.232,"lon":13.339,"t":"l","tid":"s8","tst":1717460098,"wtst":1717459768} +2024-03-01T18:40:11Z * {"cog":43,"batt":85,"lon":13.338,"acc":5,"bs":1,"p":100.348,"vel":6,"vac":3,"lat":52.231,"topic":"owntracks/test/iPhone 12 Pro","conn":"m","m":1,"tst":1709318411,"alt":37,"_type":"location","tid":"RO","_http":true} +2024-03-01T18:40:11Z * {"cog":43,"batt":85,"lon":13.341,"acc":5,"bs":1,"p":100.348,"created_at":1709318940,"vel":6,"vac":3,"lat":52.234,"topic":"owntracks/test/iPhone 12 Pro","conn":"m","m":1,"tst":1709318411,"alt":37,"_type":"location","tid":"RO","_http":true} diff --git a/spec/services/imports/watcher_spec.rb b/spec/services/imports/watcher_spec.rb index 834e2059..05ed8759 100644 --- a/spec/services/imports/watcher_spec.rb +++ b/spec/services/imports/watcher_spec.rb @@ -14,6 +14,8 @@ RSpec.describe Imports::Watcher do Sidekiq::Testing.inline! end + after { Sidekiq::Testing.fake! } + context 'when there are no files in the watched directory' do it 'does not call ImportJob' do expect(ImportJob).not_to receive(:perform_later)