@@ -99,32 +99,32 @@ func TestMatchesHostPattern(t *testing.T) {
99
99
{"IP wildcard - different last octet" , "127.0.0.255" , "127.0.0.%" , true },
100
100
{"IP wildcard - no match" , "192.168.1.1" , "127.0.0.%" , false },
101
101
{"IP wildcard - partial match" , "127.0.1.1" , "127.0.0.%" , false },
102
-
102
+
103
103
// Multiple wildcards
104
104
{"Multiple wildcards" , "192.168.1.100" , "192.168.%.%" , true },
105
105
{"Multiple wildcards - no match" , "10.0.1.100" , "192.168.%.%" , false },
106
-
106
+
107
107
// Single wildcard at different positions
108
108
{"Wildcard first octet" , "10.0.0.1" , "%.0.0.1" , true },
109
109
{"Wildcard middle octet" , "192.168.50.1" , "192.%.50.1" , true },
110
110
{"Wildcard last octet" , "192.168.1.255" , "192.168.1.%" , true },
111
-
111
+
112
112
// Non-IP patterns
113
113
{"Hostname wildcard" , "server1.example.com" , "server%.example.com" , true },
114
114
{"Hostname wildcard - no match" , "db1.example.com" , "server%.example.com" , false },
115
115
{"Domain wildcard" , "host.subdomain.example.com" , "%.example.com" , true },
116
-
116
+
117
117
// Edge cases
118
118
{"Empty pattern" , "127.0.0.1" , "" , false },
119
119
{"Pattern without wildcard" , "127.0.0.1" , "127.0.0.1" , false }, // Should return false as it's not a wildcard pattern
120
120
{"Just wildcard" , "anything" , "%" , true },
121
121
{"Multiple wildcards together" , "test" , "%%" , true },
122
-
122
+
123
123
// Special characters in patterns (should be escaped)
124
124
{"Pattern with dots" , "test.host" , "test.%" , true },
125
125
{"Pattern with regex chars" , "test[1]" , "test[%]" , true },
126
126
}
127
-
127
+
128
128
for _ , tt := range tests {
129
129
t .Run (tt .name , func (t * testing.T ) {
130
130
result := matchesHostPattern (tt .host , tt .pattern )
@@ -138,17 +138,17 @@ func TestGetUserWithWildcardAuthentication(t *testing.T) {
138
138
db := CreateEmptyMySQLDb ()
139
139
p := & capturingPersistence {}
140
140
db .SetPersister (p )
141
-
141
+
142
142
// Add test users with various host patterns
143
143
ed := db .Editor ()
144
144
db .AddSuperUser (ed , "testuser" , "127.0.0.1" , "password" )
145
145
db .AddSuperUser (ed , "localhost_user" , "localhost" , "password" )
146
146
db .Persist (ctx , ed )
147
147
ed .Close ()
148
-
148
+
149
149
rd := db .Reader ()
150
150
defer rd .Close ()
151
-
151
+
152
152
tests := []struct {
153
153
name string
154
154
username string
@@ -162,16 +162,16 @@ func TestGetUserWithWildcardAuthentication(t *testing.T) {
162
162
{"Localhost user - ::1" , "localhost_user" , "::1" , "localhost_user" , true },
163
163
{"Non-existent user" , "nonexistent" , "127.0.0.1" , "" , false },
164
164
}
165
-
165
+
166
166
for _ , tt := range tests {
167
167
t .Run (tt .name , func (t * testing.T ) {
168
168
user := db .GetUser (rd , tt .username , tt .host , false )
169
-
169
+
170
170
if ! tt .shouldFind {
171
171
require .Nil (t , user , "Expected no user to be found for %s@%s" , tt .username , tt .host )
172
172
return
173
173
}
174
-
174
+
175
175
require .NotNil (t , user , "Expected user to be found for %s@%s" , tt .username , tt .host )
176
176
require .Equal (t , tt .expectedUser , user .User , "Expected username %s, got %s" , tt .expectedUser , user .User )
177
177
})
0 commit comments