MCPcopy Index your code
hub / github.com/pocketbase/pocketbase / TestRandomStringByRegex

Function TestRandomStringByRegex

tools/security/random_by_regex_test.go:13–75  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestRandomStringByRegex(t *testing.T) {
14 generated := []string{}
15
16 scenarios := []struct {
17 pattern string
18 flags []syntax.Flags
19 expectError bool
20 }{
21 {``, nil, true},
22 {`test`, nil, false},
23 {`\d+`, []syntax.Flags{syntax.POSIX}, true},
24 {`\d+`, nil, false},
25 {`\d*`, nil, false},
26 {`\d{1,20}`, nil, false},
27 {`\d{5}`, nil, false},
28 {`\d{0,}-abc`, nil, false},
29 {`[a-zA-Z_]*`, nil, false},
30 {`[^a-zA-Z]{5,30}`, nil, false},
31 {`\w+_abc`, nil, false},
32 {`[2-9]{10}-\w+`, nil, false},
33 {`(a|b|c)`, nil, false},
34 }
35
36 for i, s := range scenarios {
37 t.Run(fmt.Sprintf("%d_%q", i, s.pattern), func(t *testing.T) {
38 var run func(int)
39 run = func(attempt int) {
40 str, err := security.RandomStringByRegex(s.pattern, s.flags...)
41
42 hasErr := err != nil
43 if hasErr != s.expectError {
44 t.Fatalf("Expected hasErr %v, got %v (%v)", s.expectError, hasErr, err)
45 }
46
47 if hasErr {
48 return
49 }
50
51 r, err := regexp.Compile(s.pattern)
52 if err != nil {
53 t.Fatal(err)
54 }
55 if !r.Match([]byte(str)) {
56 t.Fatalf("Expected %q to match pattern %v", str, s.pattern)
57 }
58
59 if slices.Contains(generated, str) {
60 if attempt > 3 {
61 t.Fatalf("The generated string %q already exists in\n%v", str, generated)
62 }
63
64 // rerun
65 run(attempt + 1)
66 return
67 }
68
69 generated = append(generated, str)
70 }

Callers

nothing calls this directly

Calls 2

RandomStringByRegexFunction · 0.92
RunMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…