Skip to content

Commit 9db8c89

Browse files
committed
Integration tests
1 parent 9365da2 commit 9db8c89

File tree

2 files changed

+38
-31
lines changed

2 files changed

+38
-31
lines changed

bitrise.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ workflows:
7575
- bundle::run_integration_tests: { }
7676
meta:
7777
bitrise.io:
78-
stack: osx-xcode-16.4.x
78+
stack: osx-xcode-edge # TODO: temporary
7979
machine_type_id: g2.mac.large
8080

8181
run_integration_tests_linux:
@@ -86,6 +86,10 @@ workflows:
8686
- workflow_id: unpin-go-version
8787
- bundle::setup_go_junit_report: { }
8888
- bundle::run_integration_tests: { }
89+
meta:
90+
bitrise.io:
91+
stack: ubuntu-noble-24.04-bitrise-2025-android
92+
machine_type_id: g2.linux.x-large
8993

9094
run_docker_integration_tests_linux:
9195
steps:

integrationtests/toolprovider/mise/install_nixpkgs_ruby_test.go

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
package mise
55

66
import (
7-
"context"
87
"testing"
9-
"time"
108

119
"github.com/bitrise-io/bitrise/v2/toolprovider/mise"
1210
"github.com/bitrise-io/bitrise/v2/toolprovider/provider"
@@ -16,13 +14,33 @@ import (
1614
func TestMiseInstallNixpkgsRuby(t *testing.T) {
1715
tests := []struct {
1816
name string
19-
requestedVersion string
17+
version string
2018
resolutionStrategy provider.ResolutionStrategy
21-
expectedVersion string
19+
want string
2220
}{
23-
{"Install specific version", "3.3.9", provider.ResolutionStrategyStrict, "3.3.9"},
21+
{
22+
name: "Install specific version",
23+
version: "3.3.9",
24+
resolutionStrategy: provider.ResolutionStrategyStrict,
25+
want: "3.3.9",
26+
},
27+
{
28+
name: "Install fuzzy version and released strategy",
29+
version: "3.1", // EOL version, won't receive new patch versions suddenly
30+
resolutionStrategy: provider.ResolutionStrategyLatestReleased,
31+
want: "3.1.7",
32+
},
33+
{
34+
name: "Install fuzzy version and installed strategy",
35+
version: "3.1", // EOL version, won't receive new patch versions
36+
resolutionStrategy: provider.ResolutionStrategyLatestInstalled,
37+
want: "3.1.7",
38+
},
2439
}
2540

41+
t.Setenv("BITRISE_TOOLSETUP_FAST_INSTALL", "1")
42+
t.Setenv("BITRISE_TOOLSETUP_FAST_INSTALL_FORCE", "1")
43+
2644
for _, tt := range tests {
2745
miseInstallDir := t.TempDir()
2846
miseDataDir := t.TempDir()
@@ -33,32 +51,17 @@ func TestMiseInstallNixpkgsRuby(t *testing.T) {
3351
require.NoError(t, err)
3452

3553
t.Run(tt.name, func(t *testing.T) {
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")
54+
request := provider.ToolRequest{
55+
ToolName: "ruby",
56+
UnparsedVersion: tt.version,
57+
ResolutionStrategy: tt.resolutionStrategy,
6158
}
59+
result, installErr := miseProvider.InstallTool(request)
60+
61+
require.NoError(t, installErr)
62+
require.Equal(t, provider.ToolID("ruby"), result.ToolName)
63+
require.Equal(t, tt.want, result.ConcreteVersion)
64+
require.False(t, result.IsAlreadyInstalled)
6265
})
6366
}
6467
}

0 commit comments

Comments
 (0)