Sfoglia il codice sorgente

build: Add unit tests for regex (ref: #578)

jamesread 1 anno fa
parent
commit
fcfa007cec
1 ha cambiato i file con 37 aggiunte e 0 eliminazioni
  1. 37 0
      service/internal/executor/arguments_test.go

+ 37 - 0
service/internal/executor/arguments_test.go

@@ -95,3 +95,40 @@ func TestTypeSafetyCheckUrl(t *testing.T) {
 	assert.NotNil(t, TypeSafetyCheck("test5", "12345", "url"), "Test a badly formed URL")
 	assert.NotNil(t, TypeSafetyCheck("test6", "_!23;", "url"), "Test a badly formed URL")
 }
+
+func TestTypeSafetyCheckRegex(t *testing.T) {
+	tests := []struct {
+		name     string
+		field    string
+		pattern  string
+		value    string
+		hasError bool
+	}{
+		{
+			name:     "Issue #578 - Domain",
+			field:    "domain",
+			pattern:  "regex:^(?:[a-zA-Z0-9-]{1,63}.)+[a-zA-Z]{2,63}$",
+			value:    "immich.example.dev",
+			hasError: false,
+		},
+		{
+			name:     "Don't allow numbers in username",
+			field:    "Username",
+			pattern:  "regex:^[a-zA-Z]$",
+			value:    "James1234",
+			hasError: true,
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			err := typeSafetyCheckRegex(tt.field, tt.value, tt.pattern)
+
+			if tt.hasError {
+				assert.NotNil(t, err, "Expected error for value %s with pattern %s, but got no error", tt.value, tt.pattern)
+			} else {
+				assert.Nil(t, err, "Expected no error for value %s with pattern %s, but got error: %v", tt.value, tt.pattern, err)
+			}
+		})
+	}
+}