riveter 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -3
  3. data/Gemfile.lock +1 -1
  4. data/README.md +5 -1
  5. data/app/helpers/riveter.rb +2 -0
  6. data/app/helpers/riveter/query_filter_form_helper.rb +1 -1
  7. data/lib/generators/haml/command_controller/command_controller_generator.rb +1 -1
  8. data/lib/generators/haml/enquiry_controller/enquiry_controller_generator.rb +1 -1
  9. data/lib/generators/riveter/enquiry/enquiry_generator.rb +5 -0
  10. data/lib/generators/riveter/enum/enum_generator.rb +1 -1
  11. data/lib/generators/riveter/query_filter/query_filter_generator.rb +1 -1
  12. data/lib/riveter/booleaness_validator.rb +0 -7
  13. data/lib/riveter/version.rb +1 -1
  14. data/spec/examples/generator_examples.rb +57 -0
  15. data/spec/generators/haml/command_controller/command_controller_generator_spec.rb +38 -19
  16. data/spec/generators/haml/enquiry_controller/enquiry_controller_generator_spec.rb +38 -19
  17. data/spec/generators/riveter/command/command_generator_spec.rb +32 -36
  18. data/spec/generators/riveter/command_controller/command_controller_generator_spec.rb +51 -0
  19. data/spec/generators/riveter/enquiry/enquiry_generator_spec.rb +53 -0
  20. data/spec/generators/riveter/enquiry_controller/enquiry_controller_generator_spec.rb +51 -0
  21. data/spec/generators/riveter/enum/enum_generator_spec.rb +64 -0
  22. data/spec/generators/riveter/install/install_generator_spec.rb +6 -0
  23. data/spec/generators/riveter/presenter/presenter_generator_spec.rb +32 -0
  24. data/spec/generators/riveter/query/query_generator_spec.rb +32 -0
  25. data/spec/generators/riveter/query_filter/query_filter_generator_spec.rb +31 -36
  26. data/spec/generators/riveter/service/service_generator_spec.rb +33 -0
  27. data/spec/generators/riveter/worker/worker_generator_spec.rb +32 -0
  28. data/spec/generators/rspec/command/command_generator_spec.rb +24 -0
  29. data/spec/generators/rspec/command_controller/command_controller_generator_spec.rb +36 -0
  30. data/spec/generators/rspec/enquiry/enquiry_generator_spec.rb +24 -0
  31. data/spec/generators/rspec/enquiry_controller/enquiry_controller_generator_spec.rb +36 -0
  32. data/spec/generators/rspec/enum/enum_generator_spec.rb +24 -0
  33. data/spec/generators/rspec/presenter/presenter_generator_spec.rb +24 -0
  34. data/spec/generators/rspec/query/query_generator_spec.rb +24 -0
  35. data/spec/generators/rspec/query_filter/query_filter_generator_spec.rb +24 -0
  36. data/spec/generators/rspec/service/service_generator_spec.rb +24 -0
  37. data/spec/generators/rspec/worker/worker_generator_spec.rb +24 -0
  38. data/spec/helpers/riveter/command_form_helper_spec.rb +26 -0
  39. data/spec/helpers/riveter/enquiry_form_helper_spec.rb +26 -0
  40. data/spec/helpers/riveter/query_filter_form_helper_spec.rb +26 -0
  41. data/spec/riveter/booleaness_validator_spec.rb +83 -0
  42. data/spec/riveter/command_spec.rb +7 -2
  43. data/spec/spec_helper.rb +3 -17
  44. data/spec/support/test_class_with_attributes.rb +3 -0
  45. data/spec/support/test_service.rb +0 -5
  46. metadata +47 -2
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'generators/rspec/enquiry/enquiry_generator'
3
+
4
+ describe Rspec::Generators::EnquiryGenerator, :type => :generator do
5
+ it "should run all tasks in the generator" do
6
+ gen = generator %w(foo_bar)
7
+ expect(gen).to receive(:create_enquiry_spec)
8
+ capture(:stdout) { gen.invoke_all }
9
+ end
10
+
11
+ describe "the generated files" do
12
+ describe "the spec" do
13
+ describe "with defaults" do
14
+ before do
15
+ run_generator %w(foo_bar)
16
+ end
17
+
18
+ subject { file('spec/enquiries/foo_bar_enquiry_spec.rb') }
19
+
20
+ it { should exist }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+ require 'generators/rspec/enquiry_controller/enquiry_controller_generator'
3
+
4
+ describe Rspec::Generators::EnquiryControllerGenerator, :type => :generator do
5
+ it "should run all tasks in the generator" do
6
+ gen = generator %w(foo_bar)
7
+ expect(gen).to receive(:create_enquiry_controller_spec)
8
+ capture(:stdout) { gen.invoke_all }
9
+ end
10
+
11
+ describe "the generated files" do
12
+ describe "the spec" do
13
+ describe "with defaults" do
14
+ before do
15
+ run_generator %w(foo_bar)
16
+ end
17
+
18
+ subject { file('spec/controllers/foo_bar_enquiry_controller_spec.rb') }
19
+
20
+ it { should exist }
21
+ end
22
+
23
+ describe "with action names" do
24
+ before do
25
+ run_generator %w(foo_bar baz)
26
+ end
27
+
28
+ subject { file('spec/controllers/foo_bar_enquiry_controller_spec.rb') }
29
+
30
+ it { should exist }
31
+ it { should contain("GET 'baz'") }
32
+ it { should contain("POST 'baz'") }
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'generators/rspec/enum/enum_generator'
3
+
4
+ describe Rspec::Generators::EnumGenerator, :type => :generator do
5
+ it "should run all tasks in the generator" do
6
+ gen = generator %w(foo_bar)
7
+ expect(gen).to receive(:create_enum_spec)
8
+ capture(:stdout) { gen.invoke_all }
9
+ end
10
+
11
+ describe "the generated files" do
12
+ describe "the spec" do
13
+ describe "with defaults" do
14
+ before do
15
+ run_generator %w(foo_bar)
16
+ end
17
+
18
+ subject { file('spec/enums/foo_bar_enum_spec.rb') }
19
+
20
+ it { should exist }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'generators/rspec/presenter/presenter_generator'
3
+
4
+ describe Rspec::Generators::PresenterGenerator, :type => :generator do
5
+ it "should run all tasks in the generator" do
6
+ gen = generator %w(foo_bar)
7
+ expect(gen).to receive(:create_presenter_spec)
8
+ capture(:stdout) { gen.invoke_all }
9
+ end
10
+
11
+ describe "the generated files" do
12
+ describe "the spec" do
13
+ describe "with defaults" do
14
+ before do
15
+ run_generator %w(foo_bar)
16
+ end
17
+
18
+ subject { file('spec/presenters/foo_bar_presenter_spec.rb') }
19
+
20
+ it { should exist }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'generators/rspec/query/query_generator'
3
+
4
+ describe Rspec::Generators::QueryGenerator, :type => :generator do
5
+ it "should run all tasks in the generator" do
6
+ gen = generator %w(foo_bar)
7
+ expect(gen).to receive(:create_query_spec)
8
+ capture(:stdout) { gen.invoke_all }
9
+ end
10
+
11
+ describe "the generated files" do
12
+ describe "the spec" do
13
+ describe "with defaults" do
14
+ before do
15
+ run_generator %w(foo_bar)
16
+ end
17
+
18
+ subject { file('spec/queries/foo_bar_query_spec.rb') }
19
+
20
+ it { should exist }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'generators/rspec/query_filter/query_filter_generator'
3
+
4
+ describe Rspec::Generators::QueryFilterGenerator, :type => :generator do
5
+ it "should run all tasks in the generator" do
6
+ gen = generator %w(foo_bar)
7
+ expect(gen).to receive(:create_query_filter_spec)
8
+ capture(:stdout) { gen.invoke_all }
9
+ end
10
+
11
+ describe "the generated files" do
12
+ describe "the spec" do
13
+ describe "with defaults" do
14
+ before do
15
+ run_generator %w(foo_bar)
16
+ end
17
+
18
+ subject { file('spec/query_filters/foo_bar_query_filter_spec.rb') }
19
+
20
+ it { should exist }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'generators/rspec/service/service_generator'
3
+
4
+ describe Rspec::Generators::ServiceGenerator, :type => :generator do
5
+ it "should run all tasks in the generator" do
6
+ gen = generator %w(foo_bar)
7
+ expect(gen).to receive(:create_service_spec)
8
+ capture(:stdout) { gen.invoke_all }
9
+ end
10
+
11
+ describe "the generated files" do
12
+ describe "the spec" do
13
+ describe "with defaults" do
14
+ before do
15
+ run_generator %w(foo_bar)
16
+ end
17
+
18
+ subject { file('spec/services/foo_bar_service_spec.rb') }
19
+
20
+ it { should exist }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'generators/rspec/worker/worker_generator'
3
+
4
+ describe Rspec::Generators::WorkerGenerator, :type => :generator do
5
+ it "should run all tasks in the generator" do
6
+ gen = generator %w(foo_bar)
7
+ expect(gen).to receive(:create_worker_spec)
8
+ capture(:stdout) { gen.invoke_all }
9
+ end
10
+
11
+ describe "the generated files" do
12
+ describe "the spec" do
13
+ describe "with defaults" do
14
+ before do
15
+ run_generator %w(foo_bar)
16
+ end
17
+
18
+ subject { file('spec/workers/foo_bar_worker_spec.rb') }
19
+
20
+ it { should exist }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+ require_relative '../../../app/helpers/riveter/command_form_helper'
3
+
4
+ describe Riveter::CommandFormHelper do
5
+ subject {
6
+ Class.new().tap do |klass|
7
+ klass.send :include, Riveter::CommandFormHelper
8
+ end.new()
9
+ }
10
+
11
+ describe "#command_form_for" do
12
+ it "delegates to default form_for" do
13
+ command = TestCommand.new()
14
+ expect(subject).to receive(:form_for).with(command, :as => 'test', :url => 'test')
15
+
16
+ subject.command_form_for(command)
17
+ end
18
+
19
+ it "delegates to simple form if available" do
20
+ command = TestCommand.new()
21
+ expect(subject).to receive(:simple_form_for).with(command, :as => 'test', :url => 'test')
22
+
23
+ subject.command_form_for(command)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+ require_relative '../../../app/helpers/riveter/enquiry_form_helper'
3
+
4
+ describe Riveter::EnquiryFormHelper do
5
+ subject {
6
+ Class.new().tap do |klass|
7
+ klass.send :include, Riveter::EnquiryFormHelper
8
+ end.new()
9
+ }
10
+
11
+ describe "#enquiry_form_for" do
12
+ it "delegates to default form_for" do
13
+ enquiry = TestEnquiry.new()
14
+ expect(subject).to receive(:form_for).with(enquiry.query_filter, :as => 'test', :url => 'test', :method => :get)
15
+
16
+ subject.enquiry_form_for(enquiry)
17
+ end
18
+
19
+ it "delegates to simple form if available" do
20
+ enquiry = TestEnquiry.new()
21
+ expect(subject).to receive(:simple_form_for).with(enquiry.query_filter, :as => 'test', :url => 'test', :method => :get)
22
+
23
+ subject.enquiry_form_for(enquiry)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+ require_relative '../../../app/helpers/riveter/query_filter_form_helper'
3
+
4
+ describe Riveter::QueryFilterFormHelper do
5
+ subject {
6
+ Class.new().tap do |klass|
7
+ klass.send :include, Riveter::QueryFilterFormHelper
8
+ end.new()
9
+ }
10
+
11
+ describe "#query_filter_form_for" do
12
+ it "delegates to default form_for" do
13
+ query_filter = TestQueryFilter.new()
14
+ expect(subject).to receive(:form_for).with(query_filter, :as => 'test', :url => 'test', :method => :get)
15
+
16
+ subject.query_filter_form_for(query_filter)
17
+ end
18
+
19
+ it "delegates to simple form if available" do
20
+ query_filter = TestQueryFilter.new()
21
+ expect(subject).to receive(:simple_form_for).with(query_filter, :as => 'test', :url => 'test', :method => :get)
22
+
23
+ subject.query_filter_form_for(query_filter)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,83 @@
1
+ require 'spec_helper'
2
+
3
+ describe Riveter::BooleanessValidator do
4
+ subject { Riveter::BooleanessValidator }
5
+
6
+ describe "#validate_each" do
7
+ def record_for(value)
8
+ record = double()
9
+ allow(record).to receive(:read_attribute_for_validation) { value }
10
+ record
11
+ end
12
+
13
+ def errors
14
+ errors = double
15
+ allow(errors).to receive(:add)
16
+ errors
17
+ end
18
+
19
+ context "valid data" do
20
+ describe "with defaults" do
21
+ it {
22
+ validator = subject.new(:attributes => [:test])
23
+ record = record_for('not_a_boolean')
24
+ expect(record).to receive(:errors).and_return(errors)
25
+
26
+ validator.validate(record)
27
+ }
28
+
29
+ it {
30
+ validator = subject.new(:attributes => [:test])
31
+ record = record_for(true)
32
+ expect(record).to_not receive(:errors)
33
+
34
+ validator.validate(record)
35
+ }
36
+
37
+ it {
38
+ validator = subject.new(:attributes => [:test])
39
+ record = record_for(false)
40
+ expect(record).to_not receive(:errors)
41
+
42
+ validator.validate(record)
43
+ }
44
+ end
45
+
46
+ describe "with allow_nil" do
47
+ it {
48
+ validator = subject.new(:attributes => [:test], :allow_nil => false)
49
+ record = record_for(nil)
50
+ expect(record).to receive(:errors).and_return(errors)
51
+
52
+ validator.validate(record)
53
+ }
54
+
55
+ it {
56
+ validator = subject.new(:attributes => [:test], :allow_nil => true)
57
+ record = record_for(nil)
58
+ expect(record).to_not receive(:errors)
59
+
60
+ validator.validate(record)
61
+ }
62
+ end
63
+
64
+ describe "with allow_blank" do
65
+ it {
66
+ validator = subject.new(:attributes => [:test], :allow_blank => false)
67
+ record = record_for('')
68
+ expect(record).to receive(:errors).and_return(errors)
69
+
70
+ validator.validate(record)
71
+ }
72
+
73
+ it {
74
+ validator = subject.new(:attributes => [:test], :allow_blank => true)
75
+ record = record_for('')
76
+ expect(record).to_not receive(:errors)
77
+
78
+ validator.validate(record)
79
+ }
80
+ end
81
+ end
82
+ end
83
+ end
@@ -15,6 +15,11 @@ describe Riveter::Command do
15
15
  it { should respond_to(:i18n_scope) }
