forked from rubygems/rubygems.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
versions_controller_test.rb
65 lines (57 loc) · 1.82 KB
/
versions_controller_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
require 'test_helper'
class VersionsControllerTest < ActionController::TestCase
context 'GET to index' do
setup do
@rubygem = Factory(:rubygem)
@versions = (1..5).map do |version|
Factory(:version, :rubygem => @rubygem)
end
get :index, :rubygem_id => @rubygem.name
end
should respond_with :success
should render_template :index
should assign_to(:rubygem) { @rubygem }
should assign_to(:versions) { @rubygem.reload.versions }
should "show all related versions" do
@versions.each do |version|
assert page.has_content?(version.number)
end
end
end
context "GET to index for gem with no versions" do
setup do
@rubygem = Factory(:rubygem)
get :index, :rubygem_id => @rubygem.name
end
should respond_with :success
should render_template :index
should "show not hosted notice" do
assert page.has_content?('This gem is not currently hosted')
end
end
context "On GET to show" do
setup do
@latest_version = Factory(:version, :built_at => 1.week.ago, :created_at => 1.day.ago)
@rubygem = @latest_version.rubygem
@versions = (1..5).map do |_|
Factory(:version, :rubygem => @rubygem)
end
get :show, :rubygem_id => @rubygem.name, :id => @latest_version.number
end
should respond_with :success
should render_template "rubygems/show"
should assign_to :rubygem
should assign_to(:latest_version) { @latest_version }
should "render info about the gem" do
assert page.has_content?(@rubygem.name)
end
should "render the specified version" do
assert page.has_content?(@latest_version.number)
end
should "render other related versions" do
@versions.each do |version|
assert page.has_content?(version.number)
end
end
end
end