Skip to content

Commit 6e1886a

Browse files
committed
Address Gemini code review feedback
- Use os.Getwd() instead of filepath.Abs(os.Getenv("PWD")) for better portability - Update Java version from 11 to 21 to match test Docker image - Use Map.of() for immutable maps (Java 9+ best practice) - Remove unused HashMap import - Refactor integration test runner to use loop pattern for better maintainability
1 parent 28d81c4 commit 6e1886a

File tree

4 files changed

+50
-77
lines changed

4 files changed

+50
-77
lines changed

test/integration/cmd/java/run.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func main() {
7676
ctx := context.Background()
7777

7878
// Get project root
79-
projectDir, err := filepath.Abs(os.Getenv("PWD"))
79+
projectDir, err := os.Getwd()
8080
if err != nil {
8181
fmt.Fprintf(os.Stderr, "Failed to get project dir: %v\n", err)
8282
os.Exit(1)

test/integration/cmd/run.go

Lines changed: 18 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,51 +7,28 @@ import (
77
)
88

99
func main() {
10-
// Run the language-specific tests
1110
fmt.Println("=== Running all integration tests ===")
1211

13-
// Run the C# integration test
14-
csharpCmd := exec.Command("go", "run", "github.com/open-feature/cli/test/integration/cmd/csharp")
15-
csharpCmd.Stdout = os.Stdout
16-
csharpCmd.Stderr = os.Stderr
17-
if err := csharpCmd.Run(); err != nil {
18-
fmt.Fprintf(os.Stderr, "Error running C# integration test: %v\n", err)
19-
os.Exit(1)
12+
tests := []struct {
13+
name string
14+
path string
15+
}{
16+
{"C#", "github.com/open-feature/cli/test/integration/cmd/csharp"},
17+
{"Go", "github.com/open-feature/cli/test/integration/cmd/go"},
18+
{"NodeJS", "github.com/open-feature/cli/test/integration/cmd/nodejs"},
19+
{"Angular", "github.com/open-feature/cli/test/integration/cmd/angular"},
20+
{"Java", "github.com/open-feature/cli/test/integration/cmd/java"},
2021
}
2122

22-
// Run the Go integration test
23-
goCmd := exec.Command("go", "run", "github.com/open-feature/cli/test/integration/cmd/go")
24-
goCmd.Stdout = os.Stdout
25-
goCmd.Stderr = os.Stderr
26-
if err := goCmd.Run(); err != nil {
27-
fmt.Fprintf(os.Stderr, "Error running Go integration test: %v\n", err)
28-
os.Exit(1)
29-
}
30-
// Run the nodejs test
31-
nodeCmd := exec.Command("go", "run", "github.com/open-feature/cli/test/integration/cmd/nodejs")
32-
nodeCmd.Stdout = os.Stdout
33-
nodeCmd.Stderr = os.Stderr
34-
if err := nodeCmd.Run(); err != nil {
35-
fmt.Fprintf(os.Stderr, "Error running nodejs integration test: %v\n", err)
36-
os.Exit(1)
37-
}
38-
39-
// Run the Angular integration test
40-
angularCmd := exec.Command("go", "run", "github.com/open-feature/cli/test/integration/cmd/angular")
41-
angularCmd.Stdout = os.Stdout
42-
angularCmd.Stderr = os.Stderr
43-
if err := angularCmd.Run(); err != nil {
44-
fmt.Fprintf(os.Stderr, "Error running Angular integration test: %v\n", err)
45-
os.Exit(1)
46-
}
47-
48-
// Run the Java integration test
49-
javaCmd := exec.Command("go", "run", "github.com/open-feature/cli/test/integration/cmd/java")
50-
javaCmd.Stdout = os.Stdout
51-
javaCmd.Stderr = os.Stderr
52-
if err := javaCmd.Run(); err != nil {
53-
fmt.Fprintf(os.Stderr, "Error running Java integration test: %v\n", err)
54-
os.Exit(1)
23+
for _, test := range tests {
24+
fmt.Printf("--- Running %s integration test ---\n", test.name)
25+
cmd := exec.Command("go", "run", test.path)
26+
cmd.Stdout = os.Stdout
27+
cmd.Stderr = os.Stderr
28+
if err := cmd.Run(); err != nil {
29+
fmt.Fprintf(os.Stderr, "Error running %s integration test: %v\n", test.name, err)
30+
os.Exit(1)
31+
}
5532
}
5633

5734
fmt.Println("=== All integration tests passed successfully ===")

test/java-integration/pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<version>1.0-SNAPSHOT</version>
1010

1111
<properties>
12-
<maven.compiler.source>11</maven.compiler.source>
13-
<maven.compiler.target>11</maven.compiler.target>
12+
<maven.compiler.source>21</maven.compiler.source>
13+
<maven.compiler.target>21</maven.compiler.target>
1414
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1515
</properties>
1616

@@ -30,8 +30,8 @@
3030
<artifactId>maven-compiler-plugin</artifactId>
3131
<version>3.11.0</version>
3232
<configuration>
33-
<source>11</source>
34-
<target>11</target>
33+
<source>21</source>
34+
<target>21</target>
3535
</configuration>
3636
</plugin>
3737
<plugin>

test/java-integration/src/main/java/dev/openfeature/Main.java

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import dev.openfeature.sdk.providers.memory.Flag;
66
import dev.openfeature.sdk.providers.memory.InMemoryProvider;
77

8-
import java.util.HashMap;
98
import java.util.Map;
109

1110
public class Main {
@@ -22,36 +21,33 @@ public static void main(String[] args) {
2221

2322
private static void run() throws Exception {
2423
// Set up the in-memory provider with test flags
25-
Map<String, Flag<?>> flags = new HashMap<>();
26-
27-
flags.put("discountPercentage", Flag.builder()
28-
.variant("default", 0.15)
29-
.defaultVariant("default")
30-
.build());
31-
32-
flags.put("enableFeatureA", Flag.builder()
33-
.variant("default", false)
34-
.defaultVariant("default")
35-
.build());
36-
37-
flags.put("greetingMessage", Flag.builder()
38-
.variant("default", "Hello there!")
39-
.defaultVariant("default")
40-
.build());
41-
42-
flags.put("usernameMaxLength", Flag.builder()
43-
.variant("default", 50)
44-
.defaultVariant("default")
45-
.build());
46-
47-
Map<String, Object> themeConfig = new HashMap<>();
48-
themeConfig.put("primaryColor", "#007bff");
49-
themeConfig.put("secondaryColor", "#6c757d");
50-
51-
flags.put("themeCustomization", Flag.builder()
52-
.variant("default", new Value(themeConfig))
53-
.defaultVariant("default")
54-
.build());
24+
Map<String, Object> themeConfig = Map.of(
25+
"primaryColor", "#007bff",
26+
"secondaryColor", "#6c757d"
27+
);
28+
29+
Map<String, Flag<?>> flags = Map.of(
30+
"discountPercentage", Flag.builder()
31+
.variant("default", 0.15)
32+
.defaultVariant("default")
33+
.build(),
34+
"enableFeatureA", Flag.builder()
35+
.variant("default", false)
36+
.defaultVariant("default")
37+
.build(),
38+
"greetingMessage", Flag.builder()
39+
.variant("default", "Hello there!")
40+
.defaultVariant("default")
41+
.build(),
42+
"usernameMaxLength", Flag.builder()
43+
.variant("default", 50)
44+
.defaultVariant("default")
45+
.build(),
46+
"themeCustomization", Flag.builder()
47+
.variant("default", new Value(themeConfig))
48+
.defaultVariant("default")
49+
.build()
50+
);
5551

5652
InMemoryProvider provider = new InMemoryProvider(flags);
5753

0 commit comments

Comments
 (0)