diff options
Diffstat (limited to 'internal/controlplane/usage_analytics_test.go')
| -rw-r--r-- | internal/controlplane/usage_analytics_test.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/controlplane/usage_analytics_test.go b/internal/controlplane/usage_analytics_test.go new file mode 100644 index 0000000..2372be6 --- /dev/null +++ b/internal/controlplane/usage_analytics_test.go @@ -0,0 +1,34 @@ +package controlplane + +import "testing" + +func TestChargeChange(t *testing.T) { + tests := []struct { + name string + current, previous int64 + want *float64 + }{ + {name: "no activity", current: 0, previous: 0, want: nil}, + {name: "new spend has no finite percentage", current: 25, previous: 0, want: nil}, + {name: "increase", current: 125, previous: 25, want: floatPointer(400)}, + {name: "decrease", current: 25, previous: 100, want: floatPointer(-75)}, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + got := chargeChange(test.current, test.previous) + if test.want == nil { + if got != nil { + t.Fatalf("chargeChange() = %v, want nil", *got) + } + return + } + if got == nil || *got != *test.want { + t.Fatalf("chargeChange() = %v, want %v", got, *test.want) + } + }) + } +} + +func floatPointer(value float64) *float64 { + return &value +} |
