model_base_generators 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +23 -0
  3. data/example/.gitignore +1 -0
  4. data/example/.model_base/controllers +5 -0
  5. data/example/.rubocop.yml +31 -0
  6. data/example/Gemfile +1 -1
  7. data/example/Gemfile.lock +14 -1
  8. data/example/app/controllers/concerns/authentication.rb +2 -2
  9. data/example/app/models/ability.rb +1 -2
  10. data/example/app/models/issue.rb +0 -1
  11. data/example/app/models/user.rb +3 -2
  12. data/example/app/views/issue_comments/_issue_comment.json.jbuilder +1 -1
  13. data/example/app/views/issue_comments/_table.html.erb +1 -1
  14. data/example/app/views/issue_comments/index.html.erb +1 -1
  15. data/example/app/views/issue_comments/index.json.jbuilder +1 -1
  16. data/example/app/views/issue_comments/show.json.jbuilder +1 -1
  17. data/example/app/views/issues/_table.html.erb +1 -1
  18. data/example/app/views/issues/index.html.erb +1 -1
  19. data/example/app/views/phases/_table.html.erb +1 -1
  20. data/example/app/views/phases/index.html.erb +1 -1
  21. data/example/app/views/project_assignments/_table.html.erb +1 -1
  22. data/example/app/views/project_assignments/index.html.erb +1 -1
  23. data/example/app/views/projects/_table.html.erb +1 -1
  24. data/example/app/views/projects/index.html.erb +1 -1
  25. data/example/config/application.rb +1 -1
  26. data/example/config/environments/development.rb +1 -1
  27. data/example/config/environments/production.rb +2 -2
  28. data/example/config/environments/test.rb +1 -1
  29. data/example/config/initializers/pretty_validation.rb +1 -1
  30. data/example/config/puma.rb +3 -3
  31. data/example/db/schema.rb +9 -9
  32. data/example/spec/controllers/issue_comments_controller_spec.rb +73 -61
  33. data/example/spec/controllers/issues_controller_spec.rb +71 -59
  34. data/example/spec/controllers/phases_controller_spec.rb +72 -60
  35. data/example/spec/controllers/project_assignments_controller_spec.rb +72 -60
  36. data/example/spec/controllers/projects_controller_spec.rb +70 -58
  37. data/example/spec/factories/issue_comments.rb +1 -1
  38. data/example/spec/factories/issues.rb +1 -1
  39. data/example/spec/factories/phases.rb +3 -3
  40. data/example/spec/factories/project_assignments.rb +2 -2
  41. data/example/spec/factories/projects.rb +1 -1
  42. data/example/spec/factories/users.rb +2 -2
  43. data/example/spec/rails_helper.rb +1 -1
  44. data/example/spec/requests/issue_comments_spec.rb +4 -4
  45. data/example/spec/routing/issue_comments_routing_spec.rb +18 -20
  46. data/example/spec/routing/issues_routing_spec.rb +18 -20
  47. data/example/spec/routing/phases_routing_spec.rb +18 -20
  48. data/example/spec/routing/project_assignments_routing_spec.rb +18 -20
  49. data/example/spec/routing/projects_routing_spec.rb +18 -20
  50. data/example/spec/spec_helper.rb +47 -49
  51. data/example/spec/support/controller_macros.rb +3 -3
  52. data/example/spec/support/devise.rb +2 -2
  53. data/example/spec/support/time_match_support.rb +9 -0
  54. data/example/spec/views/issue_comments/edit.html.erb_spec.rb +12 -11
  55. data/example/spec/views/issue_comments/index.html.erb_spec.rb +12 -12
  56. data/example/spec/views/issue_comments/new.html.erb_spec.rb +12 -11
  57. data/example/spec/views/issue_comments/show.html.erb_spec.rb +7 -6
  58. data/example/spec/views/issues/edit.html.erb_spec.rb +12 -11
  59. data/example/spec/views/issues/index.html.erb_spec.rb +13 -13
  60. data/example/spec/views/issues/new.html.erb_spec.rb +12 -11
  61. data/example/spec/views/issues/show.html.erb_spec.rb +6 -5
  62. data/example/spec/views/phases/edit.html.erb_spec.rb +9 -8
  63. data/example/spec/views/phases/index.html.erb_spec.rb +12 -12
  64. data/example/spec/views/phases/new.html.erb_spec.rb +9 -8
  65. data/example/spec/views/phases/show.html.erb_spec.rb +8 -7
  66. data/example/spec/views/project_assignments/edit.html.erb_spec.rb +10 -9
  67. data/example/spec/views/project_assignments/index.html.erb_spec.rb +11 -11
  68. data/example/spec/views/project_assignments/new.html.erb_spec.rb +10 -9
  69. data/example/spec/views/project_assignments/show.html.erb_spec.rb +8 -7
  70. data/example/spec/views/projects/edit.html.erb_spec.rb +9 -8
  71. data/example/spec/views/projects/index.html.erb_spec.rb +10 -10
  72. data/example/spec/views/projects/new.html.erb_spec.rb +9 -8
  73. data/example/spec/views/projects/show.html.erb_spec.rb +5 -4
  74. data/exe/model_base +33 -0
  75. data/lib/generators/model_base/install_generator.rb +1 -0
  76. data/lib/generators/model_base/templates/app/controllers/concerns/authentication.rb +2 -2
  77. data/lib/generators/model_base/templates/spec/support/time_match_support.rb +9 -0
  78. data/lib/model_base/column_attribute.rb +2 -2
  79. data/lib/model_base/config.rb +6 -0
  80. data/lib/model_base/generators/model_support.rb +8 -0
  81. data/lib/model_base/generators/rails/scaffold_controller.rb +25 -0
  82. data/lib/model_base/generators.rb +33 -0
  83. data/lib/model_base/meta_model.rb +2 -2
  84. data/lib/model_base/railtie.rb +1 -1
  85. data/lib/model_base/version.rb +1 -1
  86. data/lib/model_base.rb +24 -13
  87. data/lib/templates/erb/scaffold/_table.html.erb +1 -1
  88. data/lib/templates/erb/scaffold/index.html.erb +1 -1
  89. data/lib/templates/factory_girl/factory.rb +1 -1
  90. data/lib/templates/rspec/scaffold/controller_spec.rb +71 -59
  91. data/lib/templates/rspec/scaffold/edit_spec.rb +5 -4
  92. data/lib/templates/rspec/scaffold/index_spec.rb +8 -8
  93. data/lib/templates/rspec/scaffold/new_spec.rb +5 -4
  94. data/lib/templates/rspec/scaffold/routing_spec.rb +18 -20
  95. data/lib/templates/rspec/scaffold/show_spec.rb +4 -3
  96. metadata +11 -3
@@ -47,53 +47,51 @@ RSpec.configure do |config|
47
47
  # triggering implicit auto-inclusion in groups with matching metadata.
48
48
  config.shared_context_metadata_behavior = :apply_to_host_groups
49
49
 
50
- # The settings below are suggested to provide a good initial experience
51
- # with RSpec, but feel free to customize to your heart's content.
52
- =begin
53
- # This allows you to limit a spec run to individual examples or groups
54
- # you care about by tagging them with `:focus` metadata. When nothing
55
- # is tagged with `:focus`, all examples get run. RSpec also provides
56
- # aliases for `it`, `describe`, and `context` that include `:focus`
57
- # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
58
- config.filter_run_when_matching :focus
59
-
60
- # Allows RSpec to persist some state between runs in order to support
61
- # the `--only-failures` and `--next-failure` CLI options. We recommend
62
- # you configure your source control system to ignore this file.
63
- config.example_status_persistence_file_path = "spec/examples.txt"
64
-
65
- # Limits the available syntax to the non-monkey patched syntax that is
66
- # recommended. For more details, see:
67
- # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
68
- # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
69
- # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
70
- config.disable_monkey_patching!
71
-
72
- # Many RSpec users commonly either run the entire suite or an individual
73
- # file, and it's useful to allow more verbose output when running an
74
- # individual spec file.
75
- if config.files_to_run.one?
76
- # Use the documentation formatter for detailed output,
77
- # unless a formatter has already been configured
78
- # (e.g. via a command-line flag).
79
- config.default_formatter = 'doc'
80
- end
81
-
82
- # Print the 10 slowest examples and example groups at the
83
- # end of the spec run, to help surface which specs are running
84
- # particularly slow.
85
- config.profile_examples = 10
86
-
87
- # Run specs in random order to surface order dependencies. If you find an
88
- # order dependency and want to debug it, you can fix the order by providing
89
- # the seed, which is printed after each run.
90
- # --seed 1234
91
- config.order = :random
92
-
93
- # Seed global randomization in this process using the `--seed` CLI option.
94
- # Setting this allows you to use `--seed` to deterministically reproduce
95
- # test failures related to randomization by passing the same `--seed` value
96
- # as the one that triggered the failure.
97
- Kernel.srand config.seed
98
- =end
50
+ # The settings below are suggested to provide a good initial experience
51
+ # with RSpec, but feel free to customize to your heart's content.
52
+ # # This allows you to limit a spec run to individual examples or groups
53
+ # # you care about by tagging them with `:focus` metadata. When nothing
54
+ # # is tagged with `:focus`, all examples get run. RSpec also provides
55
+ # # aliases for `it`, `describe`, and `context` that include `:focus`
56
+ # # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
57
+ # config.filter_run_when_matching :focus
58
+ #
59
+ # # Allows RSpec to persist some state between runs in order to support
60
+ # # the `--only-failures` and `--next-failure` CLI options. We recommend
61
+ # # you configure your source control system to ignore this file.
62
+ # config.example_status_persistence_file_path = "spec/examples.txt"
63
+ #
64
+ # # Limits the available syntax to the non-monkey patched syntax that is
65
+ # # recommended. For more details, see:
66
+ # # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
67
+ # # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
68
+ # # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
69
+ # config.disable_monkey_patching!
70
+ #
71
+ # # Many RSpec users commonly either run the entire suite or an individual
72
+ # # file, and it's useful to allow more verbose output when running an
73
+ # # individual spec file.
74
+ # if config.files_to_run.one?
75
+ # # Use the documentation formatter for detailed output,
76
+ # # unless a formatter has already been configured
77
+ # # (e.g. via a command-line flag).
78
+ # config.default_formatter = 'doc'
79
+ # end
80
+ #
81
+ # # Print the 10 slowest examples and example groups at the
82
+ # # end of the spec run, to help surface which specs are running
83
+ # # particularly slow.
84
+ # config.profile_examples = 10
85
+ #
86
+ # # Run specs in random order to surface order dependencies. If you find an
87
+ # # order dependency and want to debug it, you can fix the order by providing
88
+ # # the seed, which is printed after each run.
89
+ # # --seed 1234
90
+ # config.order = :random
91
+ #
92
+ # # Seed global randomization in this process using the `--seed` CLI option.
93
+ # # Setting this allows you to use `--seed` to deterministically reproduce
94
+ # # test failures related to randomization by passing the same `--seed` value
95
+ # # as the one that triggered the failure.
96
+ # Kernel.srand config.seed
99
97
  end
@@ -1,6 +1,6 @@
1
1
  module ControllerMacros
2
2
  def devise_login(key, user)
3
- @request.env["devise.mapping"] = Devise.mappings[key]
3
+ @request.env['devise.mapping'] = Devise.mappings[key]
4
4
  sign_in(user)
5
5
  end
6
6
 
@@ -9,10 +9,10 @@ module ControllerMacros
9
9
  end
10
10
 
11
11
  def login_admin
12
- before(:each){ devise_login(:admin, FactoryGirl.create(:admin)) }
12
+ before(:each) { devise_login(:admin, FactoryGirl.create(:admin)) }
13
13
  end
14
14
 
15
15
  def login_user
16
- before(:each){ devise_login(:user, FactoryGirl.create(:user)) }
16
+ before(:each) { devise_login(:user, FactoryGirl.create(:user)) }
17
17
  end
18
18
  end
@@ -1,6 +1,6 @@
1
1
  # https://github.com/plataformatec/devise/wiki/How-To:-Test-controllers-with-Rails-3-and-4-(and-RSpec)
2
2
  RSpec.configure do |config|
3
- config.with_options(:type => :controller) do |c|
3
+ config.with_options(type: :controller) do |c|
4
4
  c.include Devise::Test::ControllerHelpers
5
5
  c.include ControllerMacros
6
6
  c.extend ControllerMacros
@@ -9,7 +9,7 @@ RSpec.configure do |config|
9
9
  # For request spec
10
10
  # https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara
11
11
  # http://qiita.com/gakkie/items/40e5678af7b63afc14df
12
- config.include Warden::Test::Helpers, :type => :request
12
+ config.include Warden::Test::Helpers, type: :request
13
13
  config.before :suite do
14
14
  Warden.test_mode!
15
15
  end
@@ -0,0 +1,9 @@
1
+ module TimeMatchSupport
2
+ def localized_time_re(time_str)
3
+ Regexp.new(Regexp.escape(localize(Time.zone.parse(time_str))))
4
+ end
5
+ end
6
+
7
+ RSpec.configure do |config|
8
+ config.include TimeMatchSupport
9
+ end
@@ -1,21 +1,22 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "issue_comments/edit", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
6
- let(:issue){ FactoryGirl.create(:issue, project: project, creator: user) }
3
+ RSpec.describe 'issue_comments/edit', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:issue) { FactoryGirl.create(:issue, project: project, creator: user) }
7
+ let(:issue_comment) { FactoryGirl.create(:issue_comment, issue: issue, user: user) }
7
8
  before(:each) do
8
- @issue_comment = assign(:issue_comment, FactoryGirl.create(:issue_comment, issue: issue, user: user))
9
+ assign(:issue_comment, issue_comment)
9
10
  end
10
11
 
11
- it "renders the edit issue_comment form" do
12
+ it 'renders the edit issue_comment form' do
12
13
  render
13
14
 
14
- assert_select "form[action=?][method=?]", issue_comment_path(@issue_comment), "post" do
15
- assert_select "input#issue_comment_id[name=?]", "issue_comment[id]"
16
- assert_select "select#issue_comment_issue_id[name=?]", "issue_comment[issue_id]"
17
- assert_select "select#issue_comment_user_id[name=?]", "issue_comment[user_id]"
18
- assert_select "textarea#issue_comment_description[name=?]", "issue_comment[description]"
15
+ assert_select 'form[action=?][method=?]', issue_comment_path(issue_comment), 'post' do
16
+ assert_select 'input#issue_comment_id[name=?]', 'issue_comment[id]'
17
+ assert_select 'select#issue_comment_issue_id[name=?]', 'issue_comment[issue_id]'
18
+ assert_select 'select#issue_comment_user_id[name=?]', 'issue_comment[user_id]'
19
+ assert_select 'textarea#issue_comment_description[name=?]', 'issue_comment[description]'
19
20
  end
20
21
  end
21
22
  end
@@ -1,21 +1,21 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "issue_comments/index", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
6
- let(:issue){ FactoryGirl.create(:issue, project: project, creator: user) }
3
+ RSpec.describe 'issue_comments/index', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:issue) { FactoryGirl.create(:issue, project: project, creator: user) }
7
7
  before(:each) do
8
8
  assign(:issue_comments, [
9
- FactoryGirl.create(:issue_comment, issue: issue, user: user, description: 'issue_comment_description_1'),
10
- FactoryGirl.create(:issue_comment, issue: issue, user: user, description: 'issue_comment_description_2'),
11
- ])
9
+ FactoryGirl.create(:issue_comment, issue: issue, user: user, description: 'issue_comment_description_1'),
10
+ FactoryGirl.create(:issue_comment, issue: issue, user: user, description: 'issue_comment_description_2'),
11
+ ])
12
12
  end
13
13
 
14
- it "renders a list of issue_comments" do
14
+ it 'renders a list of issue_comments' do
15
15
  render
16
- assert_select "tr>td", :text => 'issue1', :count => 2
17
- assert_select "tr>td", :text => 'user1@example.com', :count => 2
18
- assert_select "tr>td", :text => 'issue_comment_description_1', :count => 1
19
- assert_select "tr>td", :text => 'issue_comment_description_2', :count => 1
16
+ assert_select 'tr>td', text: 'issue1', count: 2
17
+ assert_select 'tr>td', text: 'user1@example.com', count: 2
18
+ assert_select 'tr>td', text: 'issue_comment_description_1', count: 1
19
+ assert_select 'tr>td', text: 'issue_comment_description_2', count: 1
20
20
  end
21
21
  end
@@ -1,21 +1,22 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "issue_comments/new", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
6
- let(:issue){ FactoryGirl.create(:issue, project: project, creator: user) }
3
+ RSpec.describe 'issue_comments/new', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:issue) { FactoryGirl.create(:issue, project: project, creator: user) }
7
+ let(:issue_comment) { FactoryGirl.build(:issue_comment, issue: issue, user: user) }
7
8
  before(:each) do
8
- assign(:issue_comment, FactoryGirl.build(:issue_comment, issue: issue, user: user))
9
+ assign(:issue_comment, issue_comment)
9
10
  end
10
11
 
11
- it "renders new issue_comment form" do
12
+ it 'renders new issue_comment form' do
12
13
  render
13
14
 
14
- assert_select "form[action=?][method=?]", issue_comments_path, "post" do
15
- assert_select "input#issue_comment_id[name=?]", "issue_comment[id]"
16
- assert_select "select#issue_comment_issue_id[name=?]", "issue_comment[issue_id]"
17
- assert_select "select#issue_comment_user_id[name=?]", "issue_comment[user_id]"
18
- assert_select "textarea#issue_comment_description[name=?]", "issue_comment[description]"
15
+ assert_select 'form[action=?][method=?]', issue_comments_path, 'post' do
16
+ assert_select 'input#issue_comment_id[name=?]', 'issue_comment[id]'
17
+ assert_select 'select#issue_comment_issue_id[name=?]', 'issue_comment[issue_id]'
18
+ assert_select 'select#issue_comment_user_id[name=?]', 'issue_comment[user_id]'
19
+ assert_select 'textarea#issue_comment_description[name=?]', 'issue_comment[description]'
19
20
  end
20
21
  end
21
22
  end
@@ -1,14 +1,15 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "issue_comments/show", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
6
- let(:issue){ FactoryGirl.create(:issue, project: project, creator: user) }
3
+ RSpec.describe 'issue_comments/show', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:issue) { FactoryGirl.create(:issue, project: project, creator: user) }
7
+ let(:issue_comment) { FactoryGirl.create(:issue_comment, issue: issue, user: user) }
7
8
  before(:each) do
8
- @issue_comment = assign(:issue_comment, FactoryGirl.create(:issue_comment, issue: issue, user: user))
9
+ assign(:issue_comment, issue_comment)
9
10
  end
10
11
 
11
- it "renders attributes in <p>" do
12
+ it 'renders attributes in <p>' do
12
13
  render
13
14
  expect(rendered).to match(/issue1/)
14
15
  expect(rendered).to match(/user1@example.com/)
@@ -1,21 +1,22 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "issues/edit", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'issues/edit', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:issue) { FactoryGirl.create(:issue, project: project, creator: user) }
6
7
  before(:each) do
7
- @issue = assign(:issue, FactoryGirl.create(:issue, project: project, creator: user))
8
+ assign(:issue, issue)
8
9
  end
9
10
 
10
- it "renders the edit issue form" do
11
+ it 'renders the edit issue form' do
11
12
  render
12
13
 
13
- assert_select "form[action=?][method=?]", issue_path(@issue), "post" do
14
- assert_select "select#issue_project_id[name=?]", "issue[project_id]"
15
- assert_select "input#issue_title[name=?]", "issue[title]"
16
- assert_select "select#issue_status[name=?]", "issue[status]"
17
- assert_select "select#issue_creator_id[name=?]", "issue[creator_id]"
18
- assert_select "select#issue_assignee_id[name=?]", "issue[assignee_id]"
14
+ assert_select 'form[action=?][method=?]', issue_path(issue), 'post' do
15
+ assert_select 'select#issue_project_id[name=?]', 'issue[project_id]'
16
+ assert_select 'input#issue_title[name=?]', 'issue[title]'
17
+ assert_select 'select#issue_status[name=?]', 'issue[status]'
18
+ assert_select 'select#issue_creator_id[name=?]', 'issue[creator_id]'
19
+ assert_select 'select#issue_assignee_id[name=?]', 'issue[assignee_id]'
19
20
  end
20
21
  end
21
22
  end
@@ -1,22 +1,22 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "issues/index", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'issues/index', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
6
  before(:each) do
7
7
  assign(:issues, [
8
- FactoryGirl.create(:issue, project: project, creator: user, title: 'issue1'),
9
- FactoryGirl.create(:issue, project: project, creator: user, title: 'issue2'),
10
- ])
8
+ FactoryGirl.create(:issue, project: project, creator: user, title: 'issue1'),
9
+ FactoryGirl.create(:issue, project: project, creator: user, title: 'issue2'),
10
+ ])
11
11
  end
12
12
 
13
- it "renders a list of issues" do
13
+ it 'renders a list of issues' do
14
14
  render
15
- assert_select "tr>td", :text => 'project1', :count => 2
16
- assert_select "tr>td", :text => 'issue1', :count => 1
17
- assert_select "tr>td", :text => 'issue2', :count => 1
18
- assert_select "tr>td", :text => 'Draft', :count => 2
19
- assert_select "tr>td", :text => 'user1@example.com', :count => 2
20
- assert_select "tr>td", :text => 'user1@example.com', :count => 2
15
+ assert_select 'tr>td', text: 'project1', count: 2
16
+ assert_select 'tr>td', text: 'issue1', count: 1
17
+ assert_select 'tr>td', text: 'issue2', count: 1
18
+ assert_select 'tr>td', text: 'Draft', count: 2
19
+ assert_select 'tr>td', text: 'user1@example.com', count: 2
20
+ assert_select 'tr>td', text: 'user1@example.com', count: 2
21
21
  end
22
22
  end
@@ -1,21 +1,22 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "issues/new", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'issues/new', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:issue) { FactoryGirl.build(:issue, project: project, creator: user) }
6
7
  before(:each) do
7
- assign(:issue, FactoryGirl.build(:issue, project: project, creator: user))
8
+ assign(:issue, issue)
8
9
  end
9
10
 
10
- it "renders new issue form" do
11
+ it 'renders new issue form' do
11
12
  render
12
13
 
13
- assert_select "form[action=?][method=?]", issues_path, "post" do
14
- assert_select "select#issue_project_id[name=?]", "issue[project_id]"
15
- assert_select "input#issue_title[name=?]", "issue[title]"
16
- assert_select "select#issue_status[name=?]", "issue[status]"
17
- assert_select "select#issue_creator_id[name=?]", "issue[creator_id]"
18
- assert_select "select#issue_assignee_id[name=?]", "issue[assignee_id]"
14
+ assert_select 'form[action=?][method=?]', issues_path, 'post' do
15
+ assert_select 'select#issue_project_id[name=?]', 'issue[project_id]'
16
+ assert_select 'input#issue_title[name=?]', 'issue[title]'
17
+ assert_select 'select#issue_status[name=?]', 'issue[status]'
18
+ assert_select 'select#issue_creator_id[name=?]', 'issue[creator_id]'
19
+ assert_select 'select#issue_assignee_id[name=?]', 'issue[assignee_id]'
19
20
  end
20
21
  end
21
22
  end
@@ -1,13 +1,14 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "issues/show", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'issues/show', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:issue) { FactoryGirl.create(:issue, project: project, creator: user) }
6
7
  before(:each) do
7
- @issue = assign(:issue, FactoryGirl.create(:issue, project: project, creator: user))
8
+ assign(:issue, issue)
8
9
  end
9
10
 
10
- it "renders attributes in <p>" do
11
+ it 'renders attributes in <p>' do
11
12
  render
12
13
  expect(rendered).to match(/project1/)
13
14
  expect(rendered).to match(/issue1/)
@@ -1,18 +1,19 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "phases/edit", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'phases/edit', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:phase) { FactoryGirl.create(:phase, project: project) }
6
7
  before(:each) do
7
- @phase = assign(:phase, FactoryGirl.create(:phase, project: project))
8
+ assign(:phase, phase)
8
9
  end
9
10
 
10
- it "renders the edit phase form" do
11
+ it 'renders the edit phase form' do
11
12
  render
12
13
 
13
- assert_select "form[action=?][method=?]", phase_path(@phase), "post" do
14
- assert_select "select#phase_project_id[name=?]", "phase[project_id]"
15
- assert_select "input#phase_name[name=?]", "phase[name]"
14
+ assert_select 'form[action=?][method=?]', phase_path(phase), 'post' do
15
+ assert_select 'select#phase_project_id[name=?]', 'phase[project_id]'
16
+ assert_select 'input#phase_name[name=?]', 'phase[name]'
16
17
  assert_select_datetime_field :phase, :started_at
17
18
  assert_select_datetime_field :phase, :finished_at
18
19
  end
@@ -1,21 +1,21 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "phases/index", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'phases/index', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
6
  before(:each) do
7
7
  assign(:phases, [
8
- FactoryGirl.create(:phase, project: project, name: 'phase1'),
9
- FactoryGirl.create(:phase, project: project, name: 'phase2'),
10
- ])
8
+ FactoryGirl.create(:phase, project: project, name: 'phase1'),
9
+ FactoryGirl.create(:phase, project: project, name: 'phase2'),
10
+ ])
11
11
  end
12
12
 
13
- it "renders a list of phases" do
13
+ it 'renders a list of phases' do
14
14
  render
15
- assert_select "tr>td", :text => 'project1', :count => 2
16
- assert_select "tr>td", :text => 'phase1', :count => 1
17
- assert_select "tr>td", :text => 'phase2', :count => 1
18
- assert_select "tr>td", :text => localize(Time.zone.parse('2020-01-29 02:50:00 +09:00')), :count => 2
19
- assert_select "tr>td", :text => localize(Time.zone.parse('2020-01-29 16:40:00 +09:00')), :count => 2
15
+ assert_select 'tr>td', text: 'project1', count: 2
16
+ assert_select 'tr>td', text: 'phase1', count: 1
17
+ assert_select 'tr>td', text: 'phase2', count: 1
18
+ assert_select 'tr>td', text: localize(Time.zone.parse('2020-01-29 02:50:00 +09:00')), count: 2
19
+ assert_select 'tr>td', text: localize(Time.zone.parse('2020-01-29 16:40:00 +09:00')), count: 2
20
20
  end
21
21
  end
@@ -1,18 +1,19 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "phases/new", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'phases/new', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:phase) { FactoryGirl.build(:phase, project: project) }
6
7
  before(:each) do
7
- assign(:phase, FactoryGirl.build(:phase, project: project))
8
+ assign(:phase, phase)
8
9
  end
9
10
 
10
- it "renders new phase form" do
11
+ it 'renders new phase form' do
11
12
  render
12
13
 
13
- assert_select "form[action=?][method=?]", phases_path, "post" do
14
- assert_select "select#phase_project_id[name=?]", "phase[project_id]"
15
- assert_select "input#phase_name[name=?]", "phase[name]"
14
+ assert_select 'form[action=?][method=?]', phases_path, 'post' do
15
+ assert_select 'select#phase_project_id[name=?]', 'phase[project_id]'
16
+ assert_select 'input#phase_name[name=?]', 'phase[name]'
16
17
  assert_select_datetime_field :phase, :started_at
17
18
  assert_select_datetime_field :phase, :finished_at
18
19
  end
@@ -1,17 +1,18 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "phases/show", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'phases/show', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:phase) { FactoryGirl.create(:phase, project: project) }
6
7
  before(:each) do
7
- @phase = assign(:phase, FactoryGirl.create(:phase, project: project))
8
+ assign(:phase, phase)
8
9
  end
9
10
 
10
- it "renders attributes in <p>" do
11
+ it 'renders attributes in <p>' do
11
12
  render
12
13
  expect(rendered).to match(/project1/)
13
14
  expect(rendered).to match(/phase1/)
14
- expect(rendered).to match(Regexp.new(Regexp.escape(localize(Time.zone.parse('2020-01-29 02:50:00 +09:00')))))
15
- expect(rendered).to match(Regexp.new(Regexp.escape(localize(Time.zone.parse('2020-01-29 16:40:00 +09:00')))))
15
+ expect(rendered).to match(localized_time_re('2020-01-29 02:50:00 +09:00'))
16
+ expect(rendered).to match(localized_time_re('2020-01-29 16:40:00 +09:00'))
16
17
  end
17
18
  end
@@ -1,19 +1,20 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "project_assignments/edit", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'project_assignments/edit', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
+ let(:project_assignment) { FactoryGirl.create(:project_assignment, project: project, user: user) }
6
7
  before(:each) do
7
- @project_assignment = assign(:project_assignment, FactoryGirl.create(:project_assignment, project: project, user: user))
8
+ assign(:project_assignment, project_assignment)
8
9
  end
9
10
 
10
- it "renders the edit project_assignment form" do
11
+ it 'renders the edit project_assignment form' do
11
12
  render
12
13
 
13
- assert_select "form[action=?][method=?]", project_assignment_path(@project_assignment), "post" do
14
- assert_select "input#project_assignment_id[name=?]", "project_assignment[id]"
15
- assert_select "select#project_assignment_project_id[name=?]", "project_assignment[project_id]"
16
- assert_select "select#project_assignment_user_id[name=?]", "project_assignment[user_id]"
14
+ assert_select 'form[action=?][method=?]', project_assignment_path(project_assignment), 'post' do
15
+ assert_select 'input#project_assignment_id[name=?]', 'project_assignment[id]'
16
+ assert_select 'select#project_assignment_project_id[name=?]', 'project_assignment[project_id]'
17
+ assert_select 'select#project_assignment_user_id[name=?]', 'project_assignment[user_id]'
17
18
  assert_select_datetime_field :project_assignment, :started_at
18
19
  assert_select_datetime_field :project_assignment, :finished_at
19
20
  end
@@ -1,20 +1,20 @@
1
1
  require 'rails_helper'
2
2
 
3
- RSpec.describe "project_assignments/index", type: :view do
4
- let(:user){ FactoryGirl.create(:user) }
5
- let(:project){ FactoryGirl.create(:project, owner: user) }
3
+ RSpec.describe 'project_assignments/index', type: :view do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+ let(:project) { FactoryGirl.create(:project, owner: user) }
6
6
  before(:each) do
7
7
  assign(:project_assignments, [
8
- FactoryGirl.create(:project_assignment, project: project, user: user),
9
- FactoryGirl.create(:project_assignment, project: project, user: user),
10
- ])
8
+ FactoryGirl.create(:project_assignment, project: project, user: user),
9
+ FactoryGirl.create(:project_assignment, project: project, user: user),
10
+ ])
11
11
  end
12
12
 
13
- it "renders a list of project_assignments" do
13
+ it 'renders a list of project_assignments' do
14
14
  render
15
- assert_select "tr>td", :text => 'project1', :count => 2
16
- assert_select "tr>td", :text => 'user1@example.com', :count => 2
17
- assert_select "tr>td", :text => localize(Time.zone.parse('2020-03-22 09:50:00 +09:00')), :count => 2
18
- assert_select "tr>td", :text => localize(Time.zone.parse('2020-03-22 23:40:00 +09:00')), :count => 2
15
+ assert_select 'tr>td', text: 'project1', count: 2
16
+ assert_select 'tr>td', text: 'user1@example.com', count: 2
17
+ assert_select 'tr>td', text: localize(Time.zone.parse('2020-03-22 09:50:00 +09:00')), count: 2
18
+ assert_select 'tr>td', text: localize(Time.zone.parse('2020-03-22 23:40:00 +09:00')), count: 2
19
19
  end
20
20
  end