ateam-rspec_merb_helpers 0.0.3

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 (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: ateam-rspec_merb_helpers
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - ateam
8
+ autorequire: name
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-10-27 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: ateam.web@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://a-team.lt
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
+