openmeter / billing /stdinvoice_test.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 3)
1c4c66b verified
Raw
History Blame Contribute Delete
1.84 kB
package billing
import (
"testing"
"time"
"github.com/samber/lo"
"github.com/stretchr/testify/require"
"github.com/openmeterio/openmeter/openmeter/billing/models/stddetailedline"
"github.com/openmeterio/openmeter/pkg/models"
"github.com/openmeterio/openmeter/pkg/timeutil"
)
func TestSortLines(t *testing.T) {
lines := StandardLines{
{
StandardLineBase: StandardLineBase{
ManagedResource: models.NewManagedResource(models.ManagedResourceInput{
Name: "usage-based-line",
Description: lo.ToPtr("index=1"),
}),
Period: timeutil.ClosedPeriod{
From: time.Now().Add(time.Hour * 24),
},
},
DetailedLines: DetailedLines{
{
DetailedLineBase: DetailedLineBase{
Base: stddetailedline.Base{
ManagedResource: models.NewManagedResource(models.ManagedResourceInput{
Name: "child-2",
Description: lo.ToPtr("index=1.1"),
}),
Index: lo.ToPtr(1),
},
},
},
{
DetailedLineBase: DetailedLineBase{
Base: stddetailedline.Base{
ManagedResource: models.NewManagedResource(models.ManagedResourceInput{
Name: "child-1",
Description: lo.ToPtr("index=1.0"),
}),
Index: lo.ToPtr(0),
},
},
},
},
},
{
StandardLineBase: StandardLineBase{
ManagedResource: models.NewManagedResource(models.ManagedResourceInput{
Name: "usage-based-line",
Description: lo.ToPtr("index=0"),
}),
Period: timeutil.ClosedPeriod{
From: time.Now(),
},
},
},
}
lines.Sort()
require.Equal(t, *lines[0].Description, "index=0")
require.Equal(t, *lines[1].Description, "index=1")
children := lines[1].DetailedLines
require.Equal(t, *children[0].Description, "index=1.0")
require.Equal(t, *children[1].Description, "index=1.1")
}