diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3ae98ce..f51e757 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,6 +21,12 @@ jobs: - name: Setup Graphviz uses: ts-graphviz/setup-graphviz@v1 - uses: actions/checkout@v3 + - name: Generate lockfile from gemspec + run: bundle lock --add-platform x86_64-linux + - name: Install dependencies + run: bundle install --jobs 4 --retry 3 + - name: Check RuboCop version + run: bundle exec rubocop -V - name: Set up Ruby uses: ruby/setup-ruby@v1 with: diff --git a/.gitignore b/.gitignore index b04a8c8..2cc7067 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ # rspec failure tracking .rspec_status + +Gemfile.lock +.ruby-version \ No newline at end of file diff --git a/Rakefile b/Rakefile index 336115d..d1bd74f 100644 --- a/Rakefile +++ b/Rakefile @@ -11,4 +11,4 @@ require "rubocop/rake_task" RuboCop::RakeTask.new -task default: %i[spec rubocop steep:check] +task default: %i[steep:check spec rubocop] diff --git a/lib/snapbot/rspec/lets.rb b/lib/snapbot/rspec/lets.rb index 8543846..acb2d57 100644 --- a/lib/snapbot/rspec/lets.rb +++ b/lib/snapbot/rspec/lets.rb @@ -16,7 +16,7 @@ def collect def _collect(klass, lets) lets.tap do - next if klass.to_s == "RSpec::ExampleGroups" + next if klass.to_s == "RSpec::ExampleGroups" # stop when we hit the top lets.concat(klass::LetDefinitions.instance_methods(false)) parent_class = klass.to_s.deconstantize.constantize diff --git a/snapbot.gemspec b/snapbot.gemspec index 2a1447d..9b3c4ad 100644 --- a/snapbot.gemspec +++ b/snapbot.gemspec @@ -37,6 +37,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "launchy" spec.add_development_dependency "rbs" + spec.add_development_dependency "rubocop", "~> 1.21" spec.add_development_dependency "sqlite3" spec.add_development_dependency "steep" diff --git a/spec/snapbot/rspec/lets_spec.rb b/spec/snapbot/rspec/lets_spec.rb new file mode 100644 index 0000000..33d9ebb --- /dev/null +++ b/spec/snapbot/rspec/lets_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +RSpec.describe Snapbot::RSpec::Lets do + describe "#collect" do + subject { described_class.new(self).collect } + + context "when there are lets" do + let(:foo) { "bar" } + let(:bar) { "baz" } + + it { is_expected.to match_array %i[foo bar subject] } + end + end + + describe "#collect when there are no lets" do # (cannot use a `subject`, separate describe) + it "returns an empty array" do + expect(described_class.new(self).collect).to be_empty + end + end +end