@@ -1543,6 +1543,86 @@ def test_collection_install__mutex_m__rbs_dependency_and__gem_dependency
15431543 end
15441544 end
15451545
1546+ def test_collection_install__pathname_set
1547+ Dir . mktmpdir do |dir |
1548+ Dir . chdir ( dir ) do
1549+ dir = Pathname ( dir )
1550+ dir . join ( RBS ::Collection ::Config ::PATH ) . write ( <<~YAML )
1551+ sources:
1552+ - name: ruby/gem_rbs_collection
1553+ remote: https://github.com/ruby/gem_rbs_collection.git
1554+ revision: b4d3b346d9657543099a35a1fd20347e75b8c523
1555+ repo_dir: gems
1556+
1557+ path: #{ dir . join ( 'gem_rbs_collection' ) }
1558+
1559+ gems:
1560+ - name: pathname
1561+ - name: set
1562+ - name: ast
1563+ - name: cgi-escape
1564+ YAML
1565+
1566+ bundle_install ( 'ast' , 'logger' )
1567+ _stdout , stderr = run_rbs_collection ( "install" , bundler : true )
1568+
1569+ assert_include stderr , 'Cannot find `pathname` gem.'
1570+ assert_include stderr , 'Cannot find `set` gem.'
1571+
1572+ lockfile = RBS ::Collection ::Config ::Lockfile . from_lockfile (
1573+ lockfile_path : dir + "rbs_collection.lock.yaml" ,
1574+ data : YAML . safe_load ( ( dir + "rbs_collection.lock.yaml" ) . read )
1575+ )
1576+
1577+ assert_nil lockfile . gems [ "set" ]
1578+ assert_nil lockfile . gems [ "pathname" ]
1579+ assert_instance_of RBS ::Collection ::Sources ::Stdlib , lockfile . gems [ "cgi-escape" ] [ :source ]
1580+ assert_instance_of RBS ::Collection ::Sources ::Git , lockfile . gems [ "ast" ] [ :source ]
1581+ end
1582+ end
1583+ end
1584+
1585+ def test_collection_install__set_pathname__manifest
1586+ Dir . mktmpdir do |dir |
1587+ Dir . chdir ( dir ) do
1588+ dir = Pathname ( dir )
1589+
1590+ ( dir + RBS ::Collection ::Config ::PATH ) . write ( <<~YAML )
1591+ sources:
1592+ - type: local
1593+ path: repo
1594+
1595+ path: #{ dir . join ( 'gem_rbs_collection' ) }
1596+ YAML
1597+
1598+ ( dir /"repo/true_string/0" ) . mkpath
1599+ ( dir /"repo/true_string/0/manifest.yaml" ) . write ( <<~YAML )
1600+ dependencies:
1601+ - name: set
1602+ - name: pathname
1603+ - name: cgi-escape
1604+ YAML
1605+
1606+ bundle_install ( "logger" , "true_string" ) # true_string is a soutaro's gem that doesn't have sig directory
1607+
1608+ _stdout , stderr = run_rbs_collection ( "install" , bundler : true )
1609+
1610+ assert_include stderr , '`set` is a part of the Ruby core library.'
1611+ assert_include stderr , '`pathname` is a part of the Ruby core library.'
1612+
1613+ lockfile = RBS ::Collection ::Config ::Lockfile . from_lockfile (
1614+ lockfile_path : dir + "rbs_collection.lock.yaml" ,
1615+ data : YAML . safe_load ( ( dir + "rbs_collection.lock.yaml" ) . read )
1616+ )
1617+
1618+ assert_nil lockfile . gems [ "set" ]
1619+ assert_nil lockfile . gems [ "pathname" ]
1620+ assert_instance_of RBS ::Collection ::Sources ::Stdlib , lockfile . gems [ "cgi-escape" ] [ :source ]
1621+ assert_instance_of RBS ::Collection ::Sources ::Local , lockfile . gems [ "true_string" ] [ :source ]
1622+ end
1623+ end
1624+ end
1625+
15461626 def test_subtract
15471627 Dir . mktmpdir do |dir |
15481628 dir = Pathname ( dir )
0 commit comments