hanami 2.0.0.beta2 → 2.0.0.beta3
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/lib/hanami/configuration/null_configuration.rb +2 -2
- data/lib/hanami/configuration.rb +17 -17
- data/lib/hanami/routes.rb +48 -21
- data/lib/hanami/version.rb +1 -1
- data/spec/{new_integration → integration}/action/cookies_spec.rb +0 -0
- data/spec/{new_integration → integration}/action/csrf_protection_spec.rb +0 -0
- data/spec/{new_integration → integration}/action/routes_spec.rb +3 -5
- data/spec/{new_integration → integration}/action/sessions_spec.rb +0 -0
- data/spec/{new_integration → integration}/action/slice_configuration_spec.rb +0 -0
- data/spec/{new_integration → integration}/action/view_integration_spec.rb +0 -0
- data/spec/{new_integration → integration}/action/view_rendering/automatic_rendering_spec.rb +0 -0
- data/spec/{new_integration → integration}/action/view_rendering/paired_view_inference_spec.rb +0 -0
- data/spec/{new_integration → integration}/action/view_rendering_spec.rb +0 -0
- data/spec/{new_integration → integration}/code_loading/loading_from_app_spec.rb +0 -0
- data/spec/{new_integration → integration}/code_loading/loading_from_lib_spec.rb +0 -0
- data/spec/{new_integration → integration}/code_loading/loading_from_slice_spec.rb +0 -0
- data/spec/{new_integration → integration}/container/application_routes_helper_spec.rb +1 -3
- data/spec/{new_integration → integration}/container/auto_injection_spec.rb +0 -0
- data/spec/{new_integration → integration}/container/auto_registration_spec.rb +0 -0
- data/spec/{new_integration → integration}/container/autoloader_spec.rb +0 -0
- data/spec/{new_integration → integration}/container/imports_spec.rb +0 -0
- data/spec/{new_integration → integration}/container/prepare_container_spec.rb +0 -0
- data/spec/{new_integration → integration}/container/shutdown_spec.rb +0 -0
- data/spec/{new_integration → integration}/container/standard_bootable_components_spec.rb +0 -0
- data/spec/{new_integration → integration}/dotenv_loading_spec.rb +0 -0
- data/spec/{new_integration → integration}/rack_app/middleware_spec.rb +9 -15
- data/spec/{new_integration → integration}/rack_app/non_booted_rack_app_spec.rb +3 -5
- data/spec/{new_integration → integration}/rack_app/rack_app_spec.rb +28 -48
- data/spec/{new_integration → integration}/settings/access_to_constants_spec.rb +0 -0
- data/spec/{new_integration → integration}/settings/loading_from_env_spec.rb +0 -0
- data/spec/{new_integration → integration}/settings/settings_component_loading_spec.rb +0 -0
- data/spec/{new_integration → integration}/settings/using_types_spec.rb +0 -0
- data/spec/{new_integration → integration}/setup_spec.rb +20 -0
- data/spec/{new_integration → integration}/slices/external_slice_spec.rb +2 -4
- data/spec/{new_integration → integration}/slices/slice_configuration_spec.rb +0 -0
- data/spec/{new_integration → integration}/slices/slice_loading_spec.rb +0 -0
- data/spec/{new_integration → integration}/slices/slice_routing_spec.rb +5 -13
- data/spec/{new_integration → integration}/slices/slice_settings_spec.rb +0 -0
- data/spec/{new_integration → integration}/slices_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/context/assets_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/context/inflector_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/context/request_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/context/routes_spec.rb +1 -3
- data/spec/{new_integration → integration}/view/context/settings_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/inflector_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/part_namespace_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/path_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/slice_configuration_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/template_spec.rb +0 -0
- data/spec/{new_integration → integration}/view/views_spec.rb +0 -0
- data/spec/unit/hanami/configuration/actions_spec.rb +4 -15
- data/spec/unit/hanami/configuration/router_spec.rb +45 -0
- data/spec/unit/hanami/configuration/views_spec.rb +4 -15
- data/spec/unit/hanami/version_spec.rb +1 -1
- metadata +97 -244
- data/lib/hanami/server.rb +0 -29
- data/spec/integration/application_middleware_stack_spec.rb +0 -84
- data/spec/integration/assets/cdn_spec.rb +0 -48
- data/spec/integration/assets/fingerprint_spec.rb +0 -42
- data/spec/integration/assets/helpers_spec.rb +0 -50
- data/spec/integration/assets/serve_spec.rb +0 -70
- data/spec/integration/assets/subresource_integrity_spec.rb +0 -54
- data/spec/integration/body_parsers_spec.rb +0 -50
- data/spec/integration/cli/assets/precompile_spec.rb +0 -147
- data/spec/integration/cli/assets_spec.rb +0 -14
- data/spec/integration/cli/console_spec.rb +0 -105
- data/spec/integration/cli/db/apply_spec.rb +0 -74
- data/spec/integration/cli/db/console_spec.rb +0 -40
- data/spec/integration/cli/db/create_spec.rb +0 -50
- data/spec/integration/cli/db/drop_spec.rb +0 -54
- data/spec/integration/cli/db/migrate_spec.rb +0 -108
- data/spec/integration/cli/db/prepare_spec.rb +0 -36
- data/spec/integration/cli/db/rollback_spec.rb +0 -96
- data/spec/integration/cli/db/version_spec.rb +0 -38
- data/spec/integration/cli/db_spec.rb +0 -21
- data/spec/integration/cli/destroy/action_spec.rb +0 -143
- data/spec/integration/cli/destroy/app_spec.rb +0 -118
- data/spec/integration/cli/destroy/mailer_spec.rb +0 -74
- data/spec/integration/cli/destroy/migration_spec.rb +0 -70
- data/spec/integration/cli/destroy/model_spec.rb +0 -113
- data/spec/integration/cli/destroy_spec.rb +0 -18
- data/spec/integration/cli/generate/action_spec.rb +0 -469
- data/spec/integration/cli/generate/app_spec.rb +0 -215
- data/spec/integration/cli/generate/mailer_spec.rb +0 -189
- data/spec/integration/cli/generate/migration_spec.rb +0 -72
- data/spec/integration/cli/generate/model_spec.rb +0 -290
- data/spec/integration/cli/generate/secret_spec.rb +0 -56
- data/spec/integration/cli/generate_spec.rb +0 -19
- data/spec/integration/cli/new/database_spec.rb +0 -235
- data/spec/integration/cli/new/hanami_head_spec.rb +0 -27
- data/spec/integration/cli/new/template_spec.rb +0 -118
- data/spec/integration/cli/new/test_spec.rb +0 -274
- data/spec/integration/cli/new_spec.rb +0 -970
- data/spec/integration/cli/plugins_spec.rb +0 -39
- data/spec/integration/cli/routes_spec.rb +0 -49
- data/spec/integration/cli/server_spec.rb +0 -626
- data/spec/integration/cli/version_spec.rb +0 -85
- data/spec/integration/early_hints_spec.rb +0 -35
- data/spec/integration/handle_exceptions_spec.rb +0 -244
- data/spec/integration/head_spec.rb +0 -89
- data/spec/integration/http_headers_spec.rb +0 -29
- data/spec/integration/mailer_spec.rb +0 -32
- data/spec/integration/middleware_spec.rb +0 -81
- data/spec/integration/mount_applications_spec.rb +0 -88
- data/spec/integration/project_initializers_spec.rb +0 -40
- data/spec/integration/rackup_spec.rb +0 -35
- data/spec/integration/rake/with_minitest_spec.rb +0 -67
- data/spec/integration/rake/with_rspec_spec.rb +0 -69
- data/spec/integration/routing_helpers_spec.rb +0 -61
- data/spec/integration/security/content_security_policy_spec.rb +0 -46
- data/spec/integration/security/csrf_protection_spec.rb +0 -42
- data/spec/integration/security/force_ssl_spec.rb +0 -29
- data/spec/integration/security/x_content_type_options_spec.rb +0 -46
- data/spec/integration/security/x_frame_options_spec.rb +0 -46
- data/spec/integration/security/x_xss_protection_spec.rb +0 -46
- data/spec/integration/send_file_spec.rb +0 -51
- data/spec/integration/sessions_spec.rb +0 -247
- data/spec/integration/static_middleware_spec.rb +0 -21
- data/spec/integration/streaming_spec.rb +0 -41
- data/spec/integration/unsafe_send_file_spec.rb +0 -52
- data/spec/support/fixtures/hanami-plugin/Gemfile +0 -8
- data/spec/support/fixtures/hanami-plugin/README.md +0 -35
- data/spec/support/fixtures/hanami-plugin/Rakefile +0 -4
- data/spec/support/fixtures/hanami-plugin/bin/console +0 -15
- data/spec/support/fixtures/hanami-plugin/bin/setup +0 -8
- data/spec/support/fixtures/hanami-plugin/hanami-plugin.gemspec +0 -28
- data/spec/support/fixtures/hanami-plugin/lib/hanami/plugin/cli.rb +0 -19
- data/spec/support/fixtures/hanami-plugin/lib/hanami/plugin/version.rb +0 -7
- data/spec/support/fixtures/hanami-plugin/lib/hanami/plugin.rb +0 -8
- data/spec/unit/hanami/routes_spec.rb +0 -25
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
RSpec.describe "hanami destroy", type: :integration do
|
|
4
|
-
describe "app" do
|
|
5
|
-
it "destroys app" do
|
|
6
|
-
with_project do
|
|
7
|
-
generate "app admin"
|
|
8
|
-
|
|
9
|
-
output = [
|
|
10
|
-
"subtract .env.test",
|
|
11
|
-
"subtract .env.development",
|
|
12
|
-
"subtract config/environment.rb",
|
|
13
|
-
"subtract config/environment.rb",
|
|
14
|
-
"remove spec/admin",
|
|
15
|
-
"remove apps/admin"
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
run_cmd "hanami destroy app admin", output
|
|
19
|
-
|
|
20
|
-
expect(".env.test").to_not have_file_content(%r{ADMIN_SESSIONS_SECRET})
|
|
21
|
-
expect(".env.development").to_not have_file_content(%r{ADMIN_SESSIONS_SECRET})
|
|
22
|
-
|
|
23
|
-
expect("config/environment.rb").to_not have_file_content(%r{mount Admin::App})
|
|
24
|
-
expect("config/environment.rb").to_not have_file_content("require_relative '../apps/admin/app'")
|
|
25
|
-
|
|
26
|
-
expect("public/assets/admin").to_not be_an_existing_path
|
|
27
|
-
expect("public/assets.json").to_not be_an_existing_path
|
|
28
|
-
|
|
29
|
-
expect("spec/admin").to_not be_an_existing_path
|
|
30
|
-
expect("apps/admin").to_not be_an_existing_path
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
it "destroys app with actions and assets" do
|
|
35
|
-
with_project do
|
|
36
|
-
generate "app api --app-base-url=/api/v1"
|
|
37
|
-
generate "action api home#index"
|
|
38
|
-
|
|
39
|
-
asset = File.join("apps", "api", "assets", "javascripts", "app.js")
|
|
40
|
-
touch asset
|
|
41
|
-
|
|
42
|
-
hanami "assets precompile"
|
|
43
|
-
|
|
44
|
-
output = [
|
|
45
|
-
"subtract .env.test",
|
|
46
|
-
"subtract .env.development",
|
|
47
|
-
"subtract config/environment.rb",
|
|
48
|
-
"subtract config/environment.rb",
|
|
49
|
-
"remove public/assets/api/v1",
|
|
50
|
-
"remove public/assets.json",
|
|
51
|
-
"remove spec/api",
|
|
52
|
-
"remove apps/api"
|
|
53
|
-
]
|
|
54
|
-
|
|
55
|
-
run_cmd "hanami destroy app api", output
|
|
56
|
-
|
|
57
|
-
expect(".env.test").to_not have_file_content(%r{API_SESSIONS_SECRET})
|
|
58
|
-
expect(".env.development").to_not have_file_content(%r{API_SESSIONS_SECRET})
|
|
59
|
-
|
|
60
|
-
expect("config/environment.rb").to_not have_file_content(%r{mount Api::App})
|
|
61
|
-
expect("config/environment.rb").to_not have_file_content("require_relative '../apps/api/app'")
|
|
62
|
-
|
|
63
|
-
expect("public/assets/api/v1").to_not be_an_existing_path
|
|
64
|
-
expect("public/assets.json").to_not be_an_existing_path
|
|
65
|
-
|
|
66
|
-
expect("spec/api").to_not be_an_existing_path
|
|
67
|
-
expect("apps/api").to_not be_an_existing_path
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it "fails with missing argument" do
|
|
72
|
-
with_project do
|
|
73
|
-
output = <<-OUT
|
|
74
|
-
ERROR: "hanami destroy app" was called with no arguments
|
|
75
|
-
Usage: "hanami destroy app APP"
|
|
76
|
-
OUT
|
|
77
|
-
|
|
78
|
-
run_cmd "hanami destroy app", output, exit_status: 1
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
it "fails with unknown app" do
|
|
83
|
-
with_project do
|
|
84
|
-
output = <<-OUT
|
|
85
|
-
`unknown' is not a valid APP. Please specify one of: `web'
|
|
86
|
-
OUT
|
|
87
|
-
|
|
88
|
-
run_cmd "hanami destroy app unknown", output, exit_status: 1
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
it "prints help message" do
|
|
93
|
-
with_project do
|
|
94
|
-
output = <<~OUT
|
|
95
|
-
Command:
|
|
96
|
-
hanami destroy app
|
|
97
|
-
|
|
98
|
-
Usage:
|
|
99
|
-
hanami destroy app APP
|
|
100
|
-
|
|
101
|
-
Description:
|
|
102
|
-
Destroy an app
|
|
103
|
-
|
|
104
|
-
Arguments:
|
|
105
|
-
APP # REQUIRED The app name (eg. `web`)
|
|
106
|
-
|
|
107
|
-
Options:
|
|
108
|
-
--help, -h # Print this help
|
|
109
|
-
|
|
110
|
-
Examples:
|
|
111
|
-
hanami destroy app admin # Destroy `admin` app
|
|
112
|
-
OUT
|
|
113
|
-
|
|
114
|
-
run_cmd 'hanami destroy app --help', output
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
end # app
|
|
118
|
-
end
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
RSpec.describe "hanami destroy", type: :integration do
|
|
4
|
-
describe "mailer" do
|
|
5
|
-
context "destroy a mailer" do
|
|
6
|
-
let(:output) do
|
|
7
|
-
["remove spec/bookshelf_generate_mailer/mailers/welcome_spec.rb",
|
|
8
|
-
"remove lib/bookshelf_generate_mailer/mailers/templates/welcome.html.erb",
|
|
9
|
-
"remove lib/bookshelf_generate_mailer/mailers/templates/welcome.txt.erb",
|
|
10
|
-
"remove lib/bookshelf_generate_mailer/mailers/welcome.rb"]
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it "generate the mailer files" do
|
|
14
|
-
with_project("bookshelf_generate_mailer", test: "rspec") do
|
|
15
|
-
generate "mailer welcome"
|
|
16
|
-
|
|
17
|
-
run_cmd "hanami destroy mailer welcome", output
|
|
18
|
-
|
|
19
|
-
expect("spec/bookshelf_generate_mailer/mailers/welcome_spec.rb").to_not be_an_existing_file
|
|
20
|
-
expect("lib/bookshelf_generate_mailer/mailers/templates/welcome.html.erb").to_not be_an_existing_file
|
|
21
|
-
expect("lib/bookshelf_generate_mailer/mailers/templates/welcome.txt.erb").to_not be_an_existing_file
|
|
22
|
-
expect("lib/bookshelf_generate_mailer/mailers/welcome.rb").to_not be_an_existing_file
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
it "fails with missing arguments" do
|
|
28
|
-
with_project("bookshelf_generate_mailer_without_args") do
|
|
29
|
-
output = <<~OUT
|
|
30
|
-
ERROR: "hanami generate mailer" was called with no arguments
|
|
31
|
-
Usage: "hanami generate mailer MAILER"
|
|
32
|
-
OUT
|
|
33
|
-
|
|
34
|
-
run_cmd "hanami generate mailer", output, exit_status: 1
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
it "fails with unknown mailer" do
|
|
39
|
-
with_project do
|
|
40
|
-
output = <<~OUT
|
|
41
|
-
cannot find `unknown' mailer. Please have a look at `lib/bookshelf/mailers' directory to find an existing mailer.
|
|
42
|
-
OUT
|
|
43
|
-
|
|
44
|
-
run_cmd "hanami destroy mailer unknown", output, exit_status: 1
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it "prints help message" do
|
|
49
|
-
with_project do
|
|
50
|
-
output = <<~OUT
|
|
51
|
-
Command:
|
|
52
|
-
hanami destroy mailer
|
|
53
|
-
|
|
54
|
-
Usage:
|
|
55
|
-
hanami destroy mailer MAILER
|
|
56
|
-
|
|
57
|
-
Description:
|
|
58
|
-
Destroy a mailer
|
|
59
|
-
|
|
60
|
-
Arguments:
|
|
61
|
-
MAILER # REQUIRED The mailer name (eg. `welcome`)
|
|
62
|
-
|
|
63
|
-
Options:
|
|
64
|
-
--help, -h # Print this help
|
|
65
|
-
|
|
66
|
-
Examples:
|
|
67
|
-
hanami destroy mailer welcome # Destroy `WelcomeMailer` mailer
|
|
68
|
-
OUT
|
|
69
|
-
|
|
70
|
-
run_cmd 'hanami destroy mailer --help', output
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "pathname"
|
|
4
|
-
|
|
5
|
-
RSpec.describe "hanami destroy", type: :integration do
|
|
6
|
-
describe "migration" do
|
|
7
|
-
it "destroys migration" do
|
|
8
|
-
with_project do
|
|
9
|
-
migration = Pathname.new("db").join("migrations", "20170127165331_create_users.rb").to_s
|
|
10
|
-
File.open(migration, "wb+") { |f| f.write("migration") }
|
|
11
|
-
|
|
12
|
-
output = [
|
|
13
|
-
"remove #{migration}"
|
|
14
|
-
]
|
|
15
|
-
|
|
16
|
-
run_cmd "hanami destroy migration create_users", output
|
|
17
|
-
|
|
18
|
-
expect(migration).to_not be_an_existing_file
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it "fails with missing argument" do
|
|
23
|
-
with_project do
|
|
24
|
-
output = <<~OUT
|
|
25
|
-
ERROR: "hanami destroy migration" was called with no arguments
|
|
26
|
-
Usage: "hanami destroy migration MIGRATION"
|
|
27
|
-
OUT
|
|
28
|
-
run_command "hanami destroy migration", output, exit_status: 1
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it "fails with unknown migration" do
|
|
33
|
-
with_project do
|
|
34
|
-
output = <<~OUT
|
|
35
|
-
cannot find `create_unknowns'. Please have a look at `db/migrations' directory to find an existing migration
|
|
36
|
-
OUT
|
|
37
|
-
run_command "hanami destroy migration create_unknowns", output, exit_status: 1
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it "prints help message" do
|
|
42
|
-
with_project do
|
|
43
|
-
banner = <<~OUT
|
|
44
|
-
Command:
|
|
45
|
-
hanami destroy migration
|
|
46
|
-
|
|
47
|
-
Usage:
|
|
48
|
-
hanami destroy migration MIGRATION
|
|
49
|
-
|
|
50
|
-
Description:
|
|
51
|
-
Destroy a migration
|
|
52
|
-
|
|
53
|
-
Arguments:
|
|
54
|
-
MIGRATION # REQUIRED The migration name (eg. `create_users`)
|
|
55
|
-
|
|
56
|
-
Options:
|
|
57
|
-
--help, -h # Print this help
|
|
58
|
-
|
|
59
|
-
Examples:
|
|
60
|
-
OUT
|
|
61
|
-
output = [
|
|
62
|
-
banner,
|
|
63
|
-
%r{ hanami destroy migration create_users # Destroy `db/migrations/[\d]{14}_create_users.rb`}
|
|
64
|
-
]
|
|
65
|
-
|
|
66
|
-
run_command "hanami destroy migration --help", output
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end # migration
|
|
70
|
-
end
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "pathname"
|
|
4
|
-
|
|
5
|
-
RSpec.describe "hanami destroy", type: :integration do
|
|
6
|
-
describe "model" do
|
|
7
|
-
it "destroys model" do
|
|
8
|
-
with_project do
|
|
9
|
-
generate "model user"
|
|
10
|
-
migration = Dir.glob(Pathname.new("db").join("migrations", "*_create_users.rb")).first.to_s
|
|
11
|
-
|
|
12
|
-
output = [
|
|
13
|
-
"remove spec/bookshelf/repositories/user_repository_spec.rb",
|
|
14
|
-
"remove spec/bookshelf/entities/user_spec.rb",
|
|
15
|
-
"remove lib/bookshelf/repositories/user_repository.rb",
|
|
16
|
-
"remove lib/bookshelf/entities/user.rb"
|
|
17
|
-
]
|
|
18
|
-
|
|
19
|
-
run_cmd "hanami destroy model user", output
|
|
20
|
-
|
|
21
|
-
expect(migration).to be_an_existing_file
|
|
22
|
-
|
|
23
|
-
expect("lib/bookshelf/entities/user.rb").to_not be_an_existing_file
|
|
24
|
-
expect("lib/bookshelf/repositories/user_repository.rb").to_not be_an_existing_file
|
|
25
|
-
expect("spec/bookshelf/entities/user_spec.rb").to_not be_an_existing_file
|
|
26
|
-
expect("spec/bookshelf/repositories/user_repository_spec.rb").to_not be_an_existing_file
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it "destroys model even if migration was deleted manually" do
|
|
31
|
-
with_project do
|
|
32
|
-
generate "model user"
|
|
33
|
-
migration = Dir.glob(Pathname.new("db").join("migrations", "*_create_users.rb")).first.to_s
|
|
34
|
-
|
|
35
|
-
run_simple "rm #{migration}"
|
|
36
|
-
|
|
37
|
-
expect(migration).to_not be_an_existing_file
|
|
38
|
-
|
|
39
|
-
output = [
|
|
40
|
-
"remove spec/bookshelf/repositories/user_repository_spec.rb",
|
|
41
|
-
"remove spec/bookshelf/entities/user_spec.rb",
|
|
42
|
-
"remove lib/bookshelf/repositories/user_repository.rb",
|
|
43
|
-
"remove lib/bookshelf/entities/user.rb"
|
|
44
|
-
]
|
|
45
|
-
|
|
46
|
-
run_cmd "hanami destroy model user", output
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
it "fails with missing argument" do
|
|
51
|
-
with_project do
|
|
52
|
-
output = <<~OUT
|
|
53
|
-
ERROR: "hanami destroy model" was called with no arguments
|
|
54
|
-
Usage: "hanami destroy model MODEL"
|
|
55
|
-
OUT
|
|
56
|
-
|
|
57
|
-
run_cmd "hanami destroy model", output, exit_status: 1
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
xit "prints help message" do
|
|
62
|
-
with_project do
|
|
63
|
-
output = <<~OUT
|
|
64
|
-
Usage:
|
|
65
|
-
hanami destroy model NAME
|
|
66
|
-
|
|
67
|
-
Description:
|
|
68
|
-
`hanami destroy model` will destroy an entity along with repository and \n corresponding tests
|
|
69
|
-
|
|
70
|
-
> $ hanami destroy model car
|
|
71
|
-
OUT
|
|
72
|
-
|
|
73
|
-
run_cmd 'hanami destroy model --help', output
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
it "fails with unknown model" do
|
|
78
|
-
with_project do
|
|
79
|
-
output = <<~OUT
|
|
80
|
-
cannot find `unknown' model. Please have a look at `lib/bookshelf/entities' directory to find an existing model.
|
|
81
|
-
OUT
|
|
82
|
-
|
|
83
|
-
run_cmd "hanami destroy model unknown", output, exit_status: 1
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
it "prints help message" do
|
|
88
|
-
with_project do
|
|
89
|
-
output = <<~OUT
|
|
90
|
-
Command:
|
|
91
|
-
hanami destroy model
|
|
92
|
-
|
|
93
|
-
Usage:
|
|
94
|
-
hanami destroy model MODEL
|
|
95
|
-
|
|
96
|
-
Description:
|
|
97
|
-
Destroy a model
|
|
98
|
-
|
|
99
|
-
Arguments:
|
|
100
|
-
MODEL # REQUIRED The model name (eg. `user`)
|
|
101
|
-
|
|
102
|
-
Options:
|
|
103
|
-
--help, -h # Print this help
|
|
104
|
-
|
|
105
|
-
Examples:
|
|
106
|
-
hanami destroy model user # Destroy `User` entity and `UserRepository` repository
|
|
107
|
-
OUT
|
|
108
|
-
|
|
109
|
-
run_cmd 'hanami destroy model --help', output
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
end # model
|
|
113
|
-
end
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
RSpec.describe "hanami destroy", type: :integration do
|
|
4
|
-
it "prints subcommands" do
|
|
5
|
-
with_project do
|
|
6
|
-
output = <<~OUT
|
|
7
|
-
Commands:
|
|
8
|
-
hanami destroy action APP ACTION # Destroy an action from app
|
|
9
|
-
hanami destroy app APP # Destroy an app
|
|
10
|
-
hanami destroy mailer MAILER # Destroy a mailer
|
|
11
|
-
hanami destroy migration MIGRATION # Destroy a migration
|
|
12
|
-
hanami destroy model MODEL # Destroy a model
|
|
13
|
-
OUT
|
|
14
|
-
|
|
15
|
-
run_cmd "hanami destroy", output, exit_status: 1
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|