(t *testing.T)
| 3846 | } |
| 3847 | |
| 3848 | func TestGetRoleIDs(t *testing.T) { |
| 3849 | base.SetUpTestLogging(t, base.LevelDebug, base.KeyCache, base.KeyChanges) |
| 3850 | |
| 3851 | db, ctx := setupTestDB(t) |
| 3852 | defer db.Close(ctx) |
| 3853 | |
| 3854 | authenticator := db.Authenticator(ctx) |
| 3855 | |
| 3856 | rolename1 := uuid.NewString() |
| 3857 | rolename2 := uuid.NewString() |
| 3858 | username := uuid.NewString() |
| 3859 | |
| 3860 | user1, err := authenticator.NewUser(username, "letmein", nil) |
| 3861 | require.NoError(t, err) |
| 3862 | user1.SetExplicitRoles(channels.TimedSet{rolename1: channels.NewVbSimpleSequence(1), rolename2: channels.NewVbSimpleSequence(1)}, 1) |
| 3863 | require.NoError(t, authenticator.Save(user1)) |
| 3864 | |
| 3865 | role1, err := authenticator.NewRole(rolename1, nil) |
| 3866 | require.NoError(t, err) |
| 3867 | require.NoError(t, authenticator.Save(role1)) |
| 3868 | |
| 3869 | role2, err := authenticator.NewRole(rolename2, nil) |
| 3870 | require.NoError(t, err) |
| 3871 | require.NoError(t, authenticator.Save(role2)) |
| 3872 | |
| 3873 | err = db.DeleteRole(ctx, role2.Name(), false) |
| 3874 | require.NoError(t, err) |
| 3875 | roleGet, err := authenticator.GetRoleIncDeleted(role2.Name()) |
| 3876 | require.NoError(t, err) |
| 3877 | assert.True(t, roleGet.IsDeleted()) |
| 3878 | |
| 3879 | t.Log("user1:", user1.Name()) |
| 3880 | t.Log("role1:", role1.Name()) |
| 3881 | t.Log("role2:", role2.Name()) |
| 3882 | |
| 3883 | // assert allprincipals still returns users and deleted roles |
| 3884 | users, roles, err := db.AllPrincipalIDs(ctx) |
| 3885 | require.NoError(t, err) |
| 3886 | assert.ElementsMatch(t, []string{user1.Name()}, users) |
| 3887 | assert.ElementsMatch(t, []string{role1.Name(), role2.Name()}, roles) |
| 3888 | |
| 3889 | roles, err = db.GetRoleIDs(ctx, db.UseViews(), false) |
| 3890 | require.NoError(t, err) |
| 3891 | assert.ElementsMatch(t, []string{role1.Name()}, roles) |
| 3892 | } |
| 3893 | |
| 3894 | func Test_updateAllPrincipalsSequences(t *testing.T) { |
| 3895 | db, ctx := setupTestDB(t) |
nothing calls this directly
no test coverage detected