2022-04-14 01:27:39 +00:00
package cli
import (
2022-05-02 20:07:15 +00:00
"math"
2022-04-14 01:27:39 +00:00
"testing"
"github.com/MarvinJWendt/testza"
)
2023-12-06 03:01:49 +00:00
func profilesGetResolver ( ) DependencyResolver {
2022-10-14 16:11:16 +00:00
ctx , err := InitCLI ( false )
2023-12-06 03:01:49 +00:00
if err != nil {
panic ( err )
}
2022-05-02 20:07:15 +00:00
2023-12-06 04:47:41 +00:00
return NewDependencyResolver ( ctx . Provider )
2023-12-06 03:01:49 +00:00
}
func TestProfileResolution ( t * testing . T ) {
resolver := profilesGetResolver ( )
2022-04-14 01:27:39 +00:00
resolved , err := ( & Profile {
Name : DefaultProfileName ,
Mods : map [ string ] ProfileMod {
"RefinedPower" : {
Version : "3.0.9" ,
2022-05-02 20:07:15 +00:00
Enabled : true ,
2022-04-14 01:27:39 +00:00
} ,
} ,
2022-05-02 20:07:15 +00:00
} ) . Resolve ( resolver , nil , math . MaxInt )
2022-04-14 01:27:39 +00:00
testza . AssertNoError ( t , err )
testza . AssertNotNil ( t , resolved )
2022-05-02 20:07:15 +00:00
testza . AssertLen ( t , resolved , 4 )
2023-12-06 03:01:49 +00:00
}
func TestProfileRequiredOlderVersion ( t * testing . T ) {
resolver := profilesGetResolver ( )
2022-04-14 01:27:39 +00:00
2023-12-06 03:01:49 +00:00
_ , err := ( & Profile {
2022-04-14 01:27:39 +00:00
Name : DefaultProfileName ,
Mods : map [ string ] ProfileMod {
"RefinedPower" : {
Version : "3.0.9" ,
2022-05-02 20:07:15 +00:00
Enabled : true ,
2022-04-14 01:27:39 +00:00
} ,
"RefinedRDLib" : {
Version : "1.0.6" ,
2022-05-02 20:07:15 +00:00
Enabled : true ,
2022-04-14 01:27:39 +00:00
} ,
} ,
2022-05-02 20:07:15 +00:00
} ) . Resolve ( resolver , nil , math . MaxInt )
2022-04-14 01:27:39 +00:00
2023-12-06 03:01:49 +00:00
testza . AssertEqual ( t , "failed resolving profile dependencies: failed to solve dependencies: Because installing Refined Power (RefinedPower) \"3.0.9\" and Refined Power (RefinedPower) \"3.0.9\" depends on RefinedRDLib \"^1.0.7\", installing RefinedRDLib \"^1.0.7\".\nSo, because installing RefinedRDLib \"1.0.6\", version solving failed." , err . Error ( ) )
}
func TestResolutionNonExistentMod ( t * testing . T ) {
resolver := profilesGetResolver ( )
2022-04-14 01:27:39 +00:00
2023-12-06 03:01:49 +00:00
_ , err := ( & Profile {
2022-04-14 01:27:39 +00:00
Name : DefaultProfileName ,
Mods : map [ string ] ProfileMod {
"ThisModDoesNotExist$$$" : {
Version : ">0.0.0" ,
2022-05-02 20:07:15 +00:00
Enabled : true ,
2022-04-14 01:27:39 +00:00
} ,
} ,
2022-05-02 20:07:15 +00:00
} ) . Resolve ( resolver , nil , math . MaxInt )
2022-04-14 01:27:39 +00:00
2023-12-06 03:01:49 +00:00
testza . AssertEqual ( t , "failed resolving profile dependencies: failed to solve dependencies: failed to make decision: failed to get package versions: mod ThisModDoesNotExist$$$ not found" , err . Error ( ) )
2022-04-14 01:27:39 +00:00
}