44package mise
55
66import (
7+ "context"
78 "testing"
9+ "time"
810
911 "github.com/bitrise-io/bitrise/v2/toolprovider/mise"
1012 "github.com/bitrise-io/bitrise/v2/toolprovider/provider"
@@ -31,16 +33,32 @@ func TestMiseInstallNixpkgsRuby(t *testing.T) {
3133 require .NoError (t , err )
3234
3335 t .Run (tt .name , func (t * testing.T ) {
34- request := provider.ToolRequest {
35- ToolName : "ruby" ,
36- UnparsedVersion : tt .requestedVersion ,
37- ResolutionStrategy : tt .resolutionStrategy ,
36+ ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Minute )
37+ defer cancel ()
38+
39+ done := make (chan bool )
40+ var result provider.ToolInstallResult
41+ var installErr error
42+
43+ go func () {
44+ request := provider.ToolRequest {
45+ ToolName : "ruby" ,
46+ UnparsedVersion : tt .requestedVersion ,
47+ ResolutionStrategy : tt .resolutionStrategy ,
48+ }
49+ result , installErr = miseProvider .InstallTool (request )
50+ done <- true
51+ }()
52+
53+ select {
54+ case <- done :
55+ require .NoError (t , installErr )
56+ require .Equal (t , provider .ToolID ("ruby" ), result .ToolName )
57+ require .Equal (t , tt .expectedVersion , result .ConcreteVersion )
58+ require .False (t , result .IsAlreadyInstalled )
59+ case <- ctx .Done ():
60+ t .Fatal ("Test exceeded 1 minute timeout, installation was too slow for nixpkgs ruby" )
3861 }
39- result , err := miseProvider .InstallTool (request )
40- require .NoError (t , err )
41- require .Equal (t , provider .ToolID ("nixpkgs:ruby" ), result .ToolName )
42- require .Equal (t , tt .expectedVersion , result .ConcreteVersion )
43- require .False (t , result .IsAlreadyInstalled )
4462 })
4563 }
4664}
0 commit comments