(t *testing.T)
| 1236 | } |
| 1237 | |
| 1238 | func TestGetAuthorizedChats(t *testing.T) { |
| 1239 | t.Parallel() |
| 1240 | if testing.Short() { |
| 1241 | t.SkipNow() |
| 1242 | } |
| 1243 | |
| 1244 | sqlDB := testSQLDB(t) |
| 1245 | err := migrations.Up(sqlDB) |
| 1246 | require.NoError(t, err) |
| 1247 | db := database.New(sqlDB) |
| 1248 | authorizer := rbac.NewStrictCachingAuthorizer(prometheus.NewRegistry()) |
| 1249 | |
| 1250 | // Create users with different roles. |
| 1251 | owner := dbgen.User(t, db, database.User{ |
| 1252 | RBACRoles: []string{rbac.RoleOwner().String()}, |
| 1253 | }) |
| 1254 | member := dbgen.User(t, db, database.User{}) |
| 1255 | secondMember := dbgen.User(t, db, database.User{}) |
| 1256 | |
| 1257 | org := dbgen.Organization(t, db, database.Organization{}) |
| 1258 | dbgen.OrganizationMember(t, db, database.OrganizationMember{UserID: owner.ID, OrganizationID: org.ID}) |
| 1259 | dbgen.OrganizationMember(t, db, database.OrganizationMember{UserID: member.ID, OrganizationID: org.ID, Roles: []string{rbac.RoleAgentsAccess()}}) |
| 1260 | dbgen.OrganizationMember(t, db, database.OrganizationMember{UserID: secondMember.ID, OrganizationID: org.ID, Roles: []string{rbac.RoleAgentsAccess()}}) |
| 1261 | |
| 1262 | // Create FK dependencies: a chat provider and model config. |
| 1263 | _ = dbgen.ChatProvider(t, db, database.ChatProvider{ |
| 1264 | Provider: "openai", |
| 1265 | DisplayName: "OpenAI", |
| 1266 | }) |
| 1267 | modelCfg := dbgen.ChatModelConfig(t, db, database.ChatModelConfig{ |
| 1268 | Provider: "openai", |
| 1269 | Model: "test-model", |
| 1270 | CreatedBy: uuid.NullUUID{UUID: owner.ID, Valid: true}, |
| 1271 | UpdatedBy: uuid.NullUUID{UUID: owner.ID, Valid: true}, |
| 1272 | IsDefault: true, |
| 1273 | CompressionThreshold: 80, |
| 1274 | }) |
| 1275 | |
| 1276 | // Create 3 chats owned by owner. |
| 1277 | for i := range 3 { |
| 1278 | dbgen.Chat(t, db, database.Chat{ |
| 1279 | OrganizationID: org.ID, |
| 1280 | OwnerID: owner.ID, |
| 1281 | LastModelConfigID: modelCfg.ID, |
| 1282 | Title: fmt.Sprintf("owner chat %d", i+1), |
| 1283 | }) |
| 1284 | } |
| 1285 | |
| 1286 | // Create 2 chats owned by member. |
| 1287 | for i := range 2 { |
| 1288 | dbgen.Chat(t, db, database.Chat{ |
| 1289 | OrganizationID: org.ID, |
| 1290 | OwnerID: member.ID, |
| 1291 | LastModelConfigID: modelCfg.ID, |
| 1292 | Title: fmt.Sprintf("member chat %d", i+1), |
| 1293 | }) |
| 1294 | } |
| 1295 |
nothing calls this directly
no test coverage detected