Files
Arvindh 67180a55f7 NOISSUE - Update Errors (#374)
* update MG errors

Signed-off-by: Arvindh <arvindh91@gmail.com>

* update MG errors

Signed-off-by: Arvindh <arvindh91@gmail.com>

* sync with supermq main

Signed-off-by: Arvindh <arvindh91@gmail.com>

* update MG errors

Signed-off-by: Arvindh <arvindh91@gmail.com>

---------

Signed-off-by: Arvindh <arvindh91@gmail.com>
2025-12-31 16:57:06 +01:00

77 lines
1.6 KiB
Go

// Copyright (c) Abstract Machines
// SPDX-License-Identifier: Apache-2.0
package reltime
import (
"fmt"
"testing"
"time"
"github.com/absmach/supermq/pkg/errors"
"github.com/stretchr/testify/assert"
)
func TestParse(t *testing.T) {
now := time.Now()
tests := []struct {
desc string
expr string
expected time.Time
err error
}{
{
desc: "testing expression now()-5d",
expr: "now()-5d",
expected: now.Add(-5 * 24 * time.Hour),
err: nil,
},
{
desc: "testing expression now()+2h30m",
expr: "now()+2h30m",
expected: now.Add(2*time.Hour + 30*time.Minute),
err: nil,
},
{
desc: "testing expression now()-1w3d10h40m",
expr: "now()-1w3d10h40m",
expected: now.Add(-(7*24+3*24+10)*time.Hour - 40*time.Minute),
err: nil,
},
{
desc: "testing expression yesterday",
expr: "yesterday",
err: ErrInvalidExpression,
},
{
desc: "testing expression now()--5d",
expr: "now()--5d",
err: ErrInvalidExpression,
},
{
desc: "testing expression now()+",
expr: "now()+",
err: ErrInvalidExpression,
},
{
desc: "testing expression now()+5r",
expr: "now()+5r",
err: ErrInvalidDuration,
},
{
desc: "testing expression now()+5M",
expr: "now()+5M",
err: ErrUnsupportedUnit,
},
}
for _, tc := range tests {
got, err := Parse(tc.expr)
assert.True(t, errors.Contains(err, tc.err), fmt.Sprintf("%s: expected %v got %v and response time %v\n", tc.desc, tc.err, err, got))
if err == nil {
assert.WithinDuration(t, tc.expected, got, time.Duration(10*time.Second))
}
}
}