Skip to content

Commit

Permalink
implements rubocop-rake and rubocop-rspec
Browse files Browse the repository at this point in the history
  • Loading branch information
simonneutert committed Sep 16, 2024
1 parent 67c724b commit b06f2aa
Show file tree
Hide file tree
Showing 56 changed files with 301 additions and 124 deletions.
26 changes: 25 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
inherit_from: .rubocop_todo.yml

require:
- rubocop-rake
- rubocop-rspec

AllCops:
TargetRubyVersion: 2.7
NewCops: enable
Expand Down Expand Up @@ -25,4 +31,22 @@ Layout/LineLength:

Style/MultilineBlockChain:
Exclude:
- spec/**/*
- spec/**/*

RSpec/MultipleExpectations:
Enabled: false

RSpec/FilePath:
Exclude:
- "spec/strava/version_spec.rb"
- "spec/strava/oauth/client_spec.rb"
- "spec/strava/oauth/config_spec.rb"
- "spec/strava/models/activities/ride_spec.rb"
- "spec/strava/models/activities/swim_spec.rb"
- "spec/strava/models/activities/run_spec.rb"

RSpec/ExampleLength:
Enabled: false

RSpec/DescribeClass:
Enabled: false
27 changes: 27 additions & 0 deletions .rubocop_todo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2024-03-30 08:58:43 UTC using RuboCop version 1.56.0.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.

# Offense count: 13
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: SkipBlocks, EnforcedStyle.
# SupportedStyles: described_class, explicit
RSpec/DescribedClass:
Exclude:
- 'spec/strava/models/athlete_spec.rb'
- 'spec/strava/oauth/client_spec.rb'
- 'spec/strava/webhooks/client_spec.rb'

# Offense count: 1
RSpec/MultipleDescribes:
Exclude:
- 'spec/strava/api/client/endpoints/activities/activity_spec.rb'

# Offense count: 5
# Configuration parameters: AllowedGroups.
RSpec/NestedGroups:
Max: 4
2 changes: 1 addition & 1 deletion bin/strava-webhooks
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ require 'dotenv/load'
require 'webrick'
require 'strava-ruby-client'

logger = ::Logger.new($stdout)
logger = Logger.new($stdout)
logger.level = Logger::INFO

