mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-01-10 00:43:36 +02:00
57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
|
package search
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func TestIdentifierMacros(t *testing.T) {
|
||
|
originalTimeNow := timeNow
|
||
|
|
||
|
timeNow = func() time.Time {
|
||
|
return time.Date(2023, 2, 3, 4, 5, 6, 7, time.UTC)
|
||
|
}
|
||
|
|
||
|
testMacros := map[string]any{
|
||
|
"@now": "2023-02-03 04:05:06.000Z",
|
||
|
"@second": 6,
|
||
|
"@minute": 5,
|
||
|
"@hour": 4,
|
||
|
"@day": 3,
|
||
|
"@month": 2,
|
||
|
"@weekday": 5,
|
||
|
"@year": 2023,
|
||
|
"@todayStart": "2023-02-03 00:00:00.000Z",
|
||
|
"@todayEnd": "2023-02-03 23:59:59.999Z",
|
||
|
"@monthStart": "2023-02-01 00:00:00.000Z",
|
||
|
"@monthEnd": "2023-02-28 23:59:59.999Z",
|
||
|
"@yearStart": "2023-01-01 00:00:00.000Z",
|
||
|
"@yearEnd": "2023-12-31 23:59:59.999Z",
|
||
|
}
|
||
|
|
||
|
if len(testMacros) != len(identifierMacros) {
|
||
|
t.Fatalf("Expected %d macros, got %d", len(testMacros), len(identifierMacros))
|
||
|
}
|
||
|
|
||
|
for key, expected := range testMacros {
|
||
|
t.Run(key, func(t *testing.T) {
|
||
|
macro, ok := identifierMacros[key]
|
||
|
if !ok {
|
||
|
t.Fatalf("Missing macro %s", key)
|
||
|
}
|
||
|
|
||
|
result, err := macro()
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
if result != expected {
|
||
|
t.Fatalf("Expected %q, got %q", expected, result)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|
||
|
// restore
|
||
|
timeNow = originalTimeNow
|
||
|
}
|