MCPcopy Create free account
hub / github.com/rilldata/rill / TestPolicyMetricsSQLAPI

Function TestPolicyMetricsSQLAPI

runtime/resolvers/metrics_sql_test.go:93–129  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

91}
92
93func TestPolicyMetricsSQLAPI(t *testing.T) {
94 rt, instanceID := testruntime.NewInstanceForProject(t, "ad_bids")
95
96 api, err := rt.APIForName(context.Background(), instanceID, "mv_sql_policy_api")
97 require.NoError(t, err)
98
99 _, _, err = rt.Resolve(context.Background(), &runtime.ResolveOptions{
100 InstanceID: instanceID,
101 Resolver: api.Spec.Resolver,
102 ResolverProperties: api.Spec.ResolverProperties.AsMap(),
103 Args: nil,
104 Claims: &runtime.SecurityClaims{UserAttributes: map[string]any{"domain": "yahoo.com", "email": "user@yahoo.com"}},
105 })
106 require.Error(t, err)
107
108 api, err = rt.APIForName(context.Background(), instanceID, "mv_sql_policy_api")
109 require.NoError(t, err)
110
111 res, _, err := rt.Resolve(context.Background(), &runtime.ResolveOptions{
112 InstanceID: instanceID,
113 Resolver: api.Spec.Resolver,
114 ResolverProperties: api.Spec.ResolverProperties.AsMap(),
115 Args: nil,
116 Claims: &runtime.SecurityClaims{UserAttributes: map[string]any{"domain": "msn.com", "email": "user@msn.com"}},
117 })
118 require.NoError(t, err)
119 defer res.Close()
120
121 require.NotNil(t, res)
122 var resp []map[string]interface{}
123 require.NoError(t, json.Unmarshal(must(res.MarshalJSON()), &resp))
124 require.Equal(t, 1, len(resp))
125 require.Equal(t, 11.0, resp[0]["total volume"])
126 require.Equal(t, 3.0, resp[0]["total impressions"])
127 require.Equal(t, "msn.com", resp[0]["domain"])
128 require.Equal(t, nil, resp[0]["publisher"])
129}
130
131func TestMetricsSQLWithAdditionalWhere(t *testing.T) {
132 rt, instanceID := testruntime.NewInstanceForProject(t, "ad_bids")

Callers

nothing calls this directly

Calls 8

NewInstanceForProjectFunction · 0.92
APIForNameMethod · 0.80
mustFunction · 0.70
ResolveMethod · 0.65
CloseMethod · 0.65
MarshalJSONMethod · 0.65
AsMapMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected