potassium 5.2.1 → 6.2.0

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 (122) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +84 -0
  3. data/.gitignore +2 -1
  4. data/.node-version +1 -0
  5. data/.rubocop.yml +530 -0
  6. data/.ruby-version +1 -1
  7. data/CHANGELOG.md +91 -0
  8. data/README.md +41 -47
  9. data/docs/DSL.md +5 -5
  10. data/lib/potassium/assets/.buildpacks +0 -1
  11. data/lib/potassium/assets/.circleci/config.yml.erb +102 -0
  12. data/lib/potassium/assets/.eslintrc.json +352 -0
  13. data/lib/potassium/assets/.github/pull_request_template.md +9 -0
  14. data/lib/potassium/assets/.pryrc +1 -1
  15. data/lib/potassium/assets/.rubocop.yml +528 -0
  16. data/lib/potassium/assets/.stylelintrc.json +46 -0
  17. data/lib/potassium/assets/Dockerfile.ci +1 -1
  18. data/lib/potassium/assets/Makefile.erb +21 -32
  19. data/lib/potassium/assets/Procfile +1 -0
  20. data/lib/potassium/assets/README.yml +58 -11
  21. data/lib/potassium/assets/active_admin/admin-component.vue +35 -0
  22. data/lib/potassium/assets/active_admin/admin_application.js +14 -0
  23. data/lib/potassium/assets/active_admin/init_activeadmin_vue.rb +10 -0
  24. data/lib/potassium/assets/app/graphql/graphql_controller.rb +55 -0
  25. data/lib/potassium/assets/app/graphql/mutations/login_mutation.rb +23 -0
  26. data/lib/potassium/assets/app/graphql/queries/base_query.rb +4 -0
  27. data/lib/potassium/assets/app/graphql/types/base/base_argument.rb +4 -0
  28. data/lib/potassium/assets/app/graphql/types/base/base_enum.rb +4 -0
  29. data/lib/potassium/assets/app/graphql/types/base/base_field.rb +5 -0
  30. data/lib/potassium/assets/app/graphql/types/base/base_input_object.rb +5 -0
  31. data/lib/potassium/assets/app/graphql/types/base/base_interface.rb +7 -0
  32. data/lib/potassium/assets/app/graphql/types/base/base_object.rb +5 -0
  33. data/lib/potassium/assets/app/graphql/types/base/base_scalar.rb +4 -0
  34. data/lib/potassium/assets/app/graphql/types/base/base_union.rb +4 -0
  35. data/lib/potassium/assets/app/graphql/types/mutation_type.rb +10 -0
  36. data/lib/potassium/assets/app/graphql/types/query_type.rb +13 -0
  37. data/lib/potassium/assets/app/javascript/app.spec.js +14 -0
  38. data/lib/potassium/assets/app/uploaders/base_uploader.rb +11 -0
  39. data/lib/potassium/assets/app/uploaders/image_uploader.rb +5 -0
  40. data/lib/potassium/assets/app/views/shared/_gtm_body.html.erb +4 -0
  41. data/lib/potassium/assets/app/views/shared/_gtm_head.html.erb +7 -0
  42. data/lib/potassium/assets/bin/cibuild.erb +24 -7
  43. data/lib/potassium/assets/bin/release +9 -0
  44. data/lib/potassium/assets/bin/setup.erb +1 -1
  45. data/lib/potassium/assets/config/database_mysql.yml.erb +2 -2
  46. data/lib/potassium/assets/config/database_postgresql.yml.erb +2 -2
  47. data/lib/potassium/assets/config/graphql_playground.rb +20 -0
  48. data/lib/potassium/assets/config/puma.rb +1 -1
  49. data/lib/potassium/assets/config/shrine.rb +36 -0
  50. data/lib/potassium/assets/docker-compose.ci.yml +2 -1
  51. data/lib/potassium/assets/lib/tasks/auto_annotate_models.rake +34 -33
  52. data/lib/potassium/assets/package.json +4 -1
  53. data/lib/potassium/assets/redis.yml +1 -2
  54. data/lib/potassium/assets/testing/rails_helper.rb +4 -2
  55. data/lib/potassium/cli/commands/create.rb +12 -19
  56. data/lib/potassium/cli_options.rb +77 -26
  57. data/lib/potassium/helpers/gem-helpers.rb +1 -1
  58. data/lib/potassium/helpers/template-helpers.rb +4 -0
  59. data/lib/potassium/newest_version_ensurer.rb +19 -36
  60. data/lib/potassium/node_version_ensurer.rb +30 -0
  61. data/lib/potassium/recipes/admin.rb +3 -3
  62. data/lib/potassium/recipes/annotate.rb +1 -1
  63. data/lib/potassium/recipes/api.rb +93 -21
  64. data/lib/potassium/recipes/background_processor.rb +66 -19
  65. data/lib/potassium/recipes/ci.rb +6 -4
  66. data/lib/potassium/recipes/data_migrate.rb +44 -0
  67. data/lib/potassium/recipes/database.rb +4 -0
  68. data/lib/potassium/recipes/database_container.rb +7 -5
  69. data/lib/potassium/recipes/draper.rb +1 -10
  70. data/lib/potassium/recipes/file_storage.rb +66 -0
  71. data/lib/potassium/recipes/front_end.rb +219 -9
  72. data/lib/potassium/recipes/github.rb +93 -15
  73. data/lib/potassium/recipes/google_tag_manager.rb +90 -0
  74. data/lib/potassium/recipes/heroku.rb +44 -30
  75. data/lib/potassium/recipes/mailer.rb +27 -4
  76. data/lib/potassium/recipes/node.rb +21 -0
  77. data/lib/potassium/recipes/rack_cors.rb +18 -15
  78. data/lib/potassium/recipes/schedule.rb +17 -2
  79. data/lib/potassium/recipes/style.rb +21 -3
  80. data/lib/potassium/recipes/vue_admin.rb +124 -0
  81. data/lib/potassium/templates/application.rb +9 -7
  82. data/lib/potassium/version.rb +6 -4
  83. data/potassium.gemspec +11 -6
  84. data/spec/features/api_spec.rb +25 -0
  85. data/spec/features/background_processor_spec.rb +19 -6
  86. data/spec/features/data_migrate_spec.rb +14 -0
  87. data/spec/features/database_container_spec.rb +2 -5
  88. data/spec/features/draper_spec.rb +1 -6
  89. data/spec/features/file_storage_spec.rb +75 -0
  90. data/spec/features/front_end_spec.rb +88 -0
  91. data/spec/features/github_spec.rb +53 -8
  92. data/spec/features/google_tag_manager_spec.rb +59 -0
  93. data/spec/features/graphql_spec.rb +71 -0
  94. data/spec/features/heroku_spec.rb +8 -5
  95. data/spec/features/mailer_spec.rb +58 -0
  96. data/spec/features/new_project_spec.rb +6 -14
  97. data/spec/features/node_spec.rb +28 -0
  98. data/spec/features/power_types_spec.rb +5 -16
  99. data/spec/features/schedule_spec.rb +11 -4
  100. data/spec/features/vue_admin_spec.rb +47 -0
  101. data/spec/spec_helper.rb +5 -0
  102. data/spec/support/fake_octokit.rb +31 -0
  103. data/spec/support/potassium_test_helpers.rb +26 -9
  104. data/tmp/.keep +0 -0
  105. metadata +157 -48
  106. data/circle.yml +0 -12
  107. data/lib/potassium/assets/.circleci/config.yml +0 -20
  108. data/lib/potassium/assets/active_admin/active_admin.js.coffee +0 -4
  109. data/lib/potassium/assets/active_admin/init_activeadmin_angular.rb +0 -8
  110. data/lib/potassium/assets/api/api_error_concern.rb +0 -32
  111. data/lib/potassium/assets/api/base_controller.rb +0 -9
  112. data/lib/potassium/assets/api/draper_responder.rb +0 -62
  113. data/lib/potassium/assets/api/responder.rb +0 -41
  114. data/lib/potassium/assets/aws.rb +0 -1
  115. data/lib/potassium/assets/sidekiq_scheduler.yml +0 -9
  116. data/lib/potassium/assets/testing/paperclip.rb +0 -59
  117. data/lib/potassium/recipes/active_storage.rb +0 -40
  118. data/lib/potassium/recipes/angular_admin.rb +0 -56
  119. data/lib/potassium/recipes/aws_sdk.rb +0 -7
  120. data/lib/potassium/recipes/paperclip.rb +0 -47
  121. data/spec/features/active_storage_spec.rb +0 -30
  122. data/spec/features/front_end.rb +0 -30
@@ -8,10 +8,10 @@ class Recipes::Schedule < Rails::AppBuilder
8
8
 
9
9
  def create
10
10
  if selected?(:schedule)
11
- gather_gem 'sidekiq-scheduler'
11
+ gather_gem 'sidekiq-scheduler', '>= 3.0.1'
12
12
  add_readme_section :internal_dependencies, :sidekiq_scheduler
13
+ append_schedule_section_to_yml
13
14
  end
14
- template '../assets/sidekiq_scheduler.yml', 'config/sidekiq.yml', force: true
15
15
  end
16
16
 
17
17
  def install
@@ -22,4 +22,19 @@ class Recipes::Schedule < Rails::AppBuilder
22
22
  def installed?
23
23
  gem_exists?(/sidekiq-scheduler/) && file_exist?('config/sidekiq.yml')
24
24
  end
25
+
26
+ private
27
+
28
+ def append_schedule_section_to_yml
29
+ append_to_file(
30
+ 'config/sidekiq.yml',
31
+ <<-HERE.gsub(/^ {8}/, '')
32
+ # :schedule:
33
+ # an_scheduled_task:
34
+ # cron: '0 * * * * *' # Runs once per minute
35
+ # class: ExampleJob
36
+ # args: ['a', 'b']
37
+ HERE
38
+ )
39
+ end
25
40
  end
@@ -1,12 +1,30 @@
1
1
  class Recipes::Style < Rails::AppBuilder
2
2
  def create
3
- append_to_file ".gitignore", ".rubocop.yml\n"
4
- append_to_file ".gitignore", ".eslintrc.json\n"
5
- append_to_file ".gitignore", ".sscs-lint.yml\n"
3
+ add_linters
4
+ add_config_files
6
5
  add_readme_header :style_guide
7
6
  end
8
7
 
9
8
  def install
10
9
  create
11
10
  end
11
+
12
+ private
13
+
14
+ def add_linters
15
+ gather_gems(:development, :test) do
16
+ gather_gem 'rubocop', Potassium::RUBOCOP_VERSION
17
+ gather_gem 'rubocop-performance'
18
+ gather_gem 'rubocop-rails'
19
+ gather_gem 'rubocop-rspec', Potassium::RUBOCOP_RSPEC_VERSION
20
+ end
21
+ run 'bin/yarn add --dev stylelint eslint eslint-plugin-import'
22
+ run 'bin/yarn add --dev eslint-plugin-vue' if selected?(:front_end, :vue)
23
+ end
24
+
25
+ def add_config_files
26
+ copy_file '../assets/.rubocop.yml', '.rubocop.yml'
27
+ copy_file '../assets/.eslintrc.json', '.eslintrc.json'
28
+ copy_file '../assets/.stylelintrc.json', '.stylelintrc.json'
29
+ end
12
30
  end
@@ -0,0 +1,124 @@
1
+ class Recipes::VueAdmin < Rails::AppBuilder
2
+ def ask
3
+ if selected?(:admin_mode)
4
+ vue_admin = answer(:vue_admin) do
5
+ Ask.confirm "Do you want Vue support for ActiveAdmin?"
6
+ end
7
+ set(:vue_admin, vue_admin)
8
+ set(:front_end, :vue) if vue_admin
9
+ end
10
+ end
11
+
12
+ def create
13
+ recipe = self
14
+ if selected?(:vue_admin)
15
+ after(:admin_install) do
16
+ recipe.add_vue_admin
17
+ end
18
+ end
19
+ end
20
+
21
+ def install
22
+ active_admin = load_recipe(:admin)
23
+ if active_admin.installed?
24
+ add_vue_admin
25
+ info "VueAdmin installed"
26
+ else
27
+ info "VueAdmin can't be installed because Active Admin isn't installed."
28
+ end
29
+ end
30
+
31
+ def installed?
32
+ dir_exist?("app/assets/javascripts/admin")
33
+ end
34
+
35
+ def add_vue_admin
36
+ add_vue_component_library
37
+ add_component_integration
38
+ copy_file '../assets/active_admin/init_activeadmin_vue.rb',
39
+ 'config/initializers/init_activeadmin_vue.rb'
40
+ copy_file '../assets/active_admin/admin_application.js',
41
+ 'app/javascript/packs/admin_application.js',
42
+ force: true
43
+ empty_directory 'app/javascript/components'
44
+ copy_file '../assets/active_admin/admin-component.vue',
45
+ 'app/javascript/components/admin-component.vue',
46
+ force: true
47
+ end
48
+
49
+ def add_component_integration
50
+ line = "class CustomFooter < ActiveAdmin::Component"
51
+ initializer = "config/initializers/active_admin.rb"
52
+ gsub_file initializer, /(#{Regexp.escape(line)})/mi do |_match|
53
+ <<~HERE
54
+ require "vue_component.rb"
55
+ AUTO_BUILD_ELEMENTS=[:admin_component, :template, :slot]
56
+ component_creator(AUTO_BUILD_ELEMENTS)
57
+
58
+ #{line}
59
+ HERE
60
+ end
61
+ end
62
+
63
+ def add_vue_component_library
64
+ lib_component_path = "lib/vue_component.rb"
65
+ class_definitions =
66
+ <<~HERE
67
+ #{vue_component}
68
+ #{component_builder}
69
+ HERE
70
+ File.open(lib_component_path, "w") { |file| file.write(class_definitions) }
71
+ end
72
+
73
+ def vue_component
74
+ <<~HERE
75
+ class VueComponent < Arbre::Component
76
+ builder_method :root
77
+ def tag_name
78
+ :root
79
+ end
80
+
81
+ def initialize(*)
82
+ super
83
+ end
84
+
85
+ def build(attributes = {})
86
+ super(process_attributes(attributes))
87
+ end
88
+
89
+ def process_attributes(attributes)
90
+ vue_attributes = {}
91
+ attributes.each do |key, value|
92
+ dasherized_key = key.to_s.dasherize
93
+ if value.is_a?(String)
94
+ vue_attributes[dasherized_key] = value
95
+ elsif !dasherized_key.index(':').nil? && dasherized_key.index(':').zero?
96
+ vue_attributes[dasherized_key] = value.to_json
97
+ else
98
+ vue_attributes[":" + dasherized_key] = value.to_json
99
+ end
100
+ end
101
+ vue_attributes
102
+ end
103
+ end
104
+ HERE
105
+ end
106
+
107
+ def component_builder
108
+ <<~HERE
109
+ def component_creator(auto_build_elements)
110
+ auto_build_elements.each do |element|
111
+ as_string=element.to_s
112
+ camelized_element = as_string.camelize
113
+ Object.const_set(camelized_element,Class.new(VueComponent))
114
+ Object.const_get(camelized_element).class_eval do
115
+ builder_method as_string.to_sym
116
+ def tag_name
117
+ self.class.to_s.underscore
118
+ end
119
+ end
120
+ end
121
+ end
122
+ HERE
123
+ end
124
+ end
@@ -1,4 +1,5 @@
1
1
  set :app_name, app_name
2
+ set :node_version, node_version
2
3
  set :titleized_app_name, get(:app_name).titleize
3
4
  set :underscorized_app_name, get(:app_name).underscore
4
5
  set :dasherized_app_name, get(:app_name).dasherize
@@ -19,8 +20,9 @@ run_action(:asking) do
19
20
  ask :database
20
21
  ask :devise
21
22
  ask :admin
23
+ ask :google_tag_manager
22
24
  ask :front_end
23
- ask :angular_admin
25
+ ask :vue_admin
24
26
  ask :mailer
25
27
  ask :background_processor
26
28
  ask :schedule
@@ -29,8 +31,7 @@ run_action(:asking) do
29
31
  ask :i18n
30
32
  ask :api
31
33
  ask :draper
32
- ask :active_storage
33
- ask :paperclip
34
+ ask :file_storage
34
35
  ask :heroku
35
36
  ask :github
36
37
  end
@@ -46,11 +47,12 @@ run_action(:recipe_loading) do
46
47
  create :database_container
47
48
  create :database
48
49
  create :annotate
50
+ create :data_migrate
49
51
  create :listen
52
+ create :node
50
53
  create :ruby
51
54
  create :yarn
52
55
  create :editorconfig
53
- create :aws_sdk
54
56
  create :mailer
55
57
  create :background_processor
56
58
  create :schedule
@@ -59,7 +61,7 @@ run_action(:recipe_loading) do
59
61
  create :better_errors
60
62
  create :devise
61
63
  create :admin
62
- create :angular_admin
64
+ create :vue_admin
63
65
  create :seeds
64
66
  create :error_reporting
65
67
  create :pundit
@@ -69,13 +71,13 @@ run_action(:recipe_loading) do
69
71
  create :draper
70
72
  create :power_types
71
73
  create :rack_cors
72
- create :active_storage
73
- create :paperclip
74
+ create :file_storage
74
75
  create :tzinfo
75
76
  create :script
76
77
  create :github
77
78
  create :cleanup
78
79
  create :front_end
80
+ create :google_tag_manager
79
81
  end
80
82
 
81
83
  info "Gathered enough information. Applying the template. Wait a minute."
@@ -1,8 +1,10 @@
1
1
  module Potassium
2
- VERSION = "5.2.1"
3
- RUBY_VERSION = "2.5.5"
4
- RAILS_VERSION = "~> 5.2.1"
5
- RUBOCOP_VERSION = "~> 0.65.0"
2
+ VERSION = "6.2.0"
3
+ RUBY_VERSION = "2.7.0"
4
+ RAILS_VERSION = "~> 6.0.2"
5
+ RUBOCOP_VERSION = "~> 1.9"
6
+ RUBOCOP_RSPEC_VERSION = "~> 2.2"
6
7
  POSTGRES_VERSION = "11.3"
7
8
  MYSQL_VERSION = "5.7"
9
+ NODE_VERSION = "12"
8
10
  end
data/potassium.gemspec CHANGED
@@ -18,15 +18,20 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.7"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "rspec", "~> 3.4.0"
21
+ spec.add_development_dependency "bundler", "~> 2.0"
24
22
  spec.add_development_dependency "pry", "~> 0.10.3"
23
+ spec.add_development_dependency "rake", "~> 13.0"
24
+ spec.add_development_dependency "rspec", "~> 3.4.0"
25
+ spec.add_development_dependency "rspec_junit_formatter"
25
26
  spec.add_development_dependency "rubocop", Potassium::RUBOCOP_VERSION
26
- spec.add_runtime_dependency "rails", Potassium::RAILS_VERSION
27
+ spec.add_development_dependency "rubocop-performance"
28
+ spec.add_development_dependency "rubocop-rails"
29
+ spec.add_development_dependency "rubocop-rspec", Potassium::RUBOCOP_RSPEC_VERSION
30
+ spec.add_runtime_dependency "gems", "~> 0.8"
27
31
  spec.add_runtime_dependency "gli", "~> 2.12.2"
28
32
  spec.add_runtime_dependency "inquirer", "~> 0.2"
29
- spec.add_runtime_dependency "gems", "~> 0.8"
30
- spec.add_runtime_dependency "semantic", "~> 1.4"
31
33
  spec.add_runtime_dependency "levenshtein", "~> 0.2"
34
+ spec.add_runtime_dependency "octokit", "~> 4.18"
35
+ spec.add_runtime_dependency "rails", Potassium::RAILS_VERSION
36
+ spec.add_runtime_dependency "semantic", "~> 1.4"
32
37
  end
@@ -0,0 +1,25 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Api" do
4
+ before :all do
5
+ drop_dummy_database
6
+ remove_project_directory
7
+ create_dummy_project("api" => :rest)
8
+ end
9
+
10
+ it "adds power_api related gems to Gemfile" do
11
+ gemfile_content = IO.read("#{project_path}/Gemfile")
12
+ expect(gemfile_content).to include("gem 'power_api'")
13
+ expect(gemfile_content).to include("gem 'rswag-specs'")
14
+ end
15
+
16
+ it "adds the power_api brief to README file" do
17
+ readme = IO.read("#{project_path}/README.md")
18
+ expect(readme).to include("Power API")
19
+ end
20
+
21
+ it "installs power_api" do
22
+ content = IO.read("#{project_path}/app/controllers/api/base_controller.rb")
23
+ expect(content).to include("Api::BaseController < PowerApi::BaseController")
24
+ end
25
+ end
@@ -1,11 +1,12 @@
1
1
  require "spec_helper"
2
+ require 'yaml'
2
3
 
3
4
  RSpec.describe "BackgroundProcessor" do
4
- context "working with sidekiq" do
5
+ context "when working with sidekiq and no mailer" do
5
6
  before :all do
6
7
  drop_dummy_database
7
8
  remove_project_directory
8
- create_dummy_project("background_processor" => "sidekiq", "heroku" => true)
9
+ create_dummy_project("background_processor" => true, "heroku" => true)
9
10
  end
10
11
 
11
12
  it "adds sidekiq gem to Gemfile" do
@@ -41,6 +42,9 @@ RSpec.describe "BackgroundProcessor" do
41
42
  it "adds ENV vars" do
42
43
  content = IO.read("#{project_path}/.env.development")
43
44
  expect(content).to include("DB_POOL=25")
45
+ expect(content).to include('REDIS_HOST=127.0.0.1')
46
+ expect(content).to include('REDIS_PORT=$(make services-port SERVICE=redis PORT=6379)')
47
+ expect(content).to include('REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT}/1')
44
48
  end
45
49
 
46
50
  it "adds sidekiq.rb file" do
@@ -48,19 +52,28 @@ RSpec.describe "BackgroundProcessor" do
48
52
  expect(content).to include("require 'sidekiq'")
49
53
  end
50
54
 
51
- it "adds sidekiq.yml file" do
52
- content = IO.read("#{project_path}/config/sidekiq.yml")
53
- expect(content).to include("concurrency: 5")
55
+ it "adds sidekiq.yml file with no mailer queue" do
56
+ yml_path = "#{project_path}/config/sidekiq.yml"
57
+ content = IO.read(yml_path)
58
+ expect(File.exist?(yml_path)).to be true
59
+ expect(content).not_to include("- mailers")
54
60
  end
55
61
 
56
62
  it "adds redis.yml file" do
57
63
  content = IO.read("#{project_path}/config/redis.yml")
58
- expect(content).to include("REDIS_HOST")
64
+ expect(content).to include("REDIS_URL")
59
65
  end
60
66
 
61
67
  it "mounts sidekiq app" do
62
68
  content = IO.read("#{project_path}/config/routes.rb")
63
69
  expect(content).to include("mount Sidekiq::Web => '/queue'")
64
70
  end
71
+
72
+ it 'adds redis to docker-compose' do
73
+ compose_file = IO.read("#{project_path}/docker-compose.yml")
74
+ compose_content = YAML.safe_load(compose_file, symbolize_names: true)
75
+
76
+ expect(compose_content[:services]).to include(:redis)
77
+ end
65
78
  end
66
79
  end
@@ -0,0 +1,14 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe 'DataMigrate' do
4
+ let(:gemfile) { IO.read("#{project_path}/Gemfile") }
5
+ let(:annotate_task) { IO.read("#{project_path}/lib/tasks/auto_annotate_models.rake") }
6
+
7
+ before(:all) do
8
+ remove_project_directory
9
+ create_dummy_project
10
+ end
11
+
12
+ it { expect(gemfile).to include("data_migrate") }
13
+ it { expect(annotate_task).to include("data_migrate_tasks") }
14
+ end
@@ -1,4 +1,5 @@
1
1
  require "spec_helper"
2
+ require "yaml"
2
3
 
3
4
  RSpec.describe "DatabaseContainer" do
4
5
  before(:all) do
@@ -10,10 +11,6 @@ RSpec.describe "DatabaseContainer" do
10
11
  create_dummy_project("database" => database)
11
12
  end
12
13
 
13
- after do
14
- `docker-compose -f #{project_path}/docker-compose.yml down`
15
- end
16
-
17
14
  [:postgresql, :mysql].each do |db_type|
18
15
  context "when database is #{db_type}" do
19
16
  let!(:database) { db_type }
@@ -31,7 +28,7 @@ RSpec.describe "DatabaseContainer" do
31
28
  .to include("DB_PORT=$(make services-port SERVICE=#{service_name} PORT=#{db_port})")
32
29
  expect(env_file).to include("DB_HOST=127.0.0.1")
33
30
  expect(File.exist?("#{project_path}/Makefile")).to be true
34
- expect(setup_file).to include("make services-up")
31
+ expect(setup_file).to include("docker-compose up -d")
35
32
  end
36
33
  end
37
34
  end
@@ -4,7 +4,7 @@ RSpec.describe "Draper" do
4
4
  before :all do
5
5
  drop_dummy_database
6
6
  remove_project_directory
7
- create_dummy_project("draper" => true, "api" => true)
7
+ create_dummy_project("draper" => true)
8
8
  end
9
9
 
10
10
  it "adds the Draper gem to Gemfile" do
@@ -17,11 +17,6 @@ RSpec.describe "Draper" do
17
17
  expect(readme).to include("Draper")
18
18
  end
19
19
 
20
- it "adds api responder to work with draper" do
21
- responder_content = IO.read("#{project_path}/app/responders/api_responder.rb")
22
- expect(responder_content).to include("decorated_resource")
23
- end
24
-
25
20
  it "adds decorators directory" do
26
21
  content = IO.read("#{project_path}/app/decorators/.keep")
27
22
  expect(content).to be_empty