Skip to content

User typeahead enabled for non-admin project managers #1627

User typeahead enabled for non-admin project managers

User typeahead enabled for non-admin project managers #1627

GitHub Actions / C# Unit Tests failed Nov 19, 2024 in 0s

2 fail, 95 pass in 6s

97 tests  +3   95 ✅ +1   6s ⏱️ -1s
15 suites ±0    0 💤 ±0 
 1 files   ±0    2 ❌ +2 

Results for commit e037ab9. ± Comparison against earlier commit af79417.

Annotations

Check warning on line 0 in Testing.LexCore.Services.UserServiceTest

See this annotation in the file changed.

@github-actions github-actions / C# Unit Tests

ManagerOfOneProjectAndMemberOfAnotherPublicProjectCanSeeUsersInBoth (Testing.LexCore.Services.UserServiceTest) failed

./test-results/Testing.results.xml [took 0s]
Raw output
Expected property users[2].Name to be "Little John" with a length of 11, but "Sheriff of Nottingham" has a length of 21, differs near "She" (index 0).
Expected property users[2].Email to be "[email protected]" with a length of 23, but "[email protected]" has a length of 33, differs near "she" (index 0).
Expected property users[2].LastActive to be <2024-11-19 05:37:13.0524775 +0h>, but found <2024-11-19 05:37:13.0526363 +0h>.
Expected property users[2].Projects[0].UserId to be {f8de5c9e-fae8-4a4d-abe4-b2e4cf83fe64}, but found {c822ab4f-3a0f-4134-8385-7030508e63bf}.
Expected property users[2].Projects[0].ProjectId to be {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, but found {901395c3-0f2b-4189-8443-44a4d783b491}.
Expected property users[2].Projects[0].Role to equal ProjectRole.Editor {value: 3} by value, but found ProjectRole.Manager {value: 2}.
Expected property users[2].Projects[0].User to be 
LexCore.Entities.User
{
    CanCreateProjects = True, 
    CreatedBy = <null>, 
    CreatedById = <null>, 
    CreatedDate = <2024-11-19 05:37:13.0524777 +0h>, 
    Email = "[email protected]", 
    EmailVerified = True, 
    GoogleId = <null>, 
    Id = {f8de5c9e-fae8-4a4d-abe4-b2e4cf83fe64}, 
    IsAdmin = False, 
    LastActive = <2024-11-19 05:37:13.0524775 +0h>, 
    LocalizationCode = "en", 
    Locked = False, 
    Name = "Little John", 
    {
    Organizations = LexCore.Entities.OrgMember
        {
            CreatedDate = <2024-11-19 05:37:13.0532986 +0h>, 
            Id = {167551d3-23e5-44ad-b074-fbe36a2f84f0}, 
            OrgId = {43559dde-c122-48c4-8e94-1092aa61f56f}, 
            Organization = LexCore.Entities.Organization
            {
                CreatedDate = <2024-11-19 05:37:13.0532938 +0h>, 
                Id = {43559dde-c122-48c4-8e94-1092aa61f56f}, 
                MemberCount = 0, 
                {
                Members = LexCore.Entities.OrgMember
                    {
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        OrgId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organization = {Cyclic reference to type LexCore.Entities.Organization detected}, 
                        Role = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        User = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UserId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                                    }, {Cyclic reference to type LexCore.Entities.OrgMember detected}
                }, 
                Name = "122499f7", 
                ProjectCount = 0, 
                Projects = {empty}, 
                UpdatedDate = <2024-11-19 05:37:13.0532938 +0h>
            }, 
            Role = OrgRole.User {value: 2}, 
            UpdatedDate = <2024-11-19 05:37:13.0532987 +0h>, 
            User = {Cyclic reference to type LexCore.Entities.User detected}, 
            UserId = {f8de5c9e-fae8-4a4d-abe4-b2e4cf83fe64}
        }
    }, 
    PasswordHash = "", 
    PasswordStrength = <null>, 
    Projects = LexCore.Entities.ProjectUsers
        {
            CreatedDate = <2024-11-19 05:37:13.0530644 +0h>, 
            Id = {1e81af9e-a80f-4057-8322-43edbc883753}, 
            Project = LexCore.Entities.Project
            {
                Code = "create-project-cfd4d45d-dev-flex", 
                CreatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
                DeletedDate = <null>, 
                Description = <null>, 
                FlexProjectMetadata = <null>, 
                Id = {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, 
                IsConfidential = True, 
                LastCommit = <null>, 
                MigratedDate = <null>, 
                Name = "CreateProject", 
                Organizations = {empty}, 
                ParentId = <null>, 
                ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
                RepoSizeInKb = <null>, 
                ResetStatus = ResetStatus.None {value: 0}, 
                RetentionPolicy = RetentionPolicy.Test {value: 2}, 
                Type = ProjectType.FLEx {value: 1}, 
                UpdatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
                UserCount = 0, 
                Users = LexCore.Entities.ProjectUsers
                    {
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Project = {Cyclic reference to type LexCore.Entities.Project detected}, 

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                        ProjectId = , but it contains a cyclic reference.
Expected property users[2].Projects[0].Project.Code to be "create-project-cfd4d45d-dev-flex", but "create-project-901395c3-dev-flex" differs near "901" (index 15).
Expected property users[2].Projects[0].Project.IsConfidential to be True, but found False.
Expected property users[2].Projects[0].Project.Users to be a collection with 4 item(s), but LexCore.Entities.ProjectUsers
    {
        CreatedDate = <2024-11-19 05:37:13.0527754 +0h>, 
        Id = {27248bac-b466-4040-988c-d97974ab5218}, 
        Project = LexCore.Entities.Project
        {
            Code = "create-project-901395c3-dev-flex", 
            CreatedDate = <2024-11-19 05:37:13.0527707 +0h>, 
            DeletedDate = <null>, 
            Description = <null>, 
            FlexProjectMetadata = <null>, 
            Id = {901395c3-0f2b-4189-8443-44a4d783b491}, 
            IsConfidential = 
            False, 
            LastCommit = <null>, 
            MigratedDate = <null>, 
            Name = "CreateProject", 
            Organizations = {empty}, 
            ParentId = <null>, 
            ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
            RepoSizeInKb = <null>, 
            ResetStatus = ResetStatus.None {value: 0}, 
            RetentionPolicy = RetentionPolicy.Test {value: 2}, 
            Type = ProjectType.FLEx {value: 1}, 
            UpdatedDate = <2024-11-19 05:37:13.0527708 +0h>, 
            UserCount = 0, 
            Users = {Cyclic reference to type LexCore.Entities.ProjectUsers detected}, 
                LexCore.Entities.ProjectUsers
                {
                    CreatedDate = <2024-11-19 05:37:13.0527779 +0h>, 
                    Id = {ce41c7d3-26f9-443c-aa75-b5f1785738d9}, 
                    Project = {Cyclic reference to type LexCore.Entities.Project detected}, 
                    ProjectId = {901395c3-0f2b-4189-8443-44a4d783b491}, 
                    Role = ProjectRole.Editor {value: 3}, 
                    UpdatedDate = <2024-11-19 05:37:13.0527779 +0h>, 
                    User = LexCore.Entities.User
                    {
                        CanCreateProjects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedBy = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedById = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Email = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        EmailVerified = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        GoogleId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        IsAdmin = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LastActive = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LocalizationCode = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Locked = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Name = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organizations = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordHash = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordStrength = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Projects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Salt = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Username = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UsersICreated = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    }, 
                    UserId = {dbc606c5-e812-4333-a1be-0831cb6de17f}

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                }LexCore.Entities.ProjectUsers
contains 1 item(s) less than
LexCore.Entities.ProjectUsers
    {
        CreatedDate = <2024-11-19 05:37:13.0530631 +0h>, 
        Id = {27ff2594-2262-4e86-a729-ddd6bfadbd84}, 
        Project = LexCore.Entities.Project
        {
            Code = "create-project-cfd4d45d-dev-flex", 
            CreatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
            DeletedDate = <null>, 
            Description = <null>, 
            FlexProjectMetadata = <null>, 
            Id = {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, 
            IsConfidential = 
            True, 
            LastCommit = <null>, 
            MigratedDate = <null>, 
            Name = "CreateProject", 
            Organizations = {empty}, 
            ParentId = <null>, 
            ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
            RepoSizeInKb = <null>, 
            ResetStatus = ResetStatus.None {value: 0}, 
            RetentionPolicy = RetentionPolicy.Test {value: 2}, 
            Type = ProjectType.FLEx {value: 1}, 
            UpdatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
            UserCount = 0, 
            Users = {Cyclic reference to type LexCore.Entities.ProjectUsers detected}, 
                LexCore.Entities.ProjectUsers
                {
                    CreatedDate = <2024-11-19 05:37:13.0530636 +0h>, 
                    Id = {640745c2-e42f-472e-a6aa-6dab9fb04984}, 
                    Project = {Cyclic reference to type LexCore.Entities.Project detected}, 
                    ProjectId = {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, 
                    Role = ProjectRole.Manager {value: 2}, 
                    UpdatedDate = <2024-11-19 05:37:13.0530637 +0h>, 
                    User = LexCore.Entities.User
                    {
                        CanCreateProjects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedBy = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedById = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Email = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        EmailVerified = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        GoogleId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        IsAdmin = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LastActive = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LocalizationCode = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Locked = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Name = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organizations = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordHash = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordStrength = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Projects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Salt = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Username = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UsersICreated = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    }, 
                    UserId = {dbc606c5-e812-4333-a1be-0831cb6de17f}

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                }LexCore.Entities.ProjectUsers.
Expected property users[2].Projects[0].Project.Id to be {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, but found {901395c3-0f2b-4189-8443-44a4d783b491}.
Expected property users[2].Projects[0].Project.CreatedDate to be <2024-11-19 05:37:13.0530606 +0h>, but found <2024-11-19 05:37:13.0527707 +0h>.
Expected property users[2].Projects[0].Project.UpdatedDate to be <2024-11-19 05:37:13.0530606 +0h>, but found <2024-11-19 05:37:13.0527708 +0h>.
Expected property users[2].Projects[0].Id to be {1e81af9e-a80f-4057-8322-43edbc883753}, but found {27248bac-b466-4040-988c-d97974ab5218}.
Expected property users[2].Projects[0].CreatedDate to be <2024-11-19 05:37:13.0530644 +0h>, but found <2024-11-19 05:37:13.0527754 +0h>.
Expected property users[2].Projects[0].UpdatedDate to be <2024-11-19 05:37:13.0530644 +0h>, but found <2024-11-19 05:37:13.0527755 +0h>.
Expected property users[2].Organizations[0].UserId to be {f8de5c9e-fae8-4a4d-abe4-b2e4cf83fe64}, but found {c822ab4f-3a0f-4134-8385-7030508e63bf}.
Expected property users[2].Organizations[0].OrgId to be {43559dde-c122-48c4-8e94-1092aa61f56f}, but found {28e6e36e-d740-41f7-b555-595983abd69b}.
Expected property users[2].Organizations[0].Role to equal OrgRole.User {value: 2} by value, but found OrgRole.Admin {value: 1}.
Expected property users[2].Organizations[0].User to be 
LexCore.Entities.User
{
    CanCreateProjects = True, 
    CreatedBy = <null>, 
    CreatedById = <null>, 
    CreatedDate = <2024-11-19 05:37:13.0524777 +0h>, 
    Email = "[email protected]", 
    EmailVerified = True, 
    GoogleId = <null>, 
    Id = {f8de5c9e-fae8-4a4d-abe4-b2e4cf83fe64}, 
    IsAdmin = False, 
    LastActive = <2024-11-19 05:37:13.0524775 +0h>, 
    LocalizationCode = "en", 
    Locked = False, 
    Name = "Little John", 
    {
    Organizations = LexCore.Entities.OrgMember
        {
            CreatedDate = <2024-11-19 05:37:13.0532986 +0h>, 
            Id = {167551d3-23e5-44ad-b074-fbe36a2f84f0}, 
            OrgId = {43559dde-c122-48c4-8e94-1092aa61f56f}, 
            Organization = LexCore.Entities.Organization
            {
                CreatedDate = <2024-11-19 05:37:13.0532938 +0h>, 
                Id = {43559dde-c122-48c4-8e94-1092aa61f56f}, 
                MemberCount = 0, 
                {
                Members = LexCore.Entities.OrgMember
                    {
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        OrgId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organization = {Cyclic reference to type LexCore.Entities.Organization detected}, 
                        Role = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        User = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UserId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                                    }, {Cyclic reference to type LexCore.Entities.OrgMember detected}
                }, 
                Name = "122499f7", 
                ProjectCount = 0, 
                Projects = {empty}, 
                UpdatedDate = <2024-11-19 05:37:13.0532938 +0h>
            }, 
            Role = OrgRole.User {value: 2}, 
            UpdatedDate = <2024-11-19 05:37:13.0532987 +0h>, 
            User = {Cyclic reference to type LexCore.Entities.User detected}, 
            UserId = {f8de5c9e-fae8-4a4d-abe4-b2e4cf83fe64}
        }
    }, 
    PasswordHash = "", 
    PasswordStrength = <null>, 
    Projects = LexCore.Entities.ProjectUsers
        {
            CreatedDate = <2024-11-19 05:37:13.0530644 +0h>, 
            Id = {1e81af9e-a80f-4057-8322-43edbc883753}, 
            Project = LexCore.Entities.Project
            {
                Code = "create-project-cfd4d45d-dev-flex", 
                CreatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
                DeletedDate = <null>, 
                Description = <null>, 
                FlexProjectMetadata = <null>, 
                Id = {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, 
                IsConfidential = True, 
                LastCommit = <null>, 
                MigratedDate = <null>, 
                Name = "CreateProject", 
                Organizations = {empty}, 
                ParentId = <null>, 
                ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
                RepoSizeInKb = <null>, 
                ResetStatus = ResetStatus.None {value: 0}, 
                RetentionPolicy = RetentionPolicy.Test {value: 2}, 
                Type = ProjectType.FLEx {value: 1}, 
                UpdatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
                UserCount = 0, 
                Users = LexCore.Entities.ProjectUsers
                    {
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Project = {Cyclic reference to type LexCore.Entities.Project detected}, 

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                        ProjectId = , but it contains a cyclic reference.
Expected property users[2].Organizations[0].Organization.Name to be "122499f7", but "4b38cf5a" differs near "4b3" (index 0).
Expected property users[2].Organizations[0].Organization.Members[0].UserId to be {387ffd44-798f-436c-bdd6-736e167e2101}, but found {c822ab4f-3a0f-4134-8385-7030508e63bf}.
Expected property users[2].Organizations[0].Organization.Members[0].OrgId to be {43559dde-c122-48c4-8e94-1092aa61f56f}, but found {28e6e36e-d740-41f7-b555-595983abd69b}.
Expected property users[2].Organizations[0].Organization.Members[0].User.Name to be "Robin Hood" with a length of 10, but "Sheriff of Nottingham" has a length of 21, differs near "She" (index 0).
Expected property users[2].Organizations[0].Organization.Members[0].User.Email to be "[email protected]" with a length of 22, but "[email protected]" has a length of 33, differs near "she" (index 0).
Expected property users[2].Organizations[0].Organization.Members[0].User.LastActive to be <2024-11-19 05:37:13.0516988 +0h>, but found <2024-11-19 05:37:13.0526363 +0h>.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].UserId to be {387ffd44-798f-436c-bdd6-736e167e2101}, but found {c822ab4f-3a0f-4134-8385-7030508e63bf}.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].ProjectId to be {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, but found {901395c3-0f2b-4189-8443-44a4d783b491}.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].User to be 
LexCore.Entities.User
{
    CanCreateProjects = True, 
    CreatedBy = <null>, 
    CreatedById = <null>, 
    CreatedDate = <2024-11-19 05:37:13.0516995 +0h>, 
    Email = "[email protected]", 
    EmailVerified = True, 
    GoogleId = <null>, 
    Id = {387ffd44-798f-436c-bdd6-736e167e2101}, 
    IsAdmin = False, 
    LastActive = <2024-11-19 05:37:13.0516988 +0h>, 
    LocalizationCode = "en", 
    Locked = False, 
    Name = "Robin Hood", 
    {
    Organizations = LexCore.Entities.OrgMember
        {
            CreatedDate = <2024-11-19 05:37:13.0532962 +0h>, 
            Id = {e7b29037-914c-49fa-a1c7-32e6c9caa590}, 
            OrgId = {43559dde-c122-48c4-8e94-1092aa61f56f}, 
            Organization = LexCore.Entities.Organization
            {
                CreatedDate = <2024-11-19 05:37:13.0532938 +0h>, 
                Id = {43559dde-c122-48c4-8e94-1092aa61f56f}, 
                MemberCount = 0, 
                {
                Members = {Cyclic reference to type LexCore.Entities.OrgMember detected}, 
                    LexCore.Entities.OrgMember
                    {
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        OrgId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organization = {Cyclic reference to type LexCore.Entities.Organization detected}, 
                        Role = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        User = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UserId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                                    }
                }, 
                Name = "122499f7", 
                ProjectCount = 0, 
                Projects = {empty}, 
                UpdatedDate = <2024-11-19 05:37:13.0532938 +0h>
            }, 
            Role = OrgRole.Admin {value: 1}, 
            UpdatedDate = <2024-11-19 05:37:13.0532963 +0h>, 
            User = {Cyclic reference to type LexCore.Entities.User detected}, 
            UserId = {387ffd44-798f-436c-bdd6-736e167e2101}
        }
    }, 
    PasswordHash = "", 
    PasswordStrength = <null>, 
    Projects = LexCore.Entities.ProjectUsers
        {
            CreatedDate = <2024-11-19 05:37:13.0530631 +0h>, 
            Id = {27ff2594-2262-4e86-a729-ddd6bfadbd84}, 
            Project = LexCore.Entities.Project
            {
                Code = "create-project-cfd4d45d-dev-flex", 
                CreatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
                DeletedDate = <null>, 
                Description = <null>, 
                FlexProjectMetadata = <null>, 
                Id = {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, 
                IsConfidential = True, 
                LastCommit = <null>, 
                MigratedDate = <null>, 
                Name = "CreateProject", 
                Organizations = {empty}, 
                ParentId = <null>, 
                ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
                RepoSizeInKb = <null>, 
                ResetStatus = ResetStatus.None {value: 0}, 
                RetentionPolicy = RetentionPolicy.Test {value: 2}, 
                Type = ProjectType.FLEx {value: 1}, 
                UpdatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
                UserCount = 0, 
                Users = {Cyclic reference to type LexCore.Entities.ProjectUsers detected}LexCore.Entities.ProjectUsers
                    {
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Project = {Cyclic reference to type LexCore.Entities.Project detected}, 

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                        ProjectId = , but it contains a cyclic reference.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].Project.Code to be "create-project-cfd4d45d-dev-flex", but "create-project-901395c3-dev-flex" differs near "901" (index 15).
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].Project.IsConfidential to be True, but found False.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].Project.Users to be a collection with 4 item(s), but LexCore.Entities.ProjectUsers
    {
        CreatedDate = <2024-11-19 05:37:13.0527754 +0h>, 
        Id = {27248bac-b466-4040-988c-d97974ab5218}, 
        Project = LexCore.Entities.Project
        {
            Code = "create-project-901395c3-dev-flex", 
            CreatedDate = <2024-11-19 05:37:13.0527707 +0h>, 
            DeletedDate = <null>, 
            Description = <null>, 
            FlexProjectMetadata = <null>, 
            Id = {901395c3-0f2b-4189-8443-44a4d783b491}, 
            IsConfidential = 
            False, 
            LastCommit = <null>, 
            MigratedDate = <null>, 
            Name = "CreateProject", 
            Organizations = {empty}, 
            ParentId = <null>, 
            ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
            RepoSizeInKb = <null>, 
            ResetStatus = ResetStatus.None {value: 0}, 
            RetentionPolicy = RetentionPolicy.Test {value: 2}, 
            Type = ProjectType.FLEx {value: 1}, 
            UpdatedDate = <2024-11-19 05:37:13.0527708 +0h>, 
            UserCount = 0, 
            Users = {Cyclic reference to type LexCore.Entities.ProjectUsers detected}, 
                LexCore.Entities.ProjectUsers
                {
                    CreatedDate = <2024-11-19 05:37:13.0527779 +0h>, 
                    Id = {ce41c7d3-26f9-443c-aa75-b5f1785738d9}, 
                    Project = {Cyclic reference to type LexCore.Entities.Project detected}, 
                    ProjectId = {901395c3-0f2b-4189-8443-44a4d783b491}, 
                    Role = ProjectRole.Editor {value: 3}, 
                    UpdatedDate = <2024-11-19 05:37:13.0527779 +0h>, 
                    User = LexCore.Entities.User
                    {
                        CanCreateProjects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedBy = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedById = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Email = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        EmailVerified = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        GoogleId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        IsAdmin = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LastActive = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LocalizationCode = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Locked = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Name = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organizations = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordHash = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordStrength = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Projects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Salt = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Username = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UsersICreated = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    }, 
                    UserId = {dbc606c5-e812-4333-a1be-0831cb6de17f}

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                }LexCore.Entities.ProjectUsers
contains 1 item(s) less than
LexCore.Entities.ProjectUsers
    {
        CreatedDate = <2024-11-19 05:37:13.0530631 +0h>, 
        Id = {27ff2594-2262-4e86-a729-ddd6bfadbd84}, 
        Project = LexCore.Entities.Project
        {
            Code = "create-project-cfd4d45d-dev-flex", 
            CreatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
            DeletedDate = <null>, 
            Description = <null>, 
            FlexProjectMetadata = <null>, 
            Id = {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, 
            IsConfidential = 
            True, 
            LastCommit = <null>, 
            MigratedDate = <null>, 
            Name = "CreateProject", 
            Organizations = {empty}, 
            ParentId = <null>, 
            ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
            RepoSizeInKb = <null>, 
            ResetStatus = ResetStatus.None {value: 0}, 
            RetentionPolicy = RetentionPolicy.Test {value: 2}, 
            Type = ProjectType.FLEx {value: 1}, 
            UpdatedDate = <2024-11-19 05:37:13.0530606 +0h>, 
            UserCount = 0, 
            Users = {Cyclic reference to type LexCore.Entities.ProjectUsers detected}, 
                LexCore.Entities.ProjectUsers
                {
                    CreatedDate = <2024-11-19 05:37:13.0530636 +0h>, 
                    Id = {640745c2-e42f-472e-a6aa-6dab9fb04984}, 
                    Project = {Cyclic reference to type LexCore.Entities.Project detected}, 
                    ProjectId = {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, 
                    Role = ProjectRole.Manager {value: 2}, 
                    UpdatedDate = <2024-11-19 05:37:13.0530637 +0h>, 
                    User = LexCore.Entities.User
                    {
                        CanCreateProjects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedBy = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedById = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Email = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        EmailVerified = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        GoogleId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        IsAdmin = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LastActive = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LocalizationCode = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Locked = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Name = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organizations = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordHash = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordStrength = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Projects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Salt = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Username = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UsersICreated = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    }, 
                    UserId = {dbc606c5-e812-4333-a1be-0831cb6de17f}

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                }LexCore.Entities.ProjectUsers.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].Project.Id to be {cfd4d45d-8d3d-4697-bd97-657190ec6f59}, but found {901395c3-0f2b-4189-8443-44a4d783b491}.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].Project.CreatedDate to be <2024-11-19 05:37:13.0530606 +0h>, but found <2024-11-19 05:37:13.0527707 +0h>.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].Project.UpdatedDate to be <2024-11-19 05:37:13.0530606 +0h>, but found <2024-11-19 05:37:13.0527708 +0h>.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].Id to be {27ff2594-2262-4e86-a729-ddd6bfadbd84}, but found {27248bac-b466-4040-988c-d97974ab5218}.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].CreatedDate to be <2024-11-19 05:37:13.0530631 +0h>, but found <2024-11-19 05:37:13.0527754 +0h>.
Expected property users[2].Organizations[0].Organization.Members[0].User.Projects[0].UpdatedDate to be <2024-11-19 05:37:13.0530632 +0h>, but found <2024-11-19 05:37:13.0527755 +0h>.

With configuration:
- Use declared types and members
- Compare enums by value
- Compare tuples by their properties
- Compare anonymous types by their properties
- Compare records by their members
- Include non-browsable members
- Include all non-private properties
- Include all non-private fields
- Match member by name (or throw)
- Be strict about the order of items in byte arrays
- Without automatic conversion.
   at FluentAssertions.Execution.XUnit2TestFramework.Throw(String message)
   at FluentAssertions.Execution.TestFrameworkProvider.Throw(String message)
   at FluentAssertions.Execution.CollectingAssertionStrategy.ThrowIfAny(IDictionary`2 context)
   at FluentAssertions.Execution.AssertionScope.Dispose()
   at FluentAssertions.Equivalency.EquivalencyValidator.AssertEquality(Comparands comparands, EquivalencyValidationContext context)
   at FluentAssertions.Collections.GenericCollectionAssertions`3.BeEquivalentTo[TExpectation](IEnumerable`1 expectation, Func`2 config, String because, Object[] becauseArgs)
   at Testing.LexCore.Services.UserServiceTest.ManagerOfOneProjectAndMemberOfAnotherPublicProjectCanSeeUsersInBoth() in /home/runner/work/languageforge-lexbox/languageforge-lexbox/backend/Testing/LexCore/Services/UserServiceTest.cs:line 115
--- End of stack trace from previous location ---

Check warning on line 0 in Testing.LexCore.Services.UserServiceTest

See this annotation in the file changed.

@github-actions github-actions / C# Unit Tests

ManagerCanSeeAllUsersEvenInConfidentialProjects (Testing.LexCore.Services.UserServiceTest) failed

./test-results/Testing.results.xml [took 0s]
Raw output
Expected property users[0].Name to be "Robin Hood", but "Friar Tuck" differs near "Fri" (index 0).
Expected property users[0].Email to be "[email protected]", but "[email protected]" differs near "fri" (index 0).
Expected property users[0].LastActive to be <2024-11-19 05:37:13.1706105 +0h>, but found <2024-11-19 05:37:13.1715002 +0h>.
Expected property users[0].Projects to be a collection with 1 item(s), but LexCore.Entities.ProjectUsers
    {
        CreatedDate = <2024-11-19 05:37:13.1716603 +0h>, 
        Id = {989438f1-fe0b-4519-8c02-0011f0e20009}, 
        Project = LexCore.Entities.Project
        {
            Code = "create-project-cd0f9961-dev-flex", 
            CreatedDate = <2024-11-19 05:37:13.1716529 +0h>, 
            DeletedDate = <null>, 
            Description = <null>, 
            FlexProjectMetadata = <null>, 
            Id = {cd0f9961-df41-4680-88a9-5ccdb3bd2d6e}, 
            IsConfidential = 
            False, 
            LastCommit = <null>, 
            MigratedDate = <null>, 
            Name = "CreateProject", 
            Organizations = {empty}, 
            ParentId = <null>, 
            ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
            RepoSizeInKb = <null>, 
            ResetStatus = ResetStatus.None {value: 0}, 
            RetentionPolicy = RetentionPolicy.Test {value: 2}, 
            Type = ProjectType.FLEx {value: 1}, 
            UpdatedDate = <2024-11-19 05:37:13.1716529 +0h>, 
            UserCount = 0, 
            Users = LexCore.Entities.ProjectUsers
                {
                    CreatedDate = <2024-11-19 05:37:13.1716572 +0h>, 
                    Id = {e6e13dd3-bf49-4783-869c-65acbbdb71ec}, 
                    Project = {Cyclic reference to type LexCore.Entities.Project detected}, 
                    ProjectId = {cd0f9961-df41-4680-88a9-5ccdb3bd2d6e}, 
                    Role = ProjectRole.Manager {value: 2}, 
                    UpdatedDate = <2024-11-19 05:37:13.1716573 +0h>, 
                    User = LexCore.Entities.User
                    {
                        CanCreateProjects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedBy = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedById = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Email = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        EmailVerified = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        GoogleId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        IsAdmin = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LastActive = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LocalizationCode = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Locked = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Name = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organizations = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordHash = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordStrength = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Projects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Salt = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Username = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UsersICreated = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    }, 
                    UserId = {c789e548-37d1-42c7-96ed-2363d63aed19}

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                }LexCore.Entities.ProjectUsers
contains 1 item(s) more than
LexCore.Entities.ProjectUsers
    {
        CreatedDate = <2024-11-19 05:37:13.1718913 +0h>, 
        Id = {b0e661ac-2c37-4cab-93be-018b52fbac6c}, 
        Project = LexCore.Entities.Project
        {
            Code = "create-project-d0537609-dev-flex", 
            CreatedDate = <2024-11-19 05:37:13.171889 +0h>, 
            DeletedDate = <null>, 
            Description = <null>, 
            FlexProjectMetadata = <null>, 
            Id = {d0537609-f740-4435-af43-7860540c5ce3}, 
            IsConfidential = 
            True, 
            LastCommit = <null>, 
            MigratedDate = <null>, 
            Name = "CreateProject", 
            Organizations = {empty}, 
            ParentId = <null>, 
            ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
            RepoSizeInKb = <null>, 
            ResetStatus = ResetStatus.None {value: 0}, 
            RetentionPolicy = RetentionPolicy.Test {value: 2}, 
            Type = ProjectType.FLEx {value: 1}, 
            UpdatedDate = <2024-11-19 05:37:13.1718891 +0h>, 
            UserCount = 0, 
            Users = {Cyclic reference to type LexCore.Entities.ProjectUsers detected}, 
                LexCore.Entities.ProjectUsers
                {
                    CreatedDate = <2024-11-19 05:37:13.1718917 +0h>, 
                    Id = {3cd2ad1e-44d0-47b3-9aaf-a10785c05688}, 
                    Project = {Cyclic reference to type LexCore.Entities.Project detected}, 
                    ProjectId = {d0537609-f740-4435-af43-7860540c5ce3}, 
                    Role = ProjectRole.Manager {value: 2}, 
                    UpdatedDate = <2024-11-19 05:37:13.1718918 +0h>, 
                    User = LexCore.Entities.User
                    {
                        CanCreateProjects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedBy = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedById = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Email = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        EmailVerified = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        GoogleId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        IsAdmin = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LastActive = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        LocalizationCode = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Locked = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Name = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organizations = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordHash = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        PasswordStrength = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Projects = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Salt = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Username = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UsersICreated = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    }, 
                    UserId = {7a3f28c3-f68a-4409-8d43-23ed24c44bc6}

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                }LexCore.Entities.ProjectUsers.
Expected property users[0].Organizations[0].UserId to be {f3393bdf-1e5d-40a1-8510-cf600bb13fa3}, but found {3d3c383e-726f-47e9-9621-ae94e55f5001}.
Expected property users[0].Organizations[0].OrgId to be {b483fd1a-aeaa-44e2-a19b-f9cd2eda4e82}, but found {a43fe085-31d0-4af9-9a39-c410d0639b0c}.
Expected property users[0].Organizations[0].Role to equal OrgRole.Admin {value: 1} by value, but found OrgRole.User {value: 2}.
Expected property users[0].Organizations[0].User to be 
LexCore.Entities.User
{
    CanCreateProjects = True, 
    CreatedBy = <null>, 
    CreatedById = <null>, 
    CreatedDate = <2024-11-19 05:37:13.1706114 +0h>, 
    Email = "[email protected]", 
    EmailVerified = True, 
    GoogleId = <null>, 
    Id = {f3393bdf-1e5d-40a1-8510-cf600bb13fa3}, 
    IsAdmin = False, 
    LastActive = <2024-11-19 05:37:13.1706105 +0h>, 
    LocalizationCode = "en", 
    Locked = False, 
    Name = "Robin Hood", 
    {
    Organizations = LexCore.Entities.OrgMember
        {
            CreatedDate = <2024-11-19 05:37:13.1721088 +0h>, 
            Id = {a482b043-d4d2-46fb-ad91-030f24da0c5b}, 
            OrgId = {b483fd1a-aeaa-44e2-a19b-f9cd2eda4e82}, 
            Organization = LexCore.Entities.Organization
            {
                CreatedDate = <2024-11-19 05:37:13.1721062 +0h>, 
                Id = {b483fd1a-aeaa-44e2-a19b-f9cd2eda4e82}, 
                MemberCount = 0, 
                {
                Members = {Cyclic reference to type LexCore.Entities.OrgMember detected}, 
                    LexCore.Entities.OrgMember
                    {
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        OrgId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Organization = {Cyclic reference to type LexCore.Entities.Organization detected}, 
                        Role = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UpdatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        User = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        UserId = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                                    }
                }, 
                Name = "a5ace3ee", 
                ProjectCount = 0, 
                Projects = {empty}, 
                UpdatedDate = <2024-11-19 05:37:13.1721062 +0h>
            }, 
            Role = OrgRole.Admin {value: 1}, 
            UpdatedDate = <2024-11-19 05:37:13.1721088 +0h>, 
            User = {Cyclic reference to type LexCore.Entities.User detected}, 
            UserId = {f3393bdf-1e5d-40a1-8510-cf600bb13fa3}
        }
    }, 
    PasswordHash = "", 
    PasswordStrength = <null>, 
    Projects = LexCore.Entities.ProjectUsers
        {
            CreatedDate = <2024-11-19 05:37:13.1718913 +0h>, 
            Id = {b0e661ac-2c37-4cab-93be-018b52fbac6c}, 
            Project = LexCore.Entities.Project
            {
                Code = "create-project-d0537609-dev-flex", 
                CreatedDate = <2024-11-19 05:37:13.171889 +0h>, 
                DeletedDate = <null>, 
                Description = <null>, 
                FlexProjectMetadata = <null>, 
                Id = {d0537609-f740-4435-af43-7860540c5ce3}, 
                IsConfidential = True, 
                LastCommit = <null>, 
                MigratedDate = <null>, 
                Name = "CreateProject", 
                Organizations = {empty}, 
                ParentId = <null>, 
                ProjectOrigin = ProjectMigrationStatus.Migrated {value: 1}, 
                RepoSizeInKb = <null>, 
                ResetStatus = ResetStatus.None {value: 0}, 
                RetentionPolicy = RetentionPolicy.Test {value: 2}, 
                Type = ProjectType.FLEx {value: 1}, 
                UpdatedDate = <2024-11-19 05:37:13.1718891 +0h>, 
                UserCount = 0, 
                Users = {Cyclic reference to type LexCore.Entities.ProjectUsers detected}LexCore.Entities.ProjectUsers
                    {
                        CreatedDate = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Id = 
                    Maximum recursion depth of 5 was reached.  Increase MaxDepth on AssertionScope or AssertionOptions to get more details.
                    , 
                        Project = {Cyclic reference to type LexCore.Entities.Project detected}, 

(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionOptions to include more lines.)
                        ProjectId = , but it contains a cyclic reference.
Expected property users[0].Organizations[0].Organization.Name to be "a5ace3ee", but "d1842738" differs near "d18" (index 0).

With configuration:
- Use declared types and members
- Compare enums by value
- Compare tuples by their properties
- Compare anonymous types by their properties
- Compare records by their members
- Include non-browsable members
- Include all non-private properties
- Include all non-private fields
- Match member by name (or throw)
- Be strict about the order of items in byte arrays
- Without automatic conversion.
   at FluentAssertions.Execution.XUnit2TestFramework.Throw(String message)
   at FluentAssertions.Execution.TestFrameworkProvider.Throw(String message)
   at FluentAssertions.Execution.CollectingAssertionStrategy.ThrowIfAny(IDictionary`2 context)
   at FluentAssertions.Execution.AssertionScope.Dispose()
   at FluentAssertions.Equivalency.EquivalencyValidator.AssertEquality(Comparands comparands, EquivalencyValidationContext context)
   at FluentAssertions.Collections.GenericCollectionAssertions`3.BeEquivalentTo[TExpectation](IEnumerable`1 expectation, Func`2 config, String because, Object[] becauseArgs)
   at Testing.LexCore.Services.UserServiceTest.ManagerCanSeeAllUsersEvenInConfidentialProjects() in /home/runner/work/languageforge-lexbox/languageforge-lexbox/backend/Testing/LexCore/Services/UserServiceTest.cs:line 95
--- End of stack trace from previous location ---