summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.golangci.yml6
-rw-r--r--internal/cli/timer.go3
-rw-r--r--internal/cli/tui.go3
-rw-r--r--internal/timer/operations_test.go30
-rw-r--r--internal/tui/entries.go2
-rw-r--r--internal/tui/tui_test.go3
-rw-r--r--internal/worktime/report.go15
7 files changed, 32 insertions, 30 deletions
diff --git a/.golangci.yml b/.golangci.yml
index 9aa3b5c..6359905 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -1,14 +1,12 @@
-run:
- timeout: 5m
-
+version: "2"
linters:
+ default: none
enable:
- errcheck
- govet
- ineffassign
- staticcheck
- unused
-
issues:
max-issues-per-linter: 0
max-same-issues: 0
diff --git a/internal/cli/timer.go b/internal/cli/timer.go
index e9889c4..222b7df 100644
--- a/internal/cli/timer.go
+++ b/internal/cli/timer.go
@@ -195,7 +195,8 @@ func newTimerLiveCmd() *cobra.Command {
return err
}
program := tea.NewProgram(model)
- return program.Start()
+ _, err = program.Run()
+ return err
},
}
diff --git a/internal/cli/tui.go b/internal/cli/tui.go
index 474ffc2..e3b6426 100644
--- a/internal/cli/tui.go
+++ b/internal/cli/tui.go
@@ -18,7 +18,8 @@ func newTUICmd() *cobra.Command {
return err
}
program := tea.NewProgram(model)
- return program.Start()
+ _, err = program.Run()
+ return err
},
}
diff --git a/internal/timer/operations_test.go b/internal/timer/operations_test.go
index c0480d7..68764c4 100644
--- a/internal/timer/operations_test.go
+++ b/internal/timer/operations_test.go
@@ -241,11 +241,16 @@ func TestTrackTime(t *testing.T) {
tracker := &mockTracker{}
// Start timer and let it run for a bit
- state, _ := LoadState()
+ state, err := LoadState()
+ if err != nil {
+ t.Fatalf("LoadState() error = %v", err)
+ }
state.Running = true
state.StartTime = time.Now().Add(-5 * time.Minute)
state.ElapsedTime = 0
- state.Save()
+ if err := state.Save(); err != nil {
+ t.Fatalf("state.Save() error = %v", err)
+ }
msg, err := TrackTimeWithTracker("test description", tracker)
if err != nil {
@@ -261,7 +266,10 @@ func TestTrackTime(t *testing.T) {
t.Fatalf("tracker minutes = %d, want around 5", tracker.minutes)
}
- state, _ = LoadState()
+ state, err = LoadState()
+ if err != nil {
+ t.Fatalf("LoadState() error = %v", err)
+ }
if state.Running || state.ElapsedTime != 0 {
t.Fatalf("state after tracking = %+v, want reset stopped state", state)
}
@@ -272,17 +280,25 @@ func TestTrackTime(t *testing.T) {
tracker := &mockTracker{err: errTestTracker}
// Set up a stopped timer with some elapsed time
- state, _ := LoadState()
+ state, err := LoadState()
+ if err != nil {
+ t.Fatalf("LoadState() error = %v", err)
+ }
state.Running = false
state.ElapsedTime = 10 * time.Minute
- state.Save()
+ if err := state.Save(); err != nil {
+ t.Fatalf("state.Save() error = %v", err)
+ }
- _, err := TrackTimeWithTracker("another test", tracker)
+ _, err = TrackTimeWithTracker("another test", tracker)
if err == nil {
t.Fatal("TrackTimeWithTracker() error = nil, want tracker error")
}
- state, _ = LoadState()
+ state, err = LoadState()
+ if err != nil {
+ t.Fatalf("LoadState() error = %v", err)
+ }
if state.Running {
t.Fatal("state.Running = true, want false after failed tracking")
}
diff --git a/internal/tui/entries.go b/internal/tui/entries.go
index 2d35708..e0e76bf 100644
--- a/internal/tui/entries.go
+++ b/internal/tui/entries.go
@@ -1064,7 +1064,7 @@ func (m *EntriesModel) renderTimelineTable(styles Styles) string {
for colIdx := range row {
cellStyles[colIdx] = styles.TableCell
if idx == m.cursor {
- cellStyles[colIdx] = styles.TableCell.Copy().Bold(true)
+ cellStyles[colIdx] = styles.TableCell.Bold(true)
if entriesColumn(colIdx) == m.selectedColumn {
cellStyles[colIdx] = styles.TableSelected
}
diff --git a/internal/tui/tui_test.go b/internal/tui/tui_test.go
index eb64f14..e41317d 100644
--- a/internal/tui/tui_test.go
+++ b/internal/tui/tui_test.go
@@ -76,8 +76,7 @@ func TestQuitKeys(t *testing.T) {
modelAny, _ = model.Update(tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'Z'}})
model = modelAny.(*Model)
- modelAny, cmd = model.Update(tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'Q'}})
- model = modelAny.(*Model)
+ _, cmd = model.Update(tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'Q'}})
if cmd == nil {
t.Fatal("quit cmd is nil for ZQ")
}
diff --git a/internal/worktime/report.go b/internal/worktime/report.go
index 11890a9..c289b55 100644
--- a/internal/worktime/report.go
+++ b/internal/worktime/report.go
@@ -3,7 +3,6 @@ package worktime
import (
"fmt"
"math"
- "sort"
"strings"
"time"
@@ -289,7 +288,7 @@ func formatData(values map[string]int64, bufferSeconds int64, epoch int64, verbo
}
if verbose && epoch > 0 {
- out.WriteString(fmt.Sprintf(" epoch:%d(%s)", epoch, time.Unix(epoch, 0)))
+ _, _ = fmt.Fprintf(&out, " epoch:%d(%s)", epoch, time.Unix(epoch, 0))
}
return out.String()
@@ -411,15 +410,3 @@ func newWeekAccumulator() weekAccumulator {
values: map[string]int64{},
}
}
-
-func sortedWeekReports(reports []WeekReport) {
- sort.SliceStable(reports, func(i, j int) bool {
- if reports[i].WeekLabel != reports[j].WeekLabel {
- return reports[i].WeekLabel < reports[j].WeekLabel
- }
- if len(reports[i].Days) == 0 || len(reports[j].Days) == 0 {
- return len(reports[i].Days) < len(reports[j].Days)
- }
- return reports[i].Days[0].Epoch < reports[j].Days[0].Epoch
- })
-}