client = Strava::Webhooks::Client.new(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#activity_comments', vcr: { cassette_name: 'client/activity_comments' } do
include_context 'API client'
include_context 'with API client'

let(:activity_comments) do
client.activity_comments(id: 3_958_491_750)
Expand All @@ -26,7 +26,7 @@
expect(athlete).to be_a Strava::Models::Athlete
expect(athlete.firstname).to eq 'Dario'
expect(athlete.lastname).to eq 'S.'
expect(athlete.id).to(eq(nil)) # privacy restriction cuts off commenting athlete id
expect(athlete.id).to(be_nil) # privacy restriction cuts off commenting athlete id
end

it 'returns activity comments by id' do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,17 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#activity_kudos', vcr: { cassette_name: 'client/activity_kudos' } do
include_context 'API client'
include_context 'with API client'
it 'returns activity kodoers' do
activity_kudos = client.activity_kudos(id: 3_958_491_750)
expect(activity_kudos).to be_a Enumerable
expect(activity_kudos.count).to eq 70
activity_kudoer = activity_kudos.first
expect(activity_kudoer).to be_a Strava::Models::Athlete
expect(activity_kudoer.id).to eq nil # strava cuts it off due to user privacy
expect(activity_kudoer.username).to be nil
expect(activity_kudoer.id).to be_nil # strava cuts it off due to user privacy
expect(activity_kudoer.username).to be_nil
end

it 'returns activity kodoers by id' do
activity_kudos = client.activity_kudos(3_958_491_750)
expect(activity_kudos).to be_a Enumerable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#activity_laps', vcr: { cassette_name: 'client/activity_laps' } do
include_context 'API client'
include_context 'with API client'
it 'returns activity laps' do
activity_laps = client.activity_laps(id: 1_946_417_534)
expect(activity_laps).to be_a Enumerable
Expand Down Expand Up @@ -31,6 +31,7 @@
expect(lap.split).to eq 1
expect(lap.pace_zone).to eq 2
end

it 'returns activity laps by id' do
activity_laps = client.activity_laps(1_946_417_534)
expect(activity_laps).to be_a Enumerable
Expand Down
25 changes: 13 additions & 12 deletions spec/strava/api/client/endpoints/activities/activity_ride_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#activity', vcr: { cassette_name: 'client/activity_ride' } do
include_context 'API client'
include_context 'with API client'
it 'returns activity' do
activity = client.activity(id: 3_958_491_750)

Expand Down Expand Up @@ -57,11 +57,11 @@
expect(activity.utc_offset).to eq(7_200.0)
expect(activity.start_latlng).to eq [49.197681, 7.883777]
expect(activity.end_latlng).to eq [49.034333, 7.94529]
expect(activity.location_city).to be nil
expect(activity.location_state).to be nil
expect(activity.location_city).to be_nil
expect(activity.location_state).to be_nil
expect(activity.location_country).to eq 'Deutschland'
expect(activity.start_latitude).to be nil
expect(activity.start_longitude).to be nil
expect(activity.start_latitude).to be_nil
expect(activity.start_longitude).to be_nil
expect(activity.achievement_count).to eq 1
expect(activity.kudos_count).to eq 70
expect(activity.comment_count).to eq 3
Expand Down Expand Up @@ -161,7 +161,7 @@
expect(lap.max_heartrate).to eq 175.0
expect(lap.lap_index).to eq 1
expect(lap.split).to eq 1
expect(lap.pace_zone).to be nil
expect(lap.pace_zone).to be_nil

gear = activity.gear
expect(gear).to be_a Strava::Models::Gear
Expand Down Expand Up @@ -209,25 +209,25 @@
expect(segment.country).to eq 'Germany'
expect(segment.start_latlng).to eq [49.198008, 7.883581]
expect(segment.end_latlng).to eq [49.206226, 7.880881]
expect(segment.start_latitude).to be nil
expect(segment.start_longitude).to be nil
expect(segment.end_latitude).to be nil
expect(segment.end_longitude).to be nil
expect(segment.start_latitude).to be_nil
expect(segment.start_longitude).to be_nil
expect(segment.end_latitude).to be_nil
expect(segment.end_longitude).to be_nil
expect(segment.private).to be false
expect(segment.hazardous).to be false
expect(segment.starred).to be false

expect(segment_effort.achievements).to eq []
expect(segment_effort.hidden).to be false
expect(segment_effort.pr_rank).to be nil
expect(segment_effort.pr_rank).to be_nil

expect(activity.photos).to be_a Strava::Models::Photos
photos = activity.photos
expect(photos.use_primary_photo).to be false
expect(photos.count).to eq 1
photo = photos.primary
expect(photo).to be_a Strava::Models::Photo
expect(photo.id).to be nil
expect(photo.id).to be_nil
expect(photo.unique_id).to eq 'F775717B-D1C1-443A-AD99-3D9A80FF11C9'
expect(photo.urls).to eq(
'100' => 'https://dgtzuqphqg23d.cloudfront.net/BO0H-YeNRZOfFhc0PctUheAKchsY2ll4vsagU58MNKg-128x96.jpg',
Expand All @@ -239,6 +239,7 @@

expect(activity.available_zones).to eq %w[heartrate power]
end

it 'returns activity by id' do
activity = client.activity(3_958_491_750)
expect(activity).to be_a Strava::Models::Activity
Expand Down
20 changes: 10 additions & 10 deletions spec/strava/api/client/endpoints/activities/activity_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#activity', vcr: { cassette_name: 'client/activity' } do
include_context 'API client'
include_context 'with API client'
it 'returns activity' do
activity = client.activity(id: 1_946_417_534)

Expand Down Expand Up @@ -69,8 +69,8 @@
expect(activity.utc_offset).to eq(-18_000.0)
expect(activity.start_latlng).to eq [40.6, -74.06]
expect(activity.end_latlng).to eq [40.77, -73.98]
expect(activity.location_city).to be nil
expect(activity.location_state).to be nil
expect(activity.location_city).to be_nil
expect(activity.location_state).to be_nil
expect(activity.location_country).to eq ''
expect(activity.start_latitude).to eq 40.6
expect(activity.start_longitude).to eq(-74.06)
Expand Down Expand Up @@ -231,7 +231,7 @@

expect(segment_effort.achievements).to eq []
expect(segment_effort.hidden).to be false
expect(segment_effort.pr_rank).to eq nil
expect(segment_effort.pr_rank).to be_nil

expect(activity.best_efforts).to be_a Enumerable
best_effort = activity.best_efforts.first
Expand All @@ -244,7 +244,7 @@
expect(photos.count).to eq 9
photo = photos.primary
expect(photo).to be_a Strava::Models::Photo
expect(photo.id).to be nil
expect(photo.id).to be_nil
expect(photo.unique_id).to eq '5e8006d0-8349-40ad-a4ef-72b5e6e82dfe'
expect(photo.urls).to eq(
'100' => 'https://dgtzuqphqg23d.cloudfront.net/mo8thQ4Z5qAylUaRZHOWAR1sp16Bo-pp0ggYQKSWiZE-90x128.jpg',
Expand All @@ -259,13 +259,13 @@
expect(similar_activities.average_speed).to eq 3.2302713030187236
expect(similar_activities.resource_state).to eq 2
expect(similar_activities.effort_count).to eq 1
expect(similar_activities.frequency_milestone).to be nil
expect(similar_activities.frequency_milestone).to be_nil
expect(similar_activities.max_average_speed).to eq 3.2302713030187236
expect(similar_activities.mid_average_speed).to eq 3.2302713030187236
expect(similar_activities.min_average_speed).to eq 3.2302713030187236
expect(similar_activities.mid_speed).to be nil
expect(similar_activities.min_speed).to be nil
expect(similar_activities.speeds).to be nil
expect(similar_activities.mid_speed).to be_nil
expect(similar_activities.min_speed).to be_nil
expect(similar_activities.speeds).to be_nil

trend = similar_activities.trend
expect(trend).to be_a Strava::Models::Trend
Expand Down Expand Up @@ -375,7 +375,7 @@

# uses the cassette: 'client/activity' but with status changed to 429 and ratelimit exceeded
RSpec.describe 'Strava::Api::Client#activity', vcr: { cassette_name: 'client/activity_with_ratelimit_exceeded' } do
include_context 'API client'
include_context 'with API client'
it 'raises Strava::Errors::RatelimitError' do
expect do
client.activity(1_946_417_534)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#activity', vcr: { cassette_name: 'client/activity_with_fake_id' } do
include_context 'API client'
include_context 'with API client'
it 'returns activity' do
activity = client.activity(id: 194_641_753_419_464_175_341_946_417_534)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#activity_zones', vcr: { cassette_name: 'client/activity_zones' } do
include_context 'API client'
include_context 'with API client'
it 'returns activity zones' do
activity_zones = client.activity_zones(id: 1_946_417_534)
expect(activity_zones).to be_a Enumerable
Expand All @@ -23,6 +23,7 @@
expect(activity_zone.points).to eq 452
expect(activity_zone.custom_zones).to be false
end

it 'returns activity zones by id' do
activity_zones = client.activity_zones(1_946_417_534)
expect(activity_zones).to be_a Enumerable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#athlete_activities' do
include_context 'API client'
include_context 'with API client'
describe '#athlete_activities' do
it 'returns athlete activities', vcr: { cassette_name: 'client/athlete_activities' } do
athlete_activities = client.athlete_activities
Expand All @@ -15,12 +15,14 @@
expect(activity.map).to be_a Strava::Models::Map
expect(activity.start_date).to be_a Time
end

it 'returns athlete activities for December 2018 only', vcr: { cassette_name: 'client/athlete_activities_december_2018' } do
athlete_activities = client.athlete_activities(before: Time.at(1_543_683_600), after: Time.at(1_541_088_000))
expect(athlete_activities).to be_a Enumerable
expect(athlete_activities.count).to eq 7
end
end

describe 'paginated #athlete_activities', vcr: { cassette_name: 'client/all_athlete_activities' } do
let(:athlete_activities) do
all = []
Expand All @@ -29,13 +31,15 @@
end
all
end

it 'returns athlete activities' do
expect(athlete_activities).to be_a Enumerable
expect(athlete_activities.count).to eq 40
expect(athlete_activities.all? { |a| a.athlete.is_a?(Strava::Models::Athlete) }).to be true
expect(athlete_activities.map(&:id).uniq.count).to eq athlete_activities.count
end
end

describe 'paginated #athlete_activities by 72', vcr: { cassette_name: 'client/all_athlete_activities_by_72' } do
let(:athlete_activities) do
all = []
Expand All @@ -44,6 +48,7 @@
end
all
end

it 'returns athlete activities' do
expect(athlete_activities).to be_a Enumerable
expect(athlete_activities.count).to eq 130
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#create_activity', vcr: { cassette_name: 'client/create_activity' } do
include_context 'API client'
include_context 'with API client'
it 'creates an activity' do
activity = client.create_activity(
name: 'strava-ruby-client activity',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#update_activity', vcr: { cassette_name: 'client/update_activity' } do
include_context 'API client'
include_context 'with API client'
it 'updates the activity' do
activity = client.update_activity(
id: 1_982_980_795,
Expand All @@ -14,6 +14,7 @@
expect(activity.name).to eq 'updated activity'
expect(activity.description).to eq 'Updated test strava-ruby-client activity.'
end

it 'updates the activity by id' do
activity = client.update_activity(
1_982_980_795,
Expand Down
2 changes: 1 addition & 1 deletion spec/strava/api/client/endpoints/athletes/athlete_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#athlete', vcr: { cassette_name: 'client/athlete' } do
include_context 'API client'
include_context 'with API client'
it 'returns athlete' do
athlete = client.athlete
expect(athlete).to be_a Strava::Models::Athlete
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
require 'spec_helper'

RSpec.describe 'Strava::Api::Client#athlete_stats', vcr: { cassette_name: 'client/athlete_stats' } do
include_context 'API client'
include_context 'with API client'
it 'returns athlete stats' do
athlete_stats = client.athlete_stats(id: 26_462_176)
expect(athlete_stats).to be_a Strava::Models::ActivityStats
expect(athlete_stats.biggest_ride_distance).to eq nil
expect(athlete_stats.biggest_climb_elevation_gain).to eq nil
expect(athlete_stats.biggest_ride_distance).to be_nil
expect(athlete_stats.biggest_climb_elevation_gain).to be_nil
expect(athlete_stats.recent_ride_totals).to be_a Strava::Models::ActivityTotal
expect(athlete_stats.recent_run_totals).to be_a Strava::Models::ActivityTotal
recent_run_totals = athlete_stats.recent_run_totals
Expand All @@ -30,6 +30,7 @@
expect(athlete_stats.all_run_totals).to be_a Strava::Models::ActivityTotal
expect(athlete_stats.all_swim_totals).to be_a Strava::Models::ActivityTotal
end

it 'returns athlete stats by id' do
athlete_stats = client.athlete_stats(26_462_176)
expect(athlete_stats).to be_a Strava::Models::ActivityStats
Expand Down
Loading

0 comments on commit b06f2aa

Please sign in to comment.