11package config
22
33import (
4- "github.com/stretchr/testify/require"
54 "os"
5+ "path/filepath"
66 "testing"
77 "time"
88
99 "github.com/spf13/cobra"
1010 "github.com/spf13/viper"
11+ "github.com/stretchr/testify/require"
1112)
1213
1314func TestArgumentPrecedence (t * testing.T ) {
@@ -71,13 +72,7 @@ func TestArgumentPrecedence(t *testing.T) {
7172 viper .Reset ()
7273
7374 // Create temporary config file
74- configFile , err := createTempConfigFile (t , tt .configContent )
75- if err != nil {
76- t .Fatalf ("Failed to create temp config file: %v" , err )
77- }
78- defer func () {
79- require .NoError (t , os .Remove (configFile ))
80- }()
75+ configFile := createTempConfigFile (t , tt .configContent )
8176
8277 // Create test command with flags
8378 cmd := & cobra.Command {
@@ -99,34 +94,22 @@ func TestArgumentPrecedence(t *testing.T) {
9994 // Parse CLI args
10095 if len (tt .cliArgs ) > 0 {
10196 cmd .SetArgs (tt .cliArgs )
102- if err := cmd .Execute (); err != nil {
103- t .Fatalf ("Failed to parse CLI args: %v" , err )
104- }
97+ require .NoError (t , cmd .Execute (), "Failed to parse CLI args" )
10598 }
10699
107100 // Initialize Viper
108- if err := InitializeViper (cmd ); err != nil {
109- t .Fatalf ("Failed to initialize Viper: %v" , err )
110- }
101+ require .NoError (t , InitializeViper (cmd ), "Failed to initialize Viper" )
111102
112103 // Load config file
113- if err := LoadConfigFile (configFile ); err != nil {
114- t .Fatalf ("Failed to load config file: %v" , err )
115- }
104+ require .NoError (t , LoadConfigFile (configFile ), "Failed to load config file" )
116105
117106 // Resolve settings
118107 settings := ResolveSettings ()
119108
120109 // Verify expectations
121- if settings .StatsInterval != tt .expectedStats {
122- t .Errorf ("StatsInterval: expected %v, got %v" , tt .expectedStats , settings .StatsInterval )
123- }
124- if settings .Workers != tt .expectedWorkers {
125- t .Errorf ("Workers: expected %d, got %d" , tt .expectedWorkers , settings .Workers )
126- }
127- if settings .TPS != tt .expectedTPS {
128- t .Errorf ("TPS: expected %f, got %f" , tt .expectedTPS , settings .TPS )
129- }
110+ require .Equal (t , tt .expectedStats , settings .StatsInterval , "StatsInterval: expected %v, got %v" , tt .expectedStats , settings .StatsInterval )
111+ require .Equal (t , tt .expectedWorkers , settings .Workers , "Workers: expected %d, got %d" , tt .expectedWorkers , settings .Workers )
112+ require .Equal (t , tt .expectedTPS , settings .TPS , "TPS: expected %f, got %f" , tt .expectedTPS , settings .TPS )
130113 })
131114 }
132115}
@@ -153,22 +136,10 @@ func TestDefaultSettings(t *testing.T) {
153136}
154137
155138// Helper function to create temporary config files for testing
156- func createTempConfigFile (t * testing.T , content string ) (string , error ) {
157- tmpFile , err := os .CreateTemp ("" , "test-config-*.json" )
158- if err != nil {
159- return "" , err
160- }
161-
162- if _ , err := tmpFile .WriteString (content ); err != nil {
163- require .NoError (t , tmpFile .Close ())
164- require .NoError (t , os .Remove (tmpFile .Name ()))
165- return "" , err
166- }
167-
168- if err := tmpFile .Close (); err != nil {
169- require .NoError (t , os .Remove (tmpFile .Name ()))
170- return "" , err
171- }
172-
173- return tmpFile .Name (), nil
139+ func createTempConfigFile (t * testing.T , content string ) string {
140+ t .Helper ()
141+ destination := filepath .Join (t .TempDir (), "test-config.json" )
142+ err := os .WriteFile (destination , []byte (content ), 0644 )
143+ require .NoError (t , err , "Failed to create temp config file: %v" , err )
144+ return destination
174145}
0 commit comments