(t *testing.T)
| 91 | } |
| 92 | |
| 93 | func 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 | |
| 131 | func TestMetricsSQLWithAdditionalWhere(t *testing.T) { |
| 132 | rt, instanceID := testruntime.NewInstanceForProject(t, "ad_bids") |
nothing calls this directly
no test coverage detected