16
16
  it { subject.i18n_scope.should eq(:commands) }
17
17
  end
18
+
19
+ describe ".success_notice" do
20
+ it { should respond_to(:success_notice) }
21
+ it { subject.success_notice.should eq('Successfully executed Test command.') }
22
+ end
18
23
  end
19
24
 
20
25
  describe "instance" do
@@ -57,9 +62,9 @@ describe Riveter::Command do
57
62
 
58
63
  it "should invoke associated service" do
59
64
  allow(subject).to receive(:valid?) { true }
60
- expect_any_instance_of(TestService).to receive(:perform) { true }
65
+ expect_any_instance_of(TestService).to receive(:perform).with(subject, :arg) { true }
61
66
 
62
- subject.submit(:name => 'test')
67
+ subject.submit(:arg, :name => 'test')
63
68
  end
64
69
  end
65
70
  end
data/spec/spec_helper.rb CHANGED
@@ -15,28 +15,14 @@ require 'haml'
15
15
  require 'rspec/autorun'
16
16
  require 'shoulda/matchers'
17
17
  require 'ammeter/init'
18
+
19
+ require 'fileutils'
18
20
  require 'simplecov'
19
21
  require 'pry'
20
22
 
21
23
  SimpleCov.start do
22
- # add_filter 'spec'
23
- end
24
-
25
- class TestApp < Rails::Application
26
- config.root = File.dirname(__FILE__)
24
+ add_filter 'spec'
27
25
  end
28
- Rails.application = TestApp
29
-
30
- module Rails
31
- def self.root
32
- @root ||= File.expand_path(File.join(File.dirname(__FILE__), '..', 'tmp', 'rails'))
33
- end
34
- end
35
- Rails.application.config.root = Rails.root
36
-
37
- # Call configure to load the settings from
38
- # Rails.application.config.generators to Rails::Generators
39
- Rails::Generators.configure! Rails.application.config.generators
40
26
 
41
27
  # require supporting ruby files with custom matchers and macros, etc
42
28
  Dir[File.expand_path("../support/**/*.rb", __FILE__)].each {|f| require f }
@@ -1,3 +1,6 @@
1
+ require_relative 'test_model'
2
+ require_relative 'test_enum'
3
+
1
4
  class TestClassWithAttributes
2
5
  include Riveter::Attributes
3
6