(t *testing.T)
| 210 | } |
| 211 | |
| 212 | func TestTokenFunctionsStrftime(t *testing.T) { |
| 213 | t.Parallel() |
| 214 | |
| 215 | testDB, err := createTestDB() |
| 216 | if err != nil { |
| 217 | t.Fatal(err) |
| 218 | } |
| 219 | defer testDB.Close() |
| 220 | |
| 221 | fn, ok := TokenFunctions["strftime"] |
| 222 | if !ok { |
| 223 | t.Error("Expected strftime token function to be registered.") |
| 224 | } |
| 225 | |
| 226 | baseTokenResolver := func(t fexpr.Token) (*ResolverResult, error) { |
| 227 | placeholder := "t" + security.PseudorandomString(5) |
| 228 | return &ResolverResult{Identifier: "{:" + placeholder + "}", Params: map[string]any{placeholder: t.Literal}}, nil |
| 229 | } |
| 230 | |
| 231 | scenarios := []struct { |
| 232 | name string |
| 233 | args []fexpr.Token |
| 234 | resolver func(t fexpr.Token) (*ResolverResult, error) |
| 235 | result *ResolverResult |
| 236 | expectErr bool |
| 237 | }{ |
| 238 | { |
| 239 | "no args", |
| 240 | nil, |
| 241 | baseTokenResolver, |
| 242 | nil, |
| 243 | true, |
| 244 | }, |
| 245 | |
| 246 | // format arg |
| 247 | // ----------------------------------------------------------- |
| 248 | { |
| 249 | "(format arg) invalid token type function", |
| 250 | []fexpr.Token{ |
| 251 | {Literal: "abc", Type: fexpr.TokenFunction}, |
| 252 | }, |
| 253 | baseTokenResolver, |
| 254 | nil, |
| 255 | true, |
| 256 | }, |
| 257 | { |
| 258 | "(format arg) invalid token type ws", |
| 259 | []fexpr.Token{ |
| 260 | {Literal: "abc", Type: fexpr.TokenWS}, |
| 261 | }, |
| 262 | baseTokenResolver, |
| 263 | nil, |
| 264 | true, |
| 265 | }, |
| 266 | { |
| 267 | "(format arg) invalid token type number", |
| 268 | []fexpr.Token{ |
| 269 | {Literal: "abc", Type: fexpr.TokenNumber}, |
nothing calls this directly
no test coverage detected
searching dependent graphs…