laurynasl-rspec_merb_helpers 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README +0 -0
  2. data/lib/rspec_merb_helpers.rb +89 -0
  3. metadata +71 -0
data/README ADDED
File without changes
@@ -0,0 +1,89 @@
1
+ module RSpecMerbHelpers
2
+ def it_should_have_restful_routes(klass)
3
+ controller = klass.to_s.underscore
4
+ describe klass, "routes" do
5
+ it "should be restful" do
6
+ request_to("/#{controller}/5/edit").should == {
7
+ :controller => controller,
8
+ :action => 'edit',
9
+ :id => '5',
10
+ :format => nil
11
+ }
12
+ end
13
+ end
14
+ end
15
+
16
+ def freeze_time!(t = Time.now)
17
+ Time.stub!(:now).and_return(t)
18
+ end
19
+
20
+ def freeze_datetime!(t = DateTime.now)
21
+ DateTime.stub!(:now).and_return(t)
22
+ end
23
+
24
+ def authenticated_request(login, method, url, parameters, &block)
25
+ response = send(method, url, parameters) do |c|
26
+ c.instance_variable_set(:@current_ma_user, User.first(:login => login))
27
+ block.call(c) if block
28
+ end
29
+ response
30
+ end
31
+
32
+ def create_authenticated_requests(array)
33
+ array.each do |name, login|
34
+ [:get, :post, :put, :delete].each do |method|
35
+ eval "
36
+ def #{name}_#{method}(url, parameters = {}, &block)
37
+ authenticated_request('#{login}', :#{method}, url, parameters, &block)
38
+ end
39
+ "
40
+ end
41
+ end
42
+ end
43
+
44
+ def it_should_have_fields(object_name, *fields)
45
+ fields.each do |field|
46
+ it "should have #{field}" do
47
+ original_object = instance_variable_get(object_name)
48
+ object = original_object.class.new(original_object.values.except(field))
49
+ object.should_not be_valid
50
+ end
51
+ end
52
+ end
53
+
54
+ def it_should_have_created_at(object_name)
55
+ it "should have created_at" do
56
+ object = instance_variable_get(object_name)
57
+ freeze_time!
58
+ object.save
59
+ object.created_at.should == Time.now
60
+ end
61
+ end
62
+
63
+ def it_should_have_timestamps(object_name)
64
+ it "should have timestamps" do
65
+ object = instance_variable_get(object_name)
66
+ freeze_time!
67
+ created_at = Time.now
68
+ object.save
69
+ object.created_at.should == created_at
70
+ object.updated_at.should == created_at
71
+
72
+ freeze_time!(Time.now + 24.hours)
73
+ object.save
74
+ object.created_at.should == created_at
75
+ object.updated_at.should == Time.now
76
+ end
77
+ end
78
+
79
+ def it_should_be_valid(*object_names)
80
+ object_names.each do |object_name|
81
+ it "should be valid and save successfully" do
82
+ object = instance_variable_get(object_name)
83
+ object.should be_valid
84
+ object.save
85
+ end
86
+ end
87
+ end
88
+
89
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: laurynasl-rspec_merb_helpers
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Laurynas Liutkus
8
+ autorequire: name
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-10-09 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.1.4
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: merb
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.9.9
32
+ version:
33
+ description:
34
+ email: laurynasl@gmail.com
35
+ executables: []
36
+
37
+ extensions: []
38
+
39
+ extra_rdoc_files:
40
+ - README
41
+ files:
42
+ - lib/rspec_merb_helpers.rb
43
+ - README
44
+ has_rdoc: true
45
+ homepage: http://github.com/laurynasl/rspec_merb_helpers/
46
+ post_install_message:
47
+ rdoc_options: []
48
+
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ version:
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: "0"
62
+ version:
63
+ requirements: []
64
+
65
+ rubyforge_project:
66
+ rubygems_version: 1.2.0
67
+ signing_key:
68
+ specification_version: 2
69
+ summary: Helper methods for testing MERB applications
70
+ test_files: []
71
+