Skip to content

Commit 4f5d3ac

Browse files
authored
Merge pull request #12 from hoppergee/rails_miniest_integration
Rails Miniest/Rspec integration
2 parents 1b9fbab + ffa12ff commit 4f5d3ac

29 files changed

+515
-27
lines changed

.github/workflows/main.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,5 @@ jobs:
7171
-
7272
name: Run minitest
7373
run: |
74+
bundle exec rspec test
7475
bundle exec rake

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## [Unreleased]
22

3+
## [1.3.0] - 2021-10-10
4+
5+
- Integrate with Rails default testing toolchain (Minitest + Capybara)
6+
- Integrate with RSpec + Capybara
37

48
## [1.2.0] - 2021-10-08
59

Gemfile

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ group :development do
1010
end
1111

1212
# To use a debugger
13-
gem 'byebug', group: [:development, :test]
14-
gem 'minitest-focus', group: [:test]
15-
gem 'sidekiq', group: [:test]
13+
group :development, :test do
14+
gem 'byebug'
15+
gem 'rspec'
16+
gem 'rspec-rails'
17+
gem 'capybara'
18+
gem 'sidekiq'
19+
end
20+
21+
group :test do
22+
gem 'minitest-focus'
23+
end

README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,12 @@ MultiTenantSupport.under_tenant amazon do
237237
end
238238
```
239239
240+
### Set current tenant global
241+
242+
```ruby
243+
MultiTenantSupport::Current.tenant_account = account
244+
```
245+
240246
### Disallow read across tenant by default
241247
242248
This gem disallow read across tenant by default. You can check current state through:
@@ -329,6 +335,44 @@ Console does not allow read across tenant by default. But you have several ways
329335
$ irb(main):001:0> MultiTenantSupport.allow_read_across_tenant
330336
```
331337

338+
## Testing
339+
### Minitest (Rails default)
340+
341+
```ruby
342+
# test/test_helper.rb
343+
require 'multi_tenant_support/minitet'
344+
```
345+
### RSpec (with Capybara)
346+
347+
```ruby
348+
# spec/rails_helper.rb or spec/spec_helper.rb
349+
require 'multi_tenant_support/rspec'
350+
```
351+
352+
Above code will make sure the `MultiTenantSupport.current_tenant` won't accidentally be reset during integration and system tests. For example:
353+
354+
With above testing requre code
355+
356+
```ruby
357+
# Integration test
358+
test "a integration test" do
359+
host! "apple.example.com"
360+
361+
assert_no_changes "MultiTenantSupport.current_tenant" do
362+
get users_path
363+
end
364+
end
365+
366+
# System test
367+
test "a system test" do
368+
Capybara.app_host = "http://apple.example.com"
369+
370+
assert_no_changes "MultiTenantSupport.current_tenant" do
371+
visit users_path
372+
end
373+
end
374+
```
375+
332376
## Code Example
333377
334378
### Database Schema

gemfiles/docker-compose/rails-6-0-Gemfile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ group :development do
1111
end
1212

1313
# To use a debugger
14-
gem 'byebug', group: [:development, :test]
15-
gem 'minitest-focus', group: [:test]
16-
gem 'sidekiq', group: [:test]
14+
group :development, :test do
15+
gem 'rspec'
16+
gem 'rspec-rails'
17+
gem 'capybara'
18+
gem 'sidekiq'
19+
end
20+
21+
group :test do
22+
gem 'minitest-focus'
23+
end

gemfiles/docker-compose/rails-6-1-Gemfile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ group :development do
1111
end
1212

1313
# To use a debugger
14-
gem 'byebug', group: [:development, :test]
15-
gem 'minitest-focus', group: [:test]
16-
gem 'sidekiq', group: [:test]
14+
group :development, :test do
15+
gem 'rspec'
16+
gem 'rspec-rails'
17+
gem 'capybara'
18+
gem 'sidekiq'
19+
end
20+
21+
group :test do
22+
gem 'minitest-focus'
23+
end

gemfiles/docker-compose/rails-master-Gemfile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ group :development do
1111
end
1212

1313
# To use a debugger
14-
gem 'byebug', group: [:development, :test]
15-
gem 'minitest-focus', group: [:test]
16-
gem 'sidekiq', group: [:test]
14+
group :development, :test do
15+
gem 'rspec'
16+
gem 'rspec-rails'
17+
gem 'capybara'
18+
gem 'sidekiq'
19+
end
20+
21+
group :test do
22+
gem 'minitest-focus'
23+
end

gemfiles/github-action/rails-6.0-Gemfile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ group :development do
1111
end
1212

1313
# To use a debugger
14-
gem 'byebug', group: [:development, :test]
15-
gem 'minitest-focus', group: [:test]
16-
gem 'sidekiq', group: [:test]
14+
group :development, :test do
15+
gem 'rspec'
16+
gem 'rspec-rails'
17+
gem 'capybara'
18+
gem 'sidekiq'
19+
end
20+
21+
group :test do
22+
gem 'minitest-focus'
23+
end

gemfiles/github-action/rails-6.1-Gemfile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ group :development do
1111
end
1212

1313
# To use a debugger
14-
gem 'byebug', group: [:development, :test]
15-
gem 'minitest-focus', group: [:test]
16-
gem 'sidekiq', group: [:test]
14+
group :development, :test do
15+
gem 'rspec'
16+
gem 'rspec-rails'
17+
gem 'capybara'
18+
gem 'sidekiq'
19+
end
20+
21+
group :test do
22+
gem 'minitest-focus'
23+
end

gemfiles/github-action/rails-master-Gemfile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ group :development do
1111
end
1212

1313
# To use a debugger
14-
gem 'byebug', group: [:development, :test]
15-
gem 'minitest-focus', group: [:test]
16-
gem 'sidekiq', group: [:test]
14+
group :development, :test do
15+
gem 'rspec'
16+
gem 'rspec-rails'
17+
gem 'capybara'
18+
gem 'sidekiq'
19+
end
20+
21+
group :test do
22+
gem 'minitest-focus'
23+
end

0 commit comments

Comments
 (0)