From f32f5e4050561fcfc519b093b0d6643c8596d353 Mon Sep 17 00:00:00 2001 From: Souma Date: Wed, 22 Apr 2026 21:33:59 +0900 Subject: [PATCH 1/2] fix(internal): Use `spf13/pflag` instead of `flag` The official flag package doesn't match the project's flag detection. --- internal/util/isFlagPassed.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/util/isFlagPassed.go b/internal/util/isFlagPassed.go index 1c16872..30b7a9b 100644 --- a/internal/util/isFlagPassed.go +++ b/internal/util/isFlagPassed.go @@ -1,6 +1,6 @@ package util -import "flag" +import flag "github.com/spf13/pflag" func IsFlagPassed(name string) bool { found := false From ddb9a4635e8b423a8a7471526e62525010cd141c Mon Sep 17 00:00:00 2001 From: Souma Date: Wed, 22 Apr 2026 21:35:43 +0900 Subject: [PATCH 2/2] test(internal): Add a unit test to check not passed flag Verify only flags that passed are recognized. --- internal/util/isFlagPassed_test.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/internal/util/isFlagPassed_test.go b/internal/util/isFlagPassed_test.go index 0bfce14..6bc9ac8 100644 --- a/internal/util/isFlagPassed_test.go +++ b/internal/util/isFlagPassed_test.go @@ -3,19 +3,32 @@ package util_test import ( "testing" + flag "github.com/spf13/pflag" "github.com/stefanlogue/meteor/internal/util" ) func TestIsFlagPassed(t *testing.T) { + original := flag.CommandLine + t.Cleanup(func() { + flag.CommandLine = original + }) + tests := []struct { name string flagName string + setFlag bool want bool }{ + { + name: "version flag is not passed", + flagName: "version", + want: false, + }, { name: "version flag is passed", flagName: "version", - want: false, // Will be false in test context unless explicitly set + setFlag: true, + want: true, }, { name: "non-existent flag", @@ -25,6 +38,14 @@ func TestIsFlagPassed(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + flag.CommandLine = flag.NewFlagSet("test", flag.ContinueOnError) + flag.Bool("version", false, "") + if tt.setFlag { + if err := flag.CommandLine.Set(tt.flagName, "true"); err != nil { + t.Fatalf("failed setting flag %q: %v", tt.flagName, err) + } + } + got := util.IsFlagPassed(tt.flagName) if got != tt.want { t.Errorf("IsFlagPassed() = %v, want %v", got, tt.want)