@@ -66,6 +66,73 @@ func TestProcessRuntimes(t *testing.T) {
6666 expectedExtension = "zip"
6767 }
6868
69+ flutterExpectedExtension := "zip"
70+ if runtime .GOOS == "linux" {
71+ flutterExpectedExtension = "tar.xz"
72+ }
73+
74+ // Assert flutter extension
75+ assert .Equal (t , flutterExpectedExtension , flutterInfo .Extension )
76+
77+ // Additional flutter assertions
78+ // Assert the filename is correctly set to a constant "flutter"
79+ assert .Equal (t , "flutter" , flutterInfo .FileName )
80+
81+ // Assert the install directory is correct for flutter
82+ assert .Equal (t , runtimesDir + "/" + flutterInfo .FileName , flutterInfo .InstallDir )
83+
84+ // Compute expected OS mapping for flutter download URL
85+ var expectedFlutterOS string
86+ switch runtime .GOOS {
87+ case "darwin" :
88+ expectedFlutterOS = "macos"
89+ case "linux" :
90+ expectedFlutterOS = "linux"
91+ case "windows" :
92+ expectedFlutterOS = "windows"
93+ default :
94+ expectedFlutterOS = runtime .GOOS
95+ }
96+
97+ // Compute expected arch for flutter (only used on macOS/default template)
98+ var expectedFlutterArch string
99+ switch runtime .GOARCH {
100+ case "386" :
101+ expectedFlutterArch = "ia32"
102+ case "amd64" :
103+ expectedFlutterArch = "x64"
104+ case "arm" :
105+ expectedFlutterArch = "arm"
106+ case "arm64" :
107+ expectedFlutterArch = "arm64"
108+ default :
109+ expectedFlutterArch = runtime .GOARCH
110+ }
111+
112+ // Build expected flutter download URL
113+ var expectedFlutterURL string
114+ if runtime .GOOS == "linux" {
115+ expectedFlutterURL = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_" + flutterInfo .Version + "-stable." + flutterExpectedExtension
116+ } else if runtime .GOOS == "windows" {
117+ expectedFlutterURL = "https://storage.googleapis.com/flutter_infra_release/releases/stable/windows/flutter_windows_" + flutterInfo .Version + "-stable." + flutterExpectedExtension
118+ } else {
119+ // Default template includes arch and mapped OS (e.g., macos)
120+ expectedFlutterURL = "https://storage.googleapis.com/flutter_infra_release/releases/stable/" + expectedFlutterOS + "/flutter_" + expectedFlutterOS + "_" + expectedFlutterArch + "_" + flutterInfo .Version + "-stable." + flutterExpectedExtension
121+ }
122+
123+ assert .Equal (t , expectedFlutterURL , flutterInfo .DownloadURL )
124+
125+ // Assert flutter binaries map has expected entries
126+ assert .NotNil (t , flutterInfo .Binaries )
127+ assert .Greater (t , len (flutterInfo .Binaries ), 0 )
128+
129+ // Check if dart binary is present and correctly mapped
130+ flutterDartBinary := flutterInfo .InstallDir + "/bin/dart"
131+ if runtime .GOOS == "windows" {
132+ flutterDartBinary += ".exe"
133+ }
134+ assert .Equal (t , flutterDartBinary , flutterInfo .Binaries ["dart" ])
135+
69136 // Assert the filename is correctly formatted
70137 expectedFileName := "node-v18.17.1-" + runtime .GOOS + "-" + expectedArch
71138 assert .Equal (t , expectedFileName , nodeInfo .FileName )
0 commit comments