pliny 1.2.0 → 2.0.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.
- checksums.yaml +4 -4
- data/bin/pliny-generate +2 -1
- data/bin/pliny-new +2 -1
- data/bin/pliny-update +2 -1
- data/lib/pliny/canonical_log_line_helpers.rb +2 -0
- data/lib/pliny/commands/creator.rb +13 -12
- data/lib/pliny/commands/generator/base.rb +11 -9
- data/lib/pliny/commands/generator/endpoint.rb +19 -17
- data/lib/pliny/commands/generator/mediator.rb +7 -5
- data/lib/pliny/commands/generator/migration.rb +4 -2
- data/lib/pliny/commands/generator/model.rb +11 -9
- data/lib/pliny/commands/generator/schema.rb +4 -2
- data/lib/pliny/commands/generator/serializer.rb +7 -5
- data/lib/pliny/commands/generator.rb +19 -17
- data/lib/pliny/commands/updater.rb +5 -3
- data/lib/pliny/config_helpers.rb +10 -35
- data/lib/pliny/db_support.rb +21 -21
- data/lib/pliny/error_reporters/rollbar.rb +5 -3
- data/lib/pliny/error_reporters/sentry.rb +40 -0
- data/lib/pliny/error_reporters.rb +5 -5
- data/lib/pliny/errors.rb +46 -44
- data/lib/pliny/helpers/encode.rb +4 -2
- data/lib/pliny/helpers/params.rb +2 -0
- data/lib/pliny/helpers/serialize.rb +6 -4
- data/lib/pliny/helpers/zulu_time.rb +3 -1
- data/lib/pliny/log.rb +26 -25
- data/lib/pliny/metrics/backends/logger.rb +5 -3
- data/lib/pliny/metrics.rb +4 -2
- data/lib/pliny/middleware/canonical_log_line.rb +5 -3
- data/lib/pliny/middleware/cors.rb +13 -12
- data/lib/pliny/middleware/instruments.rb +9 -7
- data/lib/pliny/middleware/metrics.rb +3 -1
- data/lib/pliny/middleware/request_id.rb +4 -2
- data/lib/pliny/middleware/request_store/clear.rb +3 -1
- data/lib/pliny/middleware/request_store/seed.rb +3 -1
- data/lib/pliny/middleware/rescue_errors.rb +2 -0
- data/lib/pliny/middleware/versioning.rb +11 -11
- data/lib/pliny/request_store.rb +4 -2
- data/lib/pliny/rollbar_logger.rb +6 -4
- data/lib/pliny/router.rb +3 -2
- data/lib/pliny/tasks/db.rake +3 -1
- data/lib/pliny/tasks/schema.rake +3 -1
- data/lib/pliny/tasks.rb +2 -0
- data/lib/pliny/utils.rb +4 -2
- data/lib/pliny/version.rb +3 -1
- data/lib/pliny.rb +2 -0
- data/lib/template/{.rubocop.yml → .rubocop_template.yml} +1 -5
- data/lib/template/Gemfile +7 -4
- data/lib/template/Rakefile +1 -0
- data/lib/template/bin/console +2 -1
- data/lib/template/bin/run +4 -1
- data/lib/template/config/config.rb +18 -16
- data/lib/template/config/initializers/database.rb +4 -2
- data/lib/template/config/initializers/log.rb +2 -0
- data/lib/template/config/initializers/metrics.rb +2 -0
- data/lib/template/config/initializers/sentry.rb +14 -0
- data/lib/template/config/puma.rb +3 -1
- data/lib/template/config.ru +2 -0
- data/lib/template/db/seeds.rb +2 -0
- data/lib/template/lib/application.rb +2 -0
- data/lib/template/lib/endpoints/base.rb +2 -0
- data/lib/template/lib/endpoints/health.rb +2 -0
- data/lib/template/lib/endpoints/root.rb +2 -0
- data/lib/template/lib/endpoints/schema.rb +2 -0
- data/lib/template/lib/initializer.rb +6 -4
- data/lib/template/lib/mediators/base.rb +2 -0
- data/lib/template/lib/routes.rb +8 -6
- data/lib/template/lib/serializers/base.rb +2 -0
- data/lib/template/lib/tasks/rubocop.rake +2 -0
- data/lib/template/lib/tasks/spec.rake +2 -1
- data/lib/template/spec/endpoints/health_spec.rb +2 -0
- data/lib/template/spec/endpoints/schema_spec.rb +2 -0
- data/lib/template/spec/spec_helper.rb +2 -0
- data/lib/template/spec/spec_support/auto_define_rack_app.rb +2 -0
- data/lib/template/spec/spec_support/coverage.rb +2 -0
- data/lib/template/spec/spec_support/log.rb +2 -0
- data/spec/canonical_log_line_helpers_spec.rb +10 -8
- data/spec/commands/creator_spec.rb +3 -0
- data/spec/commands/generator/base_spec.rb +61 -59
- data/spec/commands/generator/endpoint_spec.rb +16 -15
- data/spec/commands/generator/mediator_spec.rb +11 -9
- data/spec/commands/generator/migration_spec.rb +7 -5
- data/spec/commands/generator/model_spec.rb +13 -11
- data/spec/commands/generator/schema_spec.rb +29 -28
- data/spec/commands/generator/serializer_spec.rb +11 -9
- data/spec/commands/generator_spec.rb +64 -62
- data/spec/commands/updater_spec.rb +2 -0
- data/spec/config_helpers_spec.rb +7 -85
- data/spec/db_support_spec.rb +46 -44
- data/spec/error_reporters/rollbar_spec.rb +8 -6
- data/spec/error_reporters/sentry_spec.rb +83 -0
- data/spec/error_reporters_spec.rb +4 -2
- data/spec/errors_spec.rb +4 -1
- data/spec/helpers/encode_spec.rb +2 -0
- data/spec/helpers/params_spec.rb +9 -7
- data/spec/helpers/serialize_spec.rb +11 -7
- data/spec/helpers/zulu_time_spec.rb +6 -4
- data/spec/integration_spec.rb +14 -12
- data/spec/log_spec.rb +8 -6
- data/spec/metrics/backends/logger_spec.rb +10 -6
- data/spec/metrics_spec.rb +15 -13
- data/spec/middleware/canonical_log_line_spec.rb +5 -2
- data/spec/middleware/cors_spec.rb +2 -0
- data/spec/middleware/instruments_spec.rb +10 -8
- data/spec/middleware/metrics_spec.rb +3 -1
- data/spec/middleware/request_id_spec.rb +2 -0
- data/spec/middleware/request_store/clear_spec.rb +2 -0
- data/spec/middleware/request_store/seed_spec.rb +2 -0
- data/spec/middleware/rescue_errors_spec.rb +13 -13
- data/spec/middleware/versioning_spec.rb +22 -20
- data/spec/request_store_spec.rb +3 -1
- data/spec/rollbar_logger_spec.rb +11 -9
- data/spec/router_spec.rb +9 -7
- data/spec/spec_helper.rb +3 -1
- data/spec/support/config.rb +2 -0
- data/spec/support/endpoints.rb +2 -0
- metadata +91 -100
- data/lib/template/config/initializers/rollbar.rb +0 -12
|
@@ -1,120 +1,122 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pliny/commands/generator"
|
|
4
|
+
require "pliny/commands/generator/base"
|
|
5
|
+
require "spec_helper"
|
|
4
6
|
|
|
5
7
|
describe Pliny::Commands::Generator::Base do
|
|
6
8
|
def generator(name, options = {}, stream = StringIO.new)
|
|
7
9
|
Pliny::Commands::Generator::Base.new(name, options, stream)
|
|
8
10
|
end
|
|
9
11
|
|
|
10
|
-
describe
|
|
11
|
-
it
|
|
12
|
+
describe "#name" do
|
|
13
|
+
it "generates a normalized name given differents argument formats" do
|
|
12
14
|
[
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
"resource history",
|
|
16
|
+
"resource-history",
|
|
17
|
+
"resource_history",
|
|
18
|
+
"ResourceHistory",
|
|
17
19
|
].each do |argument|
|
|
18
20
|
actual = generator(argument).name
|
|
19
|
-
assert_equal
|
|
21
|
+
assert_equal "resource_history", actual
|
|
20
22
|
end
|
|
21
23
|
end
|
|
22
24
|
end
|
|
23
25
|
|
|
24
|
-
describe
|
|
25
|
-
it
|
|
26
|
-
actual = generator(
|
|
27
|
-
assert_equal
|
|
26
|
+
describe "#singular_class_name" do
|
|
27
|
+
it "builds a class name for an endpoint" do
|
|
28
|
+
actual = generator("resource_histories").singular_class_name
|
|
29
|
+
assert_equal "ResourceHistory", actual
|
|
28
30
|
end
|
|
29
31
|
end
|
|
30
32
|
|
|
31
|
-
describe
|
|
32
|
-
it
|
|
33
|
-
actual = generator(
|
|
34
|
-
assert_equal
|
|
33
|
+
describe "#plural_class_name" do
|
|
34
|
+
it "builds a class name for a model" do
|
|
35
|
+
actual = generator("resource_histories").plural_class_name
|
|
36
|
+
assert_equal "ResourceHistories", actual
|
|
35
37
|
end
|
|
36
38
|
end
|
|
37
39
|
|
|
38
|
-
describe
|
|
39
|
-
it
|
|
40
|
-
actual = generator(
|
|
41
|
-
assert_equal
|
|
40
|
+
describe "#field_name" do
|
|
41
|
+
it "uses the singular form" do
|
|
42
|
+
actual = generator("resource_histories").field_name
|
|
43
|
+
assert_equal "resource_history", actual
|
|
42
44
|
end
|
|
43
45
|
end
|
|
44
46
|
|
|
45
|
-
describe
|
|
46
|
-
it
|
|
47
|
-
actual = generator(
|
|
48
|
-
assert_equal
|
|
47
|
+
describe "#pluralized_file_name" do
|
|
48
|
+
it "uses the plural form" do
|
|
49
|
+
actual = generator("resource_history").pluralized_file_name
|
|
50
|
+
assert_equal "resource_histories", actual
|
|
49
51
|
end
|
|
50
52
|
|
|
51
|
-
describe
|
|
52
|
-
it
|
|
53
|
-
actual = generator(
|
|
54
|
-
assert_equal
|
|
53
|
+
describe "when name with slashs" do
|
|
54
|
+
it "handles slashs as directory" do
|
|
55
|
+
actual = generator("resource/history").pluralized_file_name
|
|
56
|
+
assert_equal "resource/histories", actual
|
|
55
57
|
end
|
|
56
58
|
end
|
|
57
59
|
end
|
|
58
60
|
|
|
59
|
-
describe
|
|
60
|
-
it
|
|
61
|
-
actual = generator(
|
|
62
|
-
assert_equal
|
|
61
|
+
describe "#table_name" do
|
|
62
|
+
it "uses the plural form" do
|
|
63
|
+
actual = generator("resource_history").table_name
|
|
64
|
+
assert_equal "resource_histories", actual
|
|
63
65
|
end
|
|
64
66
|
|
|
65
|
-
describe
|
|
66
|
-
it
|
|
67
|
-
actual = generator(
|
|
68
|
-
assert_equal
|
|
67
|
+
describe "when name with slashs" do
|
|
68
|
+
it "handles slashs as underscores" do
|
|
69
|
+
actual = generator("resource/history").table_name
|
|
70
|
+
assert_equal "resource_histories", actual
|
|
69
71
|
end
|
|
70
72
|
end
|
|
71
73
|
end
|
|
72
74
|
|
|
73
|
-
describe
|
|
74
|
-
it
|
|
75
|
+
describe "#display" do
|
|
76
|
+
it "puts given message into stream" do
|
|
75
77
|
stream = StringIO.new
|
|
76
|
-
message =
|
|
77
|
-
generator(
|
|
78
|
+
message = "Hello world"
|
|
79
|
+
generator("resource_history", {}, stream).display(message)
|
|
78
80
|
|
|
79
81
|
assert_includes stream.string, message
|
|
80
82
|
end
|
|
81
83
|
end
|
|
82
84
|
|
|
83
|
-
describe
|
|
84
|
-
it
|
|
85
|
-
template = generator(
|
|
86
|
-
assert_match
|
|
85
|
+
describe "#render_template" do
|
|
86
|
+
it "renders template into a string" do
|
|
87
|
+
template = generator("resource_history").render_template("endpoint.erb")
|
|
88
|
+
assert_match(/module Endpoints/, template)
|
|
87
89
|
end
|
|
88
90
|
end
|
|
89
91
|
|
|
90
|
-
describe
|
|
91
|
-
let(:destination_path) { File.join(Dir.mktmpdir,
|
|
92
|
+
describe "#write_template" do
|
|
93
|
+
let(:destination_path) { File.join(Dir.mktmpdir, "endpoint.rb") }
|
|
92
94
|
|
|
93
95
|
before do
|
|
94
|
-
generator(
|
|
96
|
+
generator("resource_history").write_template("endpoint.erb", destination_path)
|
|
95
97
|
end
|
|
96
98
|
|
|
97
|
-
it
|
|
99
|
+
it "renders given template into a file by given path" do
|
|
98
100
|
assert File.exist?(destination_path)
|
|
99
|
-
assert_match
|
|
101
|
+
assert_match(/module Endpoints/, File.read(destination_path))
|
|
100
102
|
end
|
|
101
103
|
end
|
|
102
|
-
|
|
103
|
-
describe
|
|
104
|
-
let(:destination_path) { File.join(Dir.mktmpdir,
|
|
104
|
+
|
|
105
|
+
describe "#write_file" do
|
|
106
|
+
let(:destination_path) { File.join(Dir.mktmpdir, "foo.txt") }
|
|
105
107
|
|
|
106
108
|
before do
|
|
107
|
-
generator(
|
|
108
|
-
|
|
109
|
+
generator("resource_history").write_file(destination_path) do
|
|
110
|
+
"Hello world"
|
|
109
111
|
end
|
|
110
112
|
end
|
|
111
113
|
|
|
112
|
-
it
|
|
114
|
+
it "creates a file by given path" do
|
|
113
115
|
assert File.exist?(destination_path)
|
|
114
116
|
end
|
|
115
117
|
|
|
116
|
-
it
|
|
117
|
-
assert_match
|
|
118
|
+
it "writes given content into a file" do
|
|
119
|
+
assert_match(/Hello world/, File.read(destination_path))
|
|
118
120
|
end
|
|
119
121
|
end
|
|
120
122
|
end
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pliny/commands/generator"
|
|
4
|
+
require "pliny/commands/generator/endpoint"
|
|
5
|
+
require "spec_helper"
|
|
4
6
|
|
|
5
7
|
describe Pliny::Commands::Generator::Endpoint do
|
|
6
8
|
subject { Pliny::Commands::Generator::Endpoint.new(endpoint_name, {}, StringIO.new) }
|
|
7
|
-
let(:endpoint_name) {
|
|
9
|
+
let(:endpoint_name) { "resource_history" }
|
|
8
10
|
|
|
9
|
-
describe
|
|
10
|
-
it
|
|
11
|
-
assert_equal
|
|
11
|
+
describe "#url_path" do
|
|
12
|
+
it "builds a URL path" do
|
|
13
|
+
assert_equal "/resource-histories", subject.url_path
|
|
12
14
|
end
|
|
13
15
|
end
|
|
14
16
|
|
|
15
|
-
describe
|
|
17
|
+
describe "template" do
|
|
16
18
|
before do
|
|
17
19
|
# render the stub endpoint template to a string
|
|
18
20
|
template = subject.render_template("endpoint.erb",
|
|
19
21
|
plural_class_name: "Artists",
|
|
20
|
-
url_path:
|
|
22
|
+
url_path: "/artists",)
|
|
21
23
|
|
|
22
24
|
# eval and assign it to rack_app so tests are pointing to it
|
|
23
|
-
@rack_app = eval(template)
|
|
25
|
+
@rack_app = eval(template) # rubocop:disable Security/Eval
|
|
24
26
|
end
|
|
25
27
|
|
|
26
28
|
it "defines a stub GET /" do
|
|
@@ -32,26 +34,25 @@ describe Pliny::Commands::Generator::Endpoint do
|
|
|
32
34
|
it "defines a stub POST /" do
|
|
33
35
|
post "/artists"
|
|
34
36
|
assert_equal 201, last_response.status
|
|
35
|
-
assert_equal
|
|
37
|
+
assert_equal({}, JSON.parse(last_response.body))
|
|
36
38
|
end
|
|
37
39
|
|
|
38
40
|
it "defines a stub GET /:id" do
|
|
39
41
|
get "/artists/123"
|
|
40
42
|
assert_equal 200, last_response.status
|
|
41
|
-
assert_equal
|
|
43
|
+
assert_equal({}, JSON.parse(last_response.body))
|
|
42
44
|
end
|
|
43
45
|
|
|
44
46
|
it "defines a stub PATCH /:id" do
|
|
45
47
|
patch "/artists/123"
|
|
46
48
|
assert_equal 200, last_response.status
|
|
47
|
-
assert_equal
|
|
49
|
+
assert_equal({}, JSON.parse(last_response.body))
|
|
48
50
|
end
|
|
49
51
|
|
|
50
52
|
it "defines a stub DELETE /:id" do
|
|
51
53
|
delete "/artists/123"
|
|
52
54
|
assert_equal 200, last_response.status
|
|
53
|
-
assert_equal
|
|
55
|
+
assert_equal({}, JSON.parse(last_response.body))
|
|
54
56
|
end
|
|
55
|
-
|
|
56
57
|
end
|
|
57
58
|
end
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pliny/commands/generator/mediator"
|
|
4
|
+
require "spec_helper"
|
|
3
5
|
|
|
4
6
|
describe Pliny::Commands::Generator::Mediator do
|
|
5
|
-
subject { described_class.new(
|
|
7
|
+
subject { described_class.new("creator", {}, StringIO.new) }
|
|
6
8
|
|
|
7
9
|
around do |example|
|
|
8
10
|
Dir.chdir(Dir.mktmpdir, &example)
|
|
9
11
|
end
|
|
10
12
|
|
|
11
|
-
describe
|
|
12
|
-
it
|
|
13
|
+
describe "#create" do
|
|
14
|
+
it "creates a mediator file" do
|
|
13
15
|
subject.create
|
|
14
|
-
assert File.exist?(
|
|
16
|
+
assert File.exist?("lib/mediators/creator.rb")
|
|
15
17
|
end
|
|
16
18
|
end
|
|
17
19
|
|
|
18
|
-
describe
|
|
19
|
-
it
|
|
20
|
+
describe "#create_test" do
|
|
21
|
+
it "creates a mediator test file" do
|
|
20
22
|
subject.create_test
|
|
21
|
-
assert File.exist?(
|
|
23
|
+
assert File.exist?("spec/mediators/creator_spec.rb")
|
|
22
24
|
end
|
|
23
25
|
end
|
|
24
26
|
end
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pliny/commands/generator/migration"
|
|
4
|
+
require "spec_helper"
|
|
3
5
|
|
|
4
6
|
describe Pliny::Commands::Generator::Migration do
|
|
5
|
-
subject { described_class.new(
|
|
7
|
+
subject { described_class.new("create_artists", {}, StringIO.new) }
|
|
6
8
|
|
|
7
9
|
around do |example|
|
|
8
10
|
Dir.chdir(Dir.mktmpdir, &example)
|
|
9
11
|
end
|
|
10
12
|
|
|
11
|
-
describe
|
|
12
|
-
it
|
|
13
|
+
describe "#create" do
|
|
14
|
+
it "creates a migration file" do
|
|
13
15
|
subject.create
|
|
14
16
|
assert_equal 1, Dir.glob("db/migrate/*_create_artists.rb").size
|
|
15
17
|
end
|
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pliny/commands/generator/model"
|
|
4
|
+
require "spec_helper"
|
|
3
5
|
|
|
4
6
|
describe Pliny::Commands::Generator::Model do
|
|
5
|
-
subject { described_class.new(
|
|
7
|
+
subject { described_class.new("artist", {}, StringIO.new) }
|
|
6
8
|
|
|
7
9
|
around do |example|
|
|
8
10
|
Dir.chdir(Dir.mktmpdir, &example)
|
|
9
11
|
end
|
|
10
12
|
|
|
11
|
-
describe
|
|
12
|
-
it
|
|
13
|
+
describe "#create" do
|
|
14
|
+
it "creates a model file" do
|
|
13
15
|
subject.create
|
|
14
|
-
assert File.exist?(
|
|
16
|
+
assert File.exist?("lib/models/artist.rb")
|
|
15
17
|
end
|
|
16
18
|
end
|
|
17
19
|
|
|
18
|
-
describe
|
|
19
|
-
it
|
|
20
|
+
describe "#create_migration" do
|
|
21
|
+
it "creates a migration file" do
|
|
20
22
|
subject.create_migration
|
|
21
23
|
assert_equal 1, Dir.glob("db/migrate/*_create_artists.rb").size
|
|
22
24
|
end
|
|
23
25
|
end
|
|
24
26
|
|
|
25
|
-
describe
|
|
26
|
-
it
|
|
27
|
+
describe "#create_test" do
|
|
28
|
+
it "creates a model test file" do
|
|
27
29
|
subject.create_test
|
|
28
|
-
assert File.exist?(
|
|
30
|
+
assert File.exist?("spec/models/artist_spec.rb")
|
|
29
31
|
end
|
|
30
32
|
end
|
|
31
33
|
end
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require
|
|
4
|
-
require
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pliny/commands/creator"
|
|
4
|
+
require "pliny/commands/generator"
|
|
5
|
+
require "pliny/commands/generator/schema"
|
|
6
|
+
require "spec_helper"
|
|
5
7
|
|
|
6
8
|
describe Pliny::Commands::Generator::Schema do
|
|
7
9
|
let(:stream) { StringIO.new }
|
|
8
|
-
subject { Pliny::Commands::Generator::Schema.new(
|
|
10
|
+
subject { Pliny::Commands::Generator::Schema.new("artist", {}, stream) }
|
|
9
11
|
|
|
10
12
|
around do |example|
|
|
11
13
|
Dir.mktmpdir do |dir|
|
|
@@ -16,66 +18,65 @@ describe Pliny::Commands::Generator::Schema do
|
|
|
16
18
|
end
|
|
17
19
|
end
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
context 'with new layout' do
|
|
21
|
+
describe "#create" do
|
|
22
|
+
context "with new layout" do
|
|
22
23
|
before do
|
|
23
24
|
subject.create
|
|
24
25
|
end
|
|
25
26
|
|
|
26
|
-
it
|
|
27
|
-
assert File.exist?(
|
|
27
|
+
it "creates a schema" do
|
|
28
|
+
assert File.exist?("schema/schemata/artist.yaml")
|
|
28
29
|
end
|
|
29
30
|
end
|
|
30
31
|
|
|
31
|
-
context
|
|
32
|
+
context "with legacy layout" do
|
|
32
33
|
before do
|
|
33
|
-
FileUtils.mkdir_p(
|
|
34
|
-
FileUtils.cp(
|
|
34
|
+
FileUtils.mkdir_p("./docs/schema/schemata")
|
|
35
|
+
FileUtils.cp("./schema/meta.json", "./docs/schema")
|
|
35
36
|
subject.create
|
|
36
37
|
end
|
|
37
38
|
|
|
38
|
-
it
|
|
39
|
-
assert File.exist?(
|
|
39
|
+
it "creates a legacy schema" do
|
|
40
|
+
assert File.exist?("docs/schema/schemata/artist.yaml")
|
|
40
41
|
end
|
|
41
42
|
|
|
42
|
-
it
|
|
43
|
+
it "warns" do
|
|
43
44
|
assert_match(/WARNING/m, stream.string)
|
|
44
45
|
end
|
|
45
46
|
end
|
|
46
47
|
end
|
|
47
48
|
|
|
48
|
-
describe
|
|
49
|
-
context
|
|
50
|
-
it
|
|
49
|
+
describe "#rebuild" do
|
|
50
|
+
context "with nil as the name argument (as used in schema.rake)" do
|
|
51
|
+
it "rebuilds the schema with prmd" do
|
|
51
52
|
assert_output(/rebuilt/) do
|
|
52
53
|
Pliny::Commands::Generator::Schema.new(nil).rebuild
|
|
53
54
|
end
|
|
54
55
|
end
|
|
55
56
|
end
|
|
56
57
|
|
|
57
|
-
context
|
|
58
|
+
context "with new layout" do
|
|
58
59
|
before do
|
|
59
60
|
subject.rebuild
|
|
60
61
|
end
|
|
61
62
|
|
|
62
|
-
it
|
|
63
|
-
assert File.exist?(
|
|
63
|
+
it "rebuilds schema.json" do
|
|
64
|
+
assert File.exist?("./schema/schema.json")
|
|
64
65
|
end
|
|
65
66
|
end
|
|
66
67
|
|
|
67
|
-
context
|
|
68
|
+
context "with legacy layout" do
|
|
68
69
|
before do
|
|
69
|
-
FileUtils.mkdir_p(
|
|
70
|
-
FileUtils.cp(
|
|
70
|
+
FileUtils.mkdir_p("./docs/schema/schemata")
|
|
71
|
+
FileUtils.cp("./schema/meta.json", "./docs/schema")
|
|
71
72
|
subject.rebuild
|
|
72
73
|
end
|
|
73
74
|
|
|
74
|
-
it
|
|
75
|
-
assert File.exist?(
|
|
75
|
+
it "rebuilds legacy schema.json" do
|
|
76
|
+
assert File.exist?("docs/schema.json")
|
|
76
77
|
end
|
|
77
78
|
|
|
78
|
-
it
|
|
79
|
+
it "warns" do
|
|
79
80
|
assert_match(/WARNING/m, stream.string)
|
|
80
81
|
end
|
|
81
82
|
end
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pliny/commands/generator/serializer"
|
|
4
|
+
require "spec_helper"
|
|
3
5
|
|
|
4
6
|
describe Pliny::Commands::Generator::Serializer do
|
|
5
|
-
subject { described_class.new(
|
|
7
|
+
subject { described_class.new("artist", {}, StringIO.new) }
|
|
6
8
|
|
|
7
9
|
around do |example|
|
|
8
10
|
Dir.chdir(Dir.mktmpdir, &example)
|
|
9
11
|
end
|
|
10
12
|
|
|
11
|
-
describe
|
|
12
|
-
it
|
|
13
|
+
describe "#create" do
|
|
14
|
+
it "creates a serializer file" do
|
|
13
15
|
subject.create
|
|
14
|
-
assert File.exist?(
|
|
16
|
+
assert File.exist?("lib/serializers/artist.rb")
|
|
15
17
|
end
|
|
16
18
|
end
|
|
17
19
|
|
|
18
|
-
describe
|
|
19
|
-
it
|
|
20
|
+
describe "#create_test" do
|
|
21
|
+
it "creates a serializer test file" do
|
|
20
22
|
subject.create_test
|
|
21
|
-
assert File.exist?(
|
|
23
|
+
assert File.exist?("spec/serializers/artist_spec.rb")
|
|
22
24
|
end
|
|
23
25
|
end
|
|
24
26
|
end
|