(t *testing.T)
| 2612 | } |
| 2613 | |
| 2614 | func TestWorkspaceQuotas(t *testing.T) { |
| 2615 | t.Parallel() |
| 2616 | orgMemberIDs := func(o database.OrganizationMember) uuid.UUID { |
| 2617 | return o.UserID |
| 2618 | } |
| 2619 | groupMemberIDs := func(m database.GroupMember) uuid.UUID { |
| 2620 | return m.UserID |
| 2621 | } |
| 2622 | |
| 2623 | t.Run("CorruptedEveryone", func(t *testing.T) { |
| 2624 | t.Parallel() |
| 2625 | |
| 2626 | ctx := testutil.Context(t, testutil.WaitLong) |
| 2627 | |
| 2628 | db, _ := dbtestutil.NewDB(t) |
| 2629 | // Create an extra org as a distraction |
| 2630 | distract := dbgen.Organization(t, db, database.Organization{}) |
| 2631 | _, err := db.InsertAllUsersGroup(ctx, distract.ID) |
| 2632 | require.NoError(t, err) |
| 2633 | |
| 2634 | _, err = db.UpdateGroupByID(ctx, database.UpdateGroupByIDParams{ |
| 2635 | QuotaAllowance: 15, |
| 2636 | ID: distract.ID, |
| 2637 | }) |
| 2638 | require.NoError(t, err) |
| 2639 | |
| 2640 | // Create an org with 2 users |
| 2641 | org := dbgen.Organization(t, db, database.Organization{}) |
| 2642 | |
| 2643 | everyoneGroup, err := db.InsertAllUsersGroup(ctx, org.ID) |
| 2644 | require.NoError(t, err) |
| 2645 | |
| 2646 | // Add a quota to the everyone group |
| 2647 | _, err = db.UpdateGroupByID(ctx, database.UpdateGroupByIDParams{ |
| 2648 | QuotaAllowance: 50, |
| 2649 | ID: everyoneGroup.ID, |
| 2650 | }) |
| 2651 | require.NoError(t, err) |
| 2652 | |
| 2653 | // Add people to the org |
| 2654 | one := dbgen.User(t, db, database.User{}) |
| 2655 | two := dbgen.User(t, db, database.User{}) |
| 2656 | memOne := dbgen.OrganizationMember(t, db, database.OrganizationMember{ |
| 2657 | OrganizationID: org.ID, |
| 2658 | UserID: one.ID, |
| 2659 | }) |
| 2660 | memTwo := dbgen.OrganizationMember(t, db, database.OrganizationMember{ |
| 2661 | OrganizationID: org.ID, |
| 2662 | UserID: two.ID, |
| 2663 | }) |
| 2664 | |
| 2665 | // Fetch the 'Everyone' group members |
| 2666 | everyoneMembers, err := db.GetGroupMembersByGroupID(ctx, database.GetGroupMembersByGroupIDParams{ |
| 2667 | GroupID: everyoneGroup.ID, |
| 2668 | IncludeSystem: false, |
| 2669 | }) |
| 2670 | require.NoError(t, err) |
| 2671 |
nothing calls this directly
no test coverage detected