22
33require "test_helper"
44require "compact_index"
5+ require "helpers/compact_index_helpers"
6+
7+ class CompactIndex ::VersionsFileTest < ActiveSupport ::TestCase
8+ include CompactIndexHelpers
59
6- class CompactIndexVersionsFileTest < ActiveSupport ::TestCase
710 setup do
811 @file_contents = "gem1 1.1,1.2\n gem2 2.1,2.1-jruby\n "
912 @file = Tempfile . new ( "versions.list" )
@@ -17,9 +20,16 @@ class CompactIndexVersionsFileTest < ActiveSupport::TestCase
1720 end
1821
1922 context "#create" do
23+ setup do
24+ @create_file = Tempfile . new ( "create_versions.list" )
25+ @create_versions_file = CompactIndex ::VersionsFile . new ( @create_file . path )
26+ end
27+
28+ teardown do
29+ @create_file &.unlink
30+ end
31+
2032 should "write one line per gem" do
21- file = Tempfile . new ( "create_versions.list" )
22- versions_file = CompactIndex ::VersionsFile . new ( file . path )
2333 gem2_versions = [
2434 build_version ( name : "gem2" , number : "1.0.1" ) ,
2535 build_version ( name : "gem2" , number : "1.0.2" , platform : "arch" )
@@ -30,48 +40,42 @@ class CompactIndexVersionsFileTest < ActiveSupport::TestCase
3040 ]
3141
3242 freeze_time do
33- versions_file . create ( gems )
43+ @create_versions_file . create ( gems )
3444 expected = "created_at: #{ Time . now . iso8601 } \n ---\n " \
3545 "gem2 1.0.1,1.0.2-arch info+gem2+1.0.2\n " \
3646 "gem5 1.0.1 info+gem5+1.0.1\n "
3747
38- assert_equal expected , file . open . read
48+ assert_equal expected , @create_file . open . read
3949 end
4050 end
4151
4252 should "add the date on top" do
43- file = Tempfile . new ( "create_versions.list" )
44- versions_file = CompactIndex ::VersionsFile . new ( file . path )
4553 gems = [ CompactIndex ::Gem . new ( "gem1" , [ build_version ] ) ]
4654
4755 freeze_time do
48- versions_file . create ( gems )
56+ @create_versions_file . create ( gems )
4957
50- assert file . open . read . start_with? ( "created_at: #{ Time . now . iso8601 } \n " )
58+ assert @create_file . open . read . start_with? ( "created_at: #{ Time . now . iso8601 } \n " )
5159 end
5260 end
5361
5462 should "order gems by name" do
55- file = Tempfile . new ( "versions-sort" )
56- versions_file = CompactIndex ::VersionsFile . new ( file . path )
5763 gems = [
5864 CompactIndex ::Gem . new ( "gem_b" , [ build_version ] ) ,
5965 CompactIndex ::Gem . new ( "gem_a" , [ build_version ] )
6066 ]
6167
6268 freeze_time do
63- versions_file . create ( gems )
69+ @create_versions_file . create ( gems )
6470 expected = "created_at: #{ Time . now . iso8601 } \n ---\n " \
6571 "gem_a 1.0 info+test_gem+1.0\n " \
6672 "gem_b 1.0 info+test_gem+1.0\n "
6773
68- assert_equal expected , file . open . read
74+ assert_equal expected , @create_file . open . read
6975 end
7076 end
7177
7278 should "use the given version order" do
73- file = Tempfile . new ( "versions-sort" )
74- versions_file = CompactIndex ::VersionsFile . new ( file . path )
7579 versions = [
7680 build_version ( number : "1.3.0" ) ,
7781 build_version ( number : "2.2" ) ,
@@ -80,18 +84,16 @@ class CompactIndexVersionsFileTest < ActiveSupport::TestCase
8084 build_version ( number : "2.1.2" )
8185 ]
8286 gems = [ CompactIndex ::Gem . new ( "test" , versions ) ]
83- versions_file . create ( gems )
87+ @create_versions_file . create ( gems )
8488
85- assert_includes file . open . read , "test 1.3.0,2.2,1.1.1,1.1.1,2.1.2 info+test_gem+2.1.2"
89+ assert_includes @create_file . open . read , "test 1.3.0,2.2,1.1.1,1.1.1,2.1.2 info+test_gem+2.1.2"
8690 end
8791
8892 should "use a custom timestamp when provided" do
89- file = Tempfile . new ( "create_versions.list" )
90- versions_file = CompactIndex ::VersionsFile . new ( file . path )
9193 ts = Time . new ( 1999 , 9 , 9 ) . iso8601
92- versions_file . create ( [ ] , ts )
94+ @create_versions_file . create ( [ ] , ts )
9395
94- assert file . open . read . start_with? ( "created_at: #{ ts } " )
96+ assert @create_file . open . read . start_with? ( "created_at: #{ ts } " )
9597 end
9698 end
9799
@@ -111,6 +113,8 @@ class CompactIndexVersionsFileTest < ActiveSupport::TestCase
111113 versions_file = CompactIndex ::VersionsFile . new ( file . path )
112114
113115 assert_equal DateTime . parse ( "2015-08-23T17:22:53-07:00" ) , versions_file . updated_at
116+ ensure
117+ file &.unlink
114118 end
115119 end
116120
@@ -157,20 +161,4 @@ class CompactIndexVersionsFileTest < ActiveSupport::TestCase
157161 @versions_file . contents ( gems , calculate_info_checksums : true ) )
158162 end
159163 end
160-
161- private
162-
163- def build_version ( **args )
164- name = args . fetch ( :name , "test_gem" )
165- number = args . fetch ( :number , "1.0" )
166- CompactIndex ::GemVersion . new (
167- number ,
168- args [ :platform ] ,
169- args . fetch ( :checksum , "sum+#{ name } +#{ number } " ) ,
170- args . fetch ( :info_checksum , "info+#{ name } +#{ number } " ) ,
171- args [ :dependencies ] ,
172- args [ :ruby_version ] ,
173- args [ :rubygems_version ]
174- )
175- end
176164end
0 commit comments