Skip to content

Build updates #2407

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Nov 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: RSpec CI
on:
push:
branches:
- 'main'
- '*-maintenance'
- '*-dev'
pull_request:
branches:
- '*'
jobs:
test:
name: 'Ruby: ${{ matrix.ruby }}, Rails: ${{ matrix.env.RAILS_VERSION }}'
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
include:
# Rails 6.1 builds >= 2.5
- ruby: ruby-3.0.0-preview1
allow_failure: true
env:
RAILS_VERSION: 'master'
- ruby: 2.7.1
env:
RAILS_VERSION: 'master'
- ruby: 2.6.6
env:
RAILS_VERSION: 'master'
- ruby: 2.5.8
env:
RAILS_VERSION: 'master'

# Rails 6.0 builds >= 2.5.0
- ruby: 3.0.0-preview1
env:
RAILS_VERSION: '~> 6.0.0'
- ruby: 2.7
env:
RAILS_VERSION: '~> 6.0.0'
- ruby: 2.6
env:
RAILS_VERSION: '~> 6.0.0'
- ruby: 2.5
env:
RAILS_VERSION: '~> 6.0.0'
# Rails 5.2 builds >= 2.2.2
- ruby: 2.6.6
env:
RAILS_VERSION: '~> 5.2.0'
- ruby: 2.5.8
env:
RAILS_VERSION: '~> 5.2.0'
- ruby: 2.4.10
env:
RAILS_VERSION: '~> 5.2.0'
- ruby: 2.3.8
env:
RAILS_VERSION: '~> 5.2.0'
- ruby: 2.2.10
allow_failure: true
env:
RAILS_VERSION: '~> 5.2.0'
- ruby: 2.2.10
env:
RAILS_VERSION: '5-2-stable'
# Rails 5.1 Builds >= 2.2.2
- ruby: 2.6.6
env:
RAILS_VERSION: '~> 5.1.0'
- ruby: 2.5.8
env:
RAILS_VERSION: '~> 5.1.0'
- ruby: 2.4.10
env:
RAILS_VERSION: '~> 5.1.0'
- ruby: 2.3.8
env:
RAILS_VERSION: '~> 5.1.0'
- ruby: 2.2.10
env:
RAILS_VERSION: '~> 5.1.0'
# Rails 5.0 Builds >= 2.2.2
- ruby: 2.6.6
env:
RAILS_VERSION: '~> 5.0.0'
- ruby: 2.5.8
env:
RAILS_VERSION: '~> 5.0.0'
- ruby: 2.4.10
env:
RAILS_VERSION: '~> 5.0.0'
- ruby: 2.3.8
env:
RAILS_VERSION: '~> 5.0.0'
- ruby: 2.2.10
env:
RAILS_VERSION: '~> 5.0.0'
env: ${{ matrix.env }}
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- run: script/clone_all_rspec_repos
- run: bundle install --binstubs
- run: script/run_build
continue-on-error: ${{ matrix.allow_failure || false }}
64 changes: 7 additions & 57 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,7 @@ script: "script/run_build 2>&1"
matrix:
include:
# Rails 6.1 builds >= 2.5
- rvm: ruby-3.0.0-preview1
env: RAILS_VERSION='master'
allow_failure: true
- rvm: 2.7.1
env: RAILS_VERSION='master'
- rvm: 2.6.6
env: RAILS_VERSION='master'
- rvm: 2.5.8
env: RAILS_VERSION='master'
jdk: oraclejdk11
- jdk: oraclejdk11
env:
- RAILS_VERSION='master'
- JRUBY_OPT=--dev
Expand All @@ -61,59 +52,18 @@ matrix:
- RAILS_VERSION='~> 6.0.0'
- JRUBY_OPT=--dev
- JAVA_OPTS="--add-opens java.base/sun.nio.ch=org.jruby.dist --add-opens java.base/java.io=org.jruby.dist --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.security.cert=ALL-UNNAMED --add-opens=java.base/java.util.zip=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/javax.crypto=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED"
- rvm: ruby-3.0.0-preview1
env: RAILS_VERSION='~> 6.0.0'
allow_failure: true
- rvm: 2.7.1
env: RAILS_VERSION='~> 6.0.0'
- rvm: 2.6.6
env: RAILS_VERSION='~> 6.0.0'
- rvm: 2.5.8
env: RAILS_VERSION='~> 6.0.0'

# Rails 5.2 builds >= 2.2.2
- rvm: jruby-head
jdk: oraclejdk11
env:
- RAILS_VERSION='~> 5.2.0'
- JRUBY_OPT=--dev
- JAVA_OPTS="--add-opens java.base/sun.nio.ch=org.jruby.dist --add-opens java.base/java.io=org.jruby.dist --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.security.cert=ALL-UNNAMED --add-opens=java.base/java.util.zip=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/javax.crypto=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED"
- rvm: 2.6.6
env: RAILS_VERSION='~> 5.2.0'
- rvm: 2.5.8
env: RAILS_VERSION='~> 5.2.0'
- rvm: 2.4.10
env: RAILS_VERSION='~> 5.2.0'
- rvm: 2.3.8
env: RAILS_VERSION='~> 5.2.0'
- rvm: 2.2.10
env: RAILS_VERSION='~> 5.2.0'
allow_failure: true
- rvm: 2.2.10
env: RAILS_VERSION='5-2-stable'

# Rails 5.1 Builds >= 2.2.2
- rvm: 2.6.6
env: RAILS_VERSION='~> 5.1.0'
- rvm: 2.5.8
env: RAILS_VERSION='~> 5.1.0'
- rvm: 2.4.10
env: RAILS_VERSION='~> 5.1.0'
- rvm: 2.3.8
env: RAILS_VERSION='~> 5.1.0'
- rvm: 2.2.10
env: RAILS_VERSION='~> 5.1.0'

# Rails 5.0 Builds >= 2.2.2
- rvm: 2.6.6
env: RAILS_VERSION='~> 5.0.0'
- rvm: 2.5.8
env: RAILS_VERSION='~> 5.0.0'
- rvm: 2.4.10
env: RAILS_VERSION='~> 5.0.0'
- rvm: 2.3.8
env: RAILS_VERSION='~> 5.0.0'
- rvm: 2.2.10
env: RAILS_VERSION='~> 5.0.0'

fast_finish: true

branches:
only:
- master
- /^\d+-\d+-maintenance$/
- /^\d+-\d+-dev$/
2 changes: 2 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ Enhancements:
(Eloy Espinaco, Luka Lüdicke, #2355, #2356, #2378)
* Generated scaffold now includes engine route helpers when inside a mountable engine.
(Andrew W. Lee, #2372)
* Improve request spec "controller" scafold when no action is specified.
(Thomas Hareau, #2399)

Bug Fixes:

Expand Down
10 changes: 5 additions & 5 deletions features/matchers/have_broadcasted_matcher.feature
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Feature: have_broadcasted matcher
it "matches with stream name" do
expect {
ActionCable.server.broadcast(
"notifications", text: 'Hello!'
"notifications", { text: "Hello!" }
)
}.to have_broadcasted_to("notifications")
end
Expand All @@ -34,7 +34,7 @@ Feature: have_broadcasted matcher
it "matches with message" do
expect {
ActionCable.server.broadcast(
"notifications", text: 'Hello!'
"notifications", { text: "Hello!" }
)
}.to have_broadcasted_to("notifications").with(text: 'Hello!')
end
Expand All @@ -52,7 +52,7 @@ Feature: have_broadcasted matcher
it "matches with message" do
expect {
ActionCable.server.broadcast(
"notifications", text: 'Hello!', user_id: 12
"notifications", { text: 'Hello!', user_id: 12 }
)
}.to have_broadcasted_to("notifications").with(a_hash_including(text: 'Hello!'))
end
Expand All @@ -70,7 +70,7 @@ Feature: have_broadcasted matcher
it "matches with message" do
expect {
ActionCable.server.broadcast(
"notifications", text: 'Hello!', user_id: 12
"notifications", { text: 'Hello!', user_id: 12 }
)
}.to have_broadcasted_to("notifications").with { |data|
expect(data['user_id']).to eq 12
Expand All @@ -90,7 +90,7 @@ Feature: have_broadcasted matcher
it "matches with stream name" do
expect {
ActionCable.server.broadcast(
"notifications", text: 'Hello!'
"notifications", { text: 'Hello!' }
)
}.to broadcast_to("notifications")
end
Expand Down
7 changes: 6 additions & 1 deletion lib/generators/rspec/controller/templates/request_spec.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
require 'rails_helper'

RSpec.describe "<%= class_name.pluralize %>", <%= type_metatag(:request) %> do
<% namespaced_path = regular_class_path.join('/') %>
<% namespaced_path = regular_class_path.join('/') -%>
<% if actions.empty? -%>
describe "GET /index" do
pending "add some examples (or delete) #{__FILE__}"
end
<% end -%>
<% for action in actions -%>
describe "GET /<%= action %>" do
it "returns http success" do
Expand Down
2 changes: 1 addition & 1 deletion lib/rspec/rails/example/mailbox_example_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ module MailboxExampleGroup
def self.create_inbound_email(arg)
case arg
when Hash
create_inbound_email_from_mail(arg)
create_inbound_email_from_mail(**arg)
else
create_inbound_email_from_source(arg.to_s)
end
Expand Down
4 changes: 3 additions & 1 deletion rspec-rails.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ Gem::Specification.new do |s|
# that we want. These will need to change from time to time as new RSpecs
# get released.
%w[core expectations mocks support].each do |name|
if RSpec::Rails::Version::STRING =~ /pre/ # prerelease builds
if ENV['RSPEC_CI']
s.add_runtime_dependency "rspec-#{name}", "= 4.0.0.pre"
elsif RSpec::Rails::Version::STRING =~ /pre/ # prerelease builds
expected_rspec_version = "3.11.0.pre"
s.add_runtime_dependency "rspec-#{name}", "= #{expected_rspec_version}"
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
it { is_expected.to exist }
it { is_expected.to contain(/require 'rails_helper'/) }
it { is_expected.to contain(/^RSpec.describe "Posts", #{type_metatag(:request)}/) }
it { is_expected.to contain('pending') }
end
end

Expand Down
13 changes: 8 additions & 5 deletions spec/generators/rspec/scaffold/scaffold_generator_spec.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Generators are not automatically loaded by Rails
require 'generators/rspec/scaffold/scaffold_generator'
require 'support/generators'
require 'rspec/support/spec/in_sub_process'

RSpec.describe Rspec::Generators::ScaffoldGenerator, type: :generator do
include RSpec::Support::InSubProcess
setup_default_destination

describe 'standard request specs' do
Expand Down Expand Up @@ -41,12 +43,13 @@
end

describe 'in an engine' do
before do
allow_any_instance_of(::Rails::Generators::NamedBase).to receive(:mountable_engine?).and_return(true)
run_generator %w[posts --request_specs]
it 'generates files with Engine url_helpers' do
in_sub_process do
allow_any_instance_of(::Rails::Generators::NamedBase).to receive(:mountable_engine?).and_return(true)
run_generator %w[posts --request_specs]
is_expected.to contain('Engine.routes.url_helpers')
end
end

it { is_expected.to contain('Engine.routes.url_helpers') }
end
end

Expand Down