MCPcopy Create free account
hub / github.com/bytebase/bytebase / TestPartialEval

Function TestPartialEval

backend/common/cel_test.go:13–74  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestPartialEval(t *testing.T) {
14 a := require.New(t)
15
16 time20240201, err := time.Parse(time.RFC3339, "2024-02-01T00:00:00Z")
17 a.NoError(err)
18
19 testCases := []struct {
20 name string
21 expr string
22 input map[string]any
23 want bool
24 }{
25 {
26 name: "simple false 1",
27 expr: "request.time < timestamp(\"2024-02-01T00:00:00Z\")",
28 input: map[string]any{"request.time": time20240201},
29 want: false,
30 },
31 {
32 name: "simple false 2",
33 expr: "request.time < timestamp(\"2024-02-01T00:00:00Z\")",
34 input: map[string]any{"request.time": time20240201.AddDate(0, 0, 1)},
35 want: false,
36 },
37 {
38 name: "simple true 1",
39 expr: "request.time < timestamp(\"2024-02-01T00:00:00Z\")",
40 input: map[string]any{"request.time": time20240201.AddDate(0, 0, -1)},
41 want: true,
42 },
43 {
44 name: "partial false 1",
45 expr: "request.time < timestamp(\"2024-02-01T00:00:00Z\")",
46 input: map[string]any{"request.time": time20240201},
47 want: false,
48 },
49 {
50 name: "partial false 2",
51 expr: "request.time < timestamp(\"2024-02-01T00:00:00Z\") && (resource.database in [\"instances/dbdbdb/databases/db_106\",\"instances/dbdbdb/databases/db_108\",\"instances/dbdbdb/databases/db_103\"])",
52 input: map[string]any{"request.time": time20240201},
53 want: false,
54 },
55 {
56 name: "partial true 1",
57 expr: "request.time < timestamp(\"2024-02-01T00:00:00Z\")",
58 input: map[string]any{"request.time": time20240201.AddDate(0, 0, -1)},
59 want: true,
60 },
61 {
62 name: "partial true 2",
63 expr: "request.time < timestamp(\"2024-02-01T00:00:00Z\") && (resource.database in [\"instances/dbdbdb/databases/db_106\",\"instances/dbdbdb/databases/db_108\",\"instances/dbdbdb/databases/db_103\"])",
64 input: map[string]any{"request.time": time20240201.AddDate(0, 0, -1)},
65 want: true,
66 },
67 }
68
69 for _, tc := range testCases {
70 res, err := doEvalBindingCondition(tc.expr, tc.input)

Callers

nothing calls this directly

Calls 2

doEvalBindingConditionFunction · 0.85
EqualMethod · 0.65

Tested by

no test coverage detected