diff --git a/cmd/config.go b/cmd/config.go index e8b18b9..7bb6e66 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -23,6 +23,7 @@ import ( "io" "log" "os" + "time" "github.com/knadh/koanf/providers/posflag" "github.com/knadh/koanf/v2" @@ -80,7 +81,7 @@ Example durations for second parameter: ModeDiff int = iota ModeAdd - DefaultFormat string = "Mon Jan 02 15:04:05 MST" + DefaultFormat string = "Mon Jan 02 15:04:05 MST 2006" ) type Config struct { @@ -95,7 +96,10 @@ type Config struct { Args []string Output io.Writer Mode int - TZ string // for unit tests + + // internal flags for [unit] tests + tz string + refTime time.Time } func InitConfig(output io.Writer) (*Config, error) { diff --git a/cmd/times.go b/cmd/times.go index 826855f..f4b6c57 100644 --- a/cmd/times.go +++ b/cmd/times.go @@ -73,9 +73,9 @@ func (tp *TimestampProccessor) Parse(timestamp string) (time.Time, error) { return ts, err } - if tp.TZ != "" { + if tp.tz != "" { // apply custom timezone - zone, _ := time.LoadLocation(tp.TZ) + zone, _ := time.LoadLocation(tp.tz) ts = ts.In(zone) } diff --git a/cmd/times_test.go b/cmd/times_test.go index 9db07b7..8e9835b 100644 --- a/cmd/times_test.go +++ b/cmd/times_test.go @@ -73,7 +73,7 @@ func TestParseTimestamps(t *testing.T) { testname := fmt.Sprintf("parsetimestamp-%s", strings.ReplaceAll(tt.input, " ", "-")) t.Run(testname, func(t *testing.T) { var writer bytes.Buffer - tp := NewTP(&Config{Args: []string{tt.input}, Output: &writer, TZ: "UTC"}, now) + tp := NewTP(&Config{Args: []string{tt.input}, Output: &writer, tz: "UTC"}, now) // writer.String() ts, err := tp.Parse(tt.input) @@ -82,7 +82,7 @@ func TestParseTimestamps(t *testing.T) { err = tp.ProcessTimestamps() assert.NoError(t, err) - assert.EqualValues(t, tt.want.String()+"\n", writer.String()) + assert.EqualValues(t, tt.want.Format(DefaultFormat)+"\n", writer.String()) }) } } @@ -148,7 +148,7 @@ func TestAddTimestamps(t *testing.T) { err := tp.ProcessTimestamps() assert.NoError(t, err) - assert.EqualValues(t, tt.want.String()+"\n", writer.String()) + assert.EqualValues(t, tt.want.Format(DefaultFormat)+"\n", writer.String()) }) } } diff --git a/cmd/writer_test.go b/cmd/writer_test.go index 37e3678..110b9a4 100644 --- a/cmd/writer_test.go +++ b/cmd/writer_test.go @@ -65,7 +65,7 @@ func TestDatetime(t *testing.T) { {"date", now, "2025-09-25"}, {"time", now, "12:30:00"}, {"unix", now, "1758803400"}, - {"datetime", now, "2025-09-25 12:30:00 +0000 UTC"}, + {"datetime", now, "Thu Sep 25 12:30:00 UTC 2025"}, } for _, tt := range tests { diff --git a/t/simple.txtar b/t/simple.txtar index fac44d1..988f91e 100644 --- a/t/simple.txtar +++ b/t/simple.txtar @@ -5,6 +5,6 @@ exec ts -e stdout 'yesterday' exec ts 3/1/2014 -stdout 2014-01-03 +stdout 'Fri Jan 03'