| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package xray
- import (
- "strings"
- "testing"
- )
- func TestGetRequiredUserString_Present(t *testing.T) {
- user := map[string]any{"email": "[email protected]"}
- got, err := getRequiredUserString(user, "email")
- if err != nil {
- t.Fatalf("unexpected error: %v", err)
- }
- if got != "[email protected]" {
- t.Fatalf("got %q, want %q", got, "[email protected]")
- }
- }
- func TestGetRequiredUserString_Missing(t *testing.T) {
- user := map[string]any{}
- if _, err := getRequiredUserString(user, "email"); err == nil {
- t.Fatal("expected error for missing key")
- }
- }
- func TestGetRequiredUserString_NilValue(t *testing.T) {
- user := map[string]any{"email": nil}
- if _, err := getRequiredUserString(user, "email"); err == nil {
- t.Fatal("expected error for nil value")
- }
- }
- func TestGetRequiredUserString_WrongType(t *testing.T) {
- user := map[string]any{"email": 42}
- _, err := getRequiredUserString(user, "email")
- if err == nil {
- t.Fatal("expected error for non-string value")
- }
- if !strings.Contains(err.Error(), "invalid type") {
- t.Fatalf("expected %q in error, got: %v", "invalid type", err)
- }
- }
- func TestGetOptionalUserString_Present(t *testing.T) {
- user := map[string]any{"flow": "xtls-rprx-vision"}
- got, err := getOptionalUserString(user, "flow")
- if err != nil {
- t.Fatalf("unexpected error: %v", err)
- }
- if got != "xtls-rprx-vision" {
- t.Fatalf("got %q, want %q", got, "xtls-rprx-vision")
- }
- }
- func TestGetOptionalUserString_MissingReturnsEmptyNoError(t *testing.T) {
- user := map[string]any{}
- got, err := getOptionalUserString(user, "flow")
- if err != nil {
- t.Fatalf("unexpected error for missing optional field: %v", err)
- }
- if got != "" {
- t.Fatalf("got %q, want empty string", got)
- }
- }
- func TestGetOptionalUserString_NilReturnsEmptyNoError(t *testing.T) {
- user := map[string]any{"flow": nil}
- got, err := getOptionalUserString(user, "flow")
- if err != nil {
- t.Fatalf("unexpected error for nil optional field: %v", err)
- }
- if got != "" {
- t.Fatalf("got %q, want empty string", got)
- }
- }
- func TestGetOptionalUserString_WrongTypeErrors(t *testing.T) {
- user := map[string]any{"flow": []string{"a", "b"}}
- if _, err := getOptionalUserString(user, "flow"); err == nil {
- t.Fatal("expected error for non-string optional value")
- }
- }
|