| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package customcost
- import (
- "testing"
- "github.com/opencost/opencost/core/pkg/opencost"
- "github.com/opencost/opencost/core/pkg/util/httputil"
- )
- // Test_ParseCustomCostRequest_Accumulate focuses on testing that both Custom Cost request parsing functions properly
- // set the `accumulate` field, inspired by a desire to prevent a regression of https://kubecost.atlassian.net/browse/ENG-2212
- func Test_ParseCustomCostRequest_Accumulate(t *testing.T) {
- testCases := map[string]struct {
- accumulateString string
- expectedAccumulate opencost.AccumulateOption
- }{
- "no accumulate": {
- accumulateString: "",
- expectedAccumulate: opencost.AccumulateOptionDay,
- },
- "hour accumulate": {
- accumulateString: "hour",
- expectedAccumulate: opencost.AccumulateOptionHour,
- },
- "day accumulate": {
- accumulateString: "day",
- expectedAccumulate: opencost.AccumulateOptionDay,
- },
- }
- for name, tc := range testCases {
- t.Run(name, func(t *testing.T) {
- qp := httputil.NewQueryParams(map[string][]string{})
- qp.Set("window", "7d")
- if len(tc.accumulateString) > 0 {
- qp.Set("accumulate", tc.accumulateString)
- }
- totalRequest, err := ParseCustomCostTotalRequest(qp)
- if err != nil {
- t.Fatalf("expected no error, got: %v", err)
- } else if totalRequest.Accumulate != tc.expectedAccumulate {
- t.Fatalf("expected %v, got %v", tc.expectedAccumulate, totalRequest.Accumulate)
- }
- timeseriesRequest, err := ParseCustomCostTimeseriesRequest(qp)
- if err != nil {
- t.Fatalf("expected no error, got: %v", err)
- } else if timeseriesRequest.Accumulate != tc.expectedAccumulate {
- t.Fatalf("expected %v, got %v", tc.expectedAccumulate, timeseriesRequest.Accumulate)
- }
- })
- }
- }
|