gritcsenko / HomeInventory

Inventory management for home
MIT License
6 stars 0 forks source link

Bump System.IdentityModel.Tokens.Jwt from 8.0.2 to 8.1.0 in /src/HomeInventory #986

Closed dependabot[bot] closed 1 week ago

dependabot[bot] commented 1 week ago

Bumps System.IdentityModel.Tokens.Jwt from 8.0.2 to 8.1.0.

Release notes

Sourced from System.IdentityModel.Tokens.Jwt's releases.

8.1.0

Performance improvements

  • Improves performance during issuer validation by replacing string comparison with span comparison. See PR #2826.

New features

  • Add optional check to prevent using keys that are shared across multiple clouds. See issue #2832 for details.

Bug fixes

  • JsonWebTokenHandler would only return unwrapped keys if there was no errors. This change is to align with the behavior in JwtSecurityTokenHandler, that is it returns the keys that were able to be unwrapped, and only throw if no keys were able to be unwrapped. See issue #2695 for details.

Fundamentals

  • Fix flaky tests. See #2793 for details.
  • Update XUnit versoin and fix test warnings due to new XUnit analyzers. See PR #2796 for details.
  • Onhboard to code coverage in ADO. See PR #2798.
  • Use IsTargetFrameworkCompatible(*) so AOT is forward-compatible with .NET 9 and beyond. See PR #2790 for details.
  • Fix a merge conflict impacting dev. See PR #2819.
  • Defining the following attribute in multiple assemblies (.Tokens, .Logging) causes an internal error. [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]. See PR #2820.
  • Remove perl dependency. See PR #2830.

Work related to redesign of IdentityModel's token validation logic #2711

What's Changed

... (truncated)

Changelog

Sourced from System.IdentityModel.Tokens.Jwt's changelog.

8.1.0

Performance improvements

  • Improves performance during issuer validation by replacing string comparison with span comparison. See PR #2826.

New features

  • Add optional check to prevent using keys that are shared across multiple clouds. See issue #2832 for details.

Bug fixes

  • JsonWebTokenHandler would only return unwrapped keys if there was no errors. This change is to align with the behavior in JwtSecurityTokenHandler, that is it returns the keys that were able to be unwrapped, and only throw if no keys were able to be unwrapped. See issue #2695 for details.

Fundamentals

  • Fix flaky tests. See #2793 for details.
  • Update XUnit versoin and fix test warnings due to new XUnit analyzers. See PR #2796 for details.
  • Onhboard to code coverage in ADO. See PR #2798.
  • Use IsTargetFrameworkCompatible(*) so AOT is forward-compatible with .NET 9 and beyond. See PR #2790 for details.
  • Fix a merge conflict impacting dev. See PR #2819.
  • Defining the following attribute in multiple assemblies (.Tokens, .Logging) causes an internal error. [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]. See PR #2820.
  • Remove perl dependency. See PR #2830.

Work related to redesign of IdentityModel's token validation logic #2711

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
github-actions[bot] commented 1 week ago

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails

Scanned Manifest Files

github-actions[bot] commented 1 week ago

Test Results

259 tests  ±0   259 :white_check_mark: ±0   7s :stopwatch: ±0s   1 suites ±0     0 :zzz: ±0    1 files   ±0     0 :x: ±0 

Results for commit 29be9f92. ± Comparison against base commit 28f53e25.

This pull request removes 17 and adds 17 tests. Note that renamed tests count towards both. ``` HomeInventory.Tests.Systems.Mapping.ContractsMappingsTests ‑ ShouldMap(instance: AuthenticateResult { Id = 01J8KA2ZX1PA8SDAFX16YGEJG1, Token = Tokenc9b0f64e-1b4a-4f9b-b094-a0207d99c7b0 }, destination: typeof(HomeInventory.Contracts.LoginResponse)) HomeInventory.Tests.Systems.Mapping.ContractsMappingsTests ‑ ShouldMap(instance: LoginRequest { Email = Email1b49c11b-2c76-4287-8035-339f41a124ee, Password = Password0debc0b0-d5ab-46b3-b917-004fce5bf14d }, destination: typeof(HomeInventory.Application.Cqrs.Queries.Authenticate.AuthenticateQuery)) HomeInventory.Tests.Systems.Mapping.ModelMappingsTests ‑ ShouldMap(instance: 01J8KA2YW17MHA7CPNNE5CTBNJ, destination: typeof(System.Ulid)) HomeInventory.Tests.Systems.Mapping.ModelMappingsTests ‑ ShouldMap(instance: 01J8KA2YW1A9JK90X2VRPEEP18, destination: typeof(HomeInventory.Domain.ValueObjects.ProductId)) HomeInventory.Tests.Systems.Mapping.ModelMappingsTests ‑ ShouldMap(instance: Amount { Unit = CubicMeter (01J8KA2YAY22R4RYQ0NYR8BPA6), Value = 222 }, destination: typeof(HomeInventory.Infrastructure.Persistence.Models.ProductAmountModel)) HomeInventory.Tests.Systems.Mapping.ModelMappingsTests ‑ ShouldMap(instance: ProductAmountModel { UnitName = "Teaspoon", Value = 156 }, destination: typeof(HomeInventory.Domain.ValueObjects.Amount)) HomeInventory.Tests.Systems.Mapping.UserManagementContractsMappingsTests ‑ ShouldMap(instance: 01J8KA2Z7J3B4KH8YJRD7R7PB1, destination: typeof(System.Ulid)) HomeInventory.Tests.Systems.Mapping.UserManagementContractsMappingsTests ‑ ShouldMap(instance: 01J8KA2Z7JMXZB2YFJYZWZ66S2@email.com, destination: typeof(string)) HomeInventory.Tests.Systems.Mapping.UserManagementContractsMappingsTests ‑ ShouldMap(instance: RegisterRequest { Email = Emailac9d32de-ec22-4cb8-b303-901004969adf, Password = Password0ec3b44b-3f36-4d5d-9a0f-0196bcd32631 }, destination: typeof(HomeInventory.Application.Cqrs.Queries.UserId.UserIdQuery)) HomeInventory.Tests.Systems.Mapping.UserManagementContractsMappingsTests ‑ ShouldMap(instance: RegisterRequest { Email = Emaild7312c79-3d1d-49d2-b89b-d739a3b1cb0e, Password = Passwordb4e1b220-0657-4eea-8b8b-a7a9560184fb }, destination: typeof(HomeInventory.Application.Cqrs.Commands.Register.RegisterCommand)) … ``` ``` HomeInventory.Tests.Systems.Mapping.ContractsMappingsTests ‑ ShouldMap(instance: AuthenticateResult { Id = 01J8KA7DNW9PT893CVQWFWRFFC, Token = Tokend74c696e-8112-4d91-9da9-d106808b599c }, destination: typeof(HomeInventory.Contracts.LoginResponse)) HomeInventory.Tests.Systems.Mapping.ContractsMappingsTests ‑ ShouldMap(instance: LoginRequest { Email = Emailf6093384-06eb-4d00-94b5-28f520013fde, Password = Password8f567ded-00b1-49af-8066-4a1bc76217ec }, destination: typeof(HomeInventory.Application.Cqrs.Queries.Authenticate.AuthenticateQuery)) HomeInventory.Tests.Systems.Mapping.ModelMappingsTests ‑ ShouldMap(instance: 01J8KA7EQ8C90HMGAS0Q93NFH4, destination: typeof(HomeInventory.Domain.ValueObjects.ProductId)) HomeInventory.Tests.Systems.Mapping.ModelMappingsTests ‑ ShouldMap(instance: 01J8KA7EQ8HVE47RVP66G3YNNB, destination: typeof(System.Ulid)) HomeInventory.Tests.Systems.Mapping.ModelMappingsTests ‑ ShouldMap(instance: Amount { Unit = Shot (01J8KA7DDX11JBG02Y8YCNC6SZ), Value = 244 }, destination: typeof(HomeInventory.Infrastructure.Persistence.Models.ProductAmountModel)) HomeInventory.Tests.Systems.Mapping.ModelMappingsTests ‑ ShouldMap(instance: ProductAmountModel { UnitName = "Tablespoon", Value = 180 }, destination: typeof(HomeInventory.Domain.ValueObjects.Amount)) HomeInventory.Tests.Systems.Mapping.UserManagementContractsMappingsTests ‑ ShouldMap(instance: 01J8KA7EMM7XZ8Y4CHZEJW5R3K@email.com, destination: typeof(string)) HomeInventory.Tests.Systems.Mapping.UserManagementContractsMappingsTests ‑ ShouldMap(instance: 01J8KA7EMMTZX9Y3QS7T0N8JQK, destination: typeof(System.Ulid)) HomeInventory.Tests.Systems.Mapping.UserManagementContractsMappingsTests ‑ ShouldMap(instance: RegisterRequest { Email = Emaild89a8e3d-e974-4f31-9164-2bd9b271a681, Password = Password105d53a1-01bf-4b1d-b49e-8e5326b8a8af }, destination: typeof(HomeInventory.Application.Cqrs.Commands.Register.RegisterCommand)) HomeInventory.Tests.Systems.Mapping.UserManagementContractsMappingsTests ‑ ShouldMap(instance: RegisterRequest { Email = Emaildda176d6-4fa5-4ecc-91b8-4efafacfa310, Password = Password7ff0c329-091d-4a7b-87e4-7c90c1eb6c5d }, destination: typeof(HomeInventory.Application.Cqrs.Queries.UserId.UserIdQuery)) … ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 week ago

Code Coverage

Package Line Rate Branch Rate Health
HomeInventory.Infrastructure 91% 77%
HomeInventory.Domain.UserManagement 91% 100%
HomeInventory.Core 78% 69%
HomeInventory.Application.UserManagement 95% 100%
HomeInventory.Contracts.Validations 100% 100%
HomeInventory.Tests.Framework 82% 63%
HomeInventory.Domain.Primitives 84% 75%
HomeInventory.Web 81% 64%
HomeInventory.Web.UserManagement 100% 100%
HomeInventory.Contracts.UserManagement.Validators 100% 92%
HomeInventory.Application.Framework 90% 100%
HomeInventory.Web.Framework 89% 59%
HomeInventory.Infrastructure.Framework 82% 44%
HomeInventory.Application 95% 63%
HomeInventory.Application.UserManagement.Interfaces 100% 100%
HomeInventory.Domain 88% 89%
HomeInventory.Infrastructure.UserManagement 93% 50%
Summary 85% (1612 / 1886) 65% (338 / 522)

Minimum allowed line rate is 60%

github-actions[bot] commented 1 week ago

Summary

Summary ||| |:---|:---| | Generated on: | 09/25/2024 - 00:45:32 | | Coverage date: | 09/25/2024 - 00:45:19 | | Parser: | Cobertura | | Assemblies: | 17 | | Classes: | 219 | | Files: | 205 | | **Line coverage:** | 85.8% (1677 of 1954) | | Covered lines: | 1677 | | Uncovered lines: | 277 | | Coverable lines: | 1954 | | Total lines: | 5493 | | **Branch coverage:** | 66.4% (348 of 524) | | Covered branches: | 348 | | Total branches: | 524 | | **Method coverage:** | [Feature is only available for sponsors](https://reportgenerator.io/pro) | | Tag: | 2101_11024193304 |

Coverage

HomeInventory.Application - 94.7% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Application**|**94.7%**|**63.3%**| |HomeInventory.Application.AssemblyReference|100%|| |HomeInventory.Application.BaseHealthCheck|88.8%|100%| |HomeInventory.Application.Cqrs.Behaviors.LoggingBehavior`2|86.6%|50%| |HomeInventory.Application.Cqrs.Behaviors.UnitOfWorkBehavior`2|93.7%|75%| |HomeInventory.Application.Cqrs.Queries.Authenticate.AuthenticateQueryHandle
r|100%|100%| |HomeInventory.Application.HealthCheckTags|100%|| |HomeInventory.Application.LogEvents|100%|62.5%| |HomeInventory.Application.MediatRServiceConfigurationExtensions|100%|| |Microsoft.Extensions.DependencyInjection.ApplicationServiceCollectionExtens
ions|100%||
HomeInventory.Application.Framework - 89.6% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Application.Framework**|**89.6%**|****| |HomeInventory.Application.Cqrs.DomainEvents.DomainEventNotification|100%|| |HomeInventory.Application.Cqrs.DomainEvents.DomainEventNotification`1|100%|| |HomeInventory.Application.Framework.FeatureFlag|100%|| |HomeInventory.Application.Framework.FeatureFlag`1|100%|| |HomeInventory.Application.Framework.FeatureManagerExtensions|0%|| |HomeInventory.Application.Framework.Mapping.BaseMappingsProfile|100%|| |HomeInventory.Application.Framework.Mapping.TypeConverterAdapter`3|100%|| |HomeInventory.Application.Interfaces.Messaging.CommandHandler`1|100%|| |HomeInventory.Application.Interfaces.Messaging.QueryHandler`2|66.6%|| |HomeInventory.Application.MappingAssemblySource|100%|| |Microsoft.Extensions.DependencyInjection.ApplicationFrameworkServiceCollect
ionExtensions|100%||
HomeInventory.Application.UserManagement - 95.2% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Application.UserManagement**|**95.2%**|**100%**| |HomeInventory.Application.Cqrs.Commands.Register.F5
901BC97285218797F4748A7ECD72C55B6A0ECE2330AB17619ACC55E5D437992__Extensions|100%|| |HomeInventory.Application.Cqrs.Commands.Register.RegisterCommandHandler|100%|100%| |HomeInventory.Application.Cqrs.DomainEvents.UserCreatedDomainEventHandler|0%|| |HomeInventory.Application.Cqrs.Queries.UserId.UserIdQueryHandler|100%|| |HomeInventory.Application.UserManagement.AssemblyReference|0%||
HomeInventory.Application.UserManagement.Interfaces - |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Application.UserManagement.Interfaces**|****|****|
HomeInventory.Contracts.UserManagement.Validators - 100% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Contracts.UserManagement.Validators**|**100%**|**91.6%**| |HomeInventory.Contracts.UserManagement.Validators.AssemblyReference|100%|| |HomeInventory.Contracts.Validations.PasswordCharacterSet|100%|| |HomeInventory.Contracts.Validations.PasswordCharacterSets|100%|| |HomeInventory.Contracts.Validations.PasswordValidator`1|100%|100%| |HomeInventory.Contracts.Validations.PasswordValidatorOptions|100%|100%| |HomeInventory.Contracts.Validations.RegisterRequestValidator|100%|| |HomeInventory.Contracts.Validations.RuleBuilderExtensions|100%|50%|
HomeInventory.Contracts.Validations - 100% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Contracts.Validations**|**100%**|****| |HomeInventory.Contracts.Validations.AssemblyReference|100%|| |HomeInventory.Contracts.Validations.LoginRequestValidator|100%||
HomeInventory.Core - 78.1% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Core**|**78.1%**|**68.5%**| |HomeInventory.Core.AnonymousAsyncDisposable|100%|100%| |HomeInventory.Core.AssemblyReference|0%|| |HomeInventory.Core.CollectionExtensions|60%|75%| |HomeInventory.Core.DictionaryExtensions|100%|100%| |HomeInventory.Core.DisposableExtensions|88.8%|50%| |HomeInventory.Core.EnumerableExtensions|57.1%|60%| |HomeInventory.Core.Execute|100%|| |HomeInventory.Core.Functional|100%|100%| |HomeInventory.Core.LazyExtensions|100%|100%| |HomeInventory.Core.OptionExtensions|85.7%|75%| |HomeInventory.Core.PowerExtensions|0%|0%| |HomeInventory.Core.Scope`1|88.8%|75%| |HomeInventory.Core.ScopeAccessor|100%|| |HomeInventory.Core.ScopeAccessorExtensions|100%|100%| |HomeInventory.Core.ScopeContainer|100%|| |HomeInventory.Core.ScopeFactory|100%|| |HomeInventory.Core.TypeExtensions|100%|100%| |HomeInventory.Core.ValidationExtensions|71.4%|75%| |HomeInventory.Domain.Primitives.Errors.ValidationError|100%|| |HomeInventory.Domain.Primitives.Errors.ValidationException|100%||
HomeInventory.Domain - 91% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Domain**|**91%**|**88.2%**| |HomeInventory.Domain.AssemblyReference|0%|| |HomeInventory.Domain.Entities.Material|0%|| |HomeInventory.Domain.Entities.Product|0%|| |HomeInventory.Domain.Errors.DuplicateProductError|0%|| |HomeInventory.Domain.Errors.InvalidCredentialsError|100%|| |HomeInventory.Domain.Events.ProductAddedEvent|0%|| |HomeInventory.Domain.Events.ProductRemovedEvent|0%|| |HomeInventory.Domain.FixedTimeProvider|100%|| |HomeInventory.Domain.ValueObjects|95.6%|88.8%| |HomeInventory.Domain.ValueObjects.Amount|100%|| |HomeInventory.Domain.ValueObjects.AmountFactory|100%|87.5%| |HomeInventory.Domain.ValueObjects.AmountUnit|100%|| |HomeInventory.Domain.ValueObjects.MaterialId|0%|| |HomeInventory.Domain.ValueObjects.MeasurementType|90.9%|| |HomeInventory.Domain.ValueObjects.ProductId|100%|| |Microsoft.Extensions.DependencyInjection.DomainServiceCollectionExtensions|100%||
HomeInventory.Domain.Primitives - 84% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Domain.Primitives**|**84%**|**75%**| |HomeInventory.Application.Mapping.BuilderObjectConverter`3|100%|| |HomeInventory.Application.Mapping.ObjectConverter`2|100%|| |HomeInventory.Domain.Events.DomainEvent|100%|| |HomeInventory.Domain.Primitives.AggregateRoot`2|60%|| |HomeInventory.Domain.Primitives.AssemblyReference|0%|| |HomeInventory.Domain.Primitives.BaseEnumeration`1|87.5%|| |HomeInventory.Domain.Primitives.BaseEnumeration`2|100%|| |HomeInventory.Domain.Primitives.Entity`2|100%|| |HomeInventory.Domain.Primitives.EnumerationItemsCollection|100%|| |HomeInventory.Domain.Primitives.EnumerationItemsCollection`1|87.5%|100%| |HomeInventory.Domain.Primitives.Equatable`1|100%|83.3%| |HomeInventory.Domain.Primitives.EquatableComponent`1|70%|50%| |HomeInventory.Domain.Primitives.Errors.ConflictError|100%|| |HomeInventory.Domain.Primitives.Errors.NotFoundError|100%|| |HomeInventory.Domain.Primitives.Errors.ValueNotSpecifiedError|0%|| |HomeInventory.Domain.Primitives.EventsCollection|60%|| |HomeInventory.Domain.Primitives.Ids.BuildableIdentifierObject`3|100%|| |HomeInventory.Domain.Primitives.Ids.DelegatingIdSupplier`1|100%|| |HomeInventory.Domain.Primitives.Ids.IdentifierObject`2|66.6%|| |HomeInventory.Domain.Primitives.Ids.IdentifierObjectBuilder`3|100%|100%| |HomeInventory.Domain.Primitives.Ids.IdSuppliers|100%|| |HomeInventory.Domain.Primitives.Ids.UlidIdentifierObject`1|100%|| |HomeInventory.Domain.Primitives.Ids.UlidIdentifierObjectBuilder`1|100%|| |HomeInventory.Domain.Primitives.ValueObject`1|100%|| |HomeInventory.Domain.Primitives.ValueObjectBuilder`3|70%|66.6%|
HomeInventory.Domain.UserManagement - 90.9% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Domain.UserManagement**|**90.9%**|****| |HomeInventory.Domain.Aggregates.User|100%|| |HomeInventory.Domain.Errors.DuplicateEmailError|100%|| |HomeInventory.Domain.Events.UserCreatedDomainEvent|100%|| |HomeInventory.Domain.UserManagement.AssemblyReference|0%|| |HomeInventory.Domain.ValueObjects.Email|100%|| |HomeInventory.Domain.ValueObjects.UserId|100%||
HomeInventory.Infrastructure - 90.6% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Infrastructure**|**90.6%**|**77.2%**| |HomeInventory.Infrastructure.AssemblyReference|100%|| |HomeInventory.Infrastructure.Persistence.DatabaseContext|100%|100%| |HomeInventory.Infrastructure.Persistence.Mapping.AmountObjectConverter|100%|| |HomeInventory.Infrastructure.Persistence.Mapping.ModelMappings|100%|| |HomeInventory.Infrastructure.Persistence.Models.Configurations.OutboxDataba
seConfigurationApplier|100%|| |HomeInventory.Infrastructure.Persistence.Models.Configurations.OutboxMessag
eConfiguration|84.6%|0%| |HomeInventory.Infrastructure.Persistence.Models.Configurations.PolymorphicD
omainEventTypeResolver|100%|100%| |HomeInventory.Infrastructure.Persistence.Models.Interceptors.PublishDomainE
ventsInterceptor|100%|100%| |HomeInventory.Infrastructure.Services.EventsPersistenceService|100%|| |HomeInventory.Infrastructure.Services.PersistenceHealthCheck|69.2%|62.5%| |Microsoft.Extensions.DependencyInjection.InfrastructureServiceCollectionExt
ensions|100%||
HomeInventory.Infrastructure.Framework - 81.9% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Infrastructure.Framework**|**81.9%**|**39.2%**| |HomeInventory.Infrastructure.Framework.AssemblyReference|0%|| |HomeInventory.Infrastructure.Framework.Mapping.MappingExtensions|100%|7.1%| |HomeInventory.Infrastructure.Persistence.BaseDatabaseConfigurationApplier`2|50%|0%| |HomeInventory.Infrastructure.Persistence.Models.Configurations.EntityTypeBu
ilderExtensions|100%|| |HomeInventory.Infrastructure.Persistence.Models.Configurations.IdValueConve
rter`2|100%|| |HomeInventory.Infrastructure.Persistence.Repository`3|82.3%|75%| |HomeInventory.Infrastructure.Specifications.ByIdFilterSpecification`2|100%|| |Microsoft.Extensions.DependencyInjection.InfrastructureFrameworkServiceColl
ectionExtensions|75%|100%|
HomeInventory.Infrastructure.UserManagement - 92.8% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Infrastructure.UserManagement**|**92.8%**|**50%**| |HomeInventory.Infrastructure.Persistence.Models.Configurations.UserModelCon
figuration|100%|| |HomeInventory.Infrastructure.Persistence.Models.Configurations.UserModelDat
abaseConfigurationApplier|100%|| |HomeInventory.Infrastructure.Persistence.UserRepository|100%|| |HomeInventory.Infrastructure.Services.BCryptPasswordHasher|100%|| |HomeInventory.Infrastructure.Specifications.UserHasEmailSpecification|57.1%|| |HomeInventory.Infrastructure.UserManagement.AssemblyReference|100%|| |HomeInventory.Infrastructure.UserManagement.Mapping.UserManagementModelMapp
ings|100%|| |HomeInventory.Infrastructure.UserManagement.Models.Configurations.DomainEve
ntJsonTypeInfo|100%|50%| |Microsoft.Extensions.DependencyInjection.InfrastructureUserManagementServic
eCollectionExtensions|100%||
HomeInventory.Tests.Framework - 81.7% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Tests.Framework**|**81.7%**|**62.8%**| |HomeInventory.Tests.Framework.Assertions.AssertionExtensions|66.6%|| |HomeInventory.Tests.Framework.Assertions.JsonElementAssertions|48.5%|100%| |HomeInventory.Tests.Framework.Assertions.ObjectAssertions`1|100%|| |HomeInventory.Tests.Framework.Assertions.ObjectExtensions|93.7%|56.2%| |HomeInventory.Tests.Framework.Assertions.OkResultAssertions`1|100%|| |HomeInventory.Tests.Framework.Assertions.QueryResultAssertions`1|70.3%|66.6%| |HomeInventory.Tests.Framework.Assertions.RouteEndpointAssertions|100%|| |HomeInventory.Tests.Framework.Assertions.ServiceCollectionAssertions|100%|100%| |HomeInventory.Tests.Framework.Assertions.ServiceDescriptorExtensions|100%|100%| |HomeInventory.Tests.Framework.Assertions.UlidAssertions|100%|| |HomeInventory.Tests.Framework.Assertions.UlidAssertions`1|40.7%|0%| |HomeInventory.Tests.Framework.Attributes.ArchitectureTestAttribute|100%|| |HomeInventory.Tests.Framework.Attributes.CategoryTraitAttribute|100%|| |HomeInventory.Tests.Framework.Attributes.CategoryTraitDiscoverer|100%|66.6%| |HomeInventory.Tests.Framework.Attributes.ClassDataAttribute`1|100%|| |HomeInventory.Tests.Framework.Attributes.IntegrationTestAttribute|0%|| |HomeInventory.Tests.Framework.Attributes.InvariantCultureAttribute|100%|| |HomeInventory.Tests.Framework.Attributes.SkippedAttribute|0%|| |HomeInventory.Tests.Framework.Attributes.TestPriorityAttribute|0%|| |HomeInventory.Tests.Framework.Attributes.UnitTestAttribute|100%|| |HomeInventory.Tests.Framework.BaseContext|100%|| |HomeInventory.Tests.Framework.BaseTest|100%|100%| |HomeInventory.Tests.Framework.BaseTest`1|100%|| |HomeInventory.Tests.Framework.CancellationImplementation|75%|100%| |HomeInventory.Tests.Framework.Customizations.ApiBehaviorOptionsCustomizatio
n|100%|| |HomeInventory.Tests.Framework.Customizations.FixtureExtensions|95%|100%| |HomeInventory.Tests.Framework.Customizations.RegisterRequestCustomization|100%|100%| |HomeInventory.Tests.Framework.DbContextFactory|100%|50%| |HomeInventory.Tests.Framework.GivenContext`1|96.7%|83.3%| |HomeInventory.Tests.Framework.GivenContext`2|100%|| |HomeInventory.Tests.Framework.GivenContext`3|100%|| |HomeInventory.Tests.Framework.IndexedVariable`1|100%|| |HomeInventory.Tests.Framework.PriorityTestOrderer|100%|83.3%| |HomeInventory.Tests.Framework.PropertyValue`1|100%|| |HomeInventory.Tests.Framework.RandomExtensions|37.5%|30%| |HomeInventory.Tests.Framework.ReflectionDbContextFactory|100%|50%| |HomeInventory.Tests.Framework.ReflectionMethods|100%|| |HomeInventory.Tests.Framework.ServiceCollectionExtensions|100%|| |HomeInventory.Tests.Framework.SubstitutionDbContextFactory|100%|| |HomeInventory.Tests.Framework.TestingLogger`1|50%|| |HomeInventory.Tests.Framework.ThenCatchedContext|100%|| |HomeInventory.Tests.Framework.ThenContext|100%|| |HomeInventory.Tests.Framework.ThenContext`1|100%|| |HomeInventory.Tests.Framework.Variable|100%|| |HomeInventory.Tests.Framework.Variable`1|75%|| |HomeInventory.Tests.Framework.VariablesCollectionExtensions|83.3%|50%| |HomeInventory.Tests.Framework.VariablesContainer|100%|100%| |HomeInventory.Tests.Framework.VariableValues`1|87.5%|59%| |HomeInventory.Tests.Framework.WhenContext|92.3%||
HomeInventory.Web - 80.8% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Web**|**80.8%**|**63.8%**| |HomeInventory.Web.AssemblyReference|100%|| |HomeInventory.Web.Authentication.GuidJwtIdentityGenerator|100%|| |HomeInventory.Web.Authentication.JwtTokenGenerator|100%|| |HomeInventory.Web.Authorization.Dynamic.DynamicAuthorizationHandler|0%|0%| |HomeInventory.Web.Authorization.Dynamic.DynamicPermissionRequirement|50%|| |HomeInventory.Web.Configuration.CorrelationIdContainer|100%|| |HomeInventory.Web.Configuration.JwtBearerOptionsSetup|100%|| |HomeInventory.Web.Configuration.JwtOptions|100%|100%| |HomeInventory.Web.Configuration.Validation.JwtOptionsValidator|100%|| |HomeInventory.Web.Mapping.ContractsMappings|100%|| |HomeInventory.Web.Middleware.CorrelationIdMiddleware|100%|100%| |HomeInventory.Web.Middleware.HeaderNames|100%|| |HomeInventory.Web.Middleware.ProblemTraceIdentifierMiddleware|0%|| |HomeInventory.Web.Modules.AuthenticationModule|100%|| |HomeInventory.Web.Modules.PermissionModule|83.3%|| |HomeInventory.Web.OpenApi.ConfigureSwaggerOptions|72.9%|31.2%| |HomeInventory.Web.OpenApi.DeprecatedSwaggerOperationFilter|100%|| |HomeInventory.Web.OpenApi.JsonOpenApiValueConverter|100%|100%| |HomeInventory.Web.OpenApi.ParametersSwaggerOperationFilter|100%|100%| |HomeInventory.Web.OpenApi.ResponsesSwaggerOperationFilter|100%|100%| |HomeInventory.Web.OpenApi.SwaggerDefaultValues|100%|100%| |Microsoft.Extensions.DependencyInjection.DynamicAuthorizationServiceCollect
ionExtensions|94.1%|83.3%| |Microsoft.Extensions.DependencyInjection.WebServiceCollectionExtensions|94.8%|66.6%|
HomeInventory.Web.Framework - 89.3% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Web.Framework**|**89.3%**|**65.2%**| |HomeInventory.Web.EndpointRouteBuilderExtensions|100%|| |HomeInventory.Web.Framework.FluentOptionsValidator|50%|| |HomeInventory.Web.Framework.FluentOptionsValidator`1|92.3%|50%| |HomeInventory.Web.Framework.MappingExtensions|100%|12.5%| |HomeInventory.Web.Framework.SectionPath|85.7%|| |HomeInventory.Web.Framework.ValidationContextFactory`1|100%|100%| |HomeInventory.Web.Infrastructure.ErrorMapping|100%|100%| |HomeInventory.Web.Infrastructure.ErrorMappingBuilder|100%|| |HomeInventory.Web.Infrastructure.HomeInventoryProblemDetailsFactory|100%|88.8%| |HomeInventory.Web.Infrastructure.ProblemDetailsExtensions|92.8%|79.1%| |HomeInventory.Web.Infrastructure.ProblemDetailsFactoryExtensions|76.9%|| |HomeInventory.Web.Modules.ApiModule|92.3%|| |HomeInventory.Web.RouteHandlerBuilderExtensions|100%|| |HomeInventory.Web.ValidationEndpointFilter`1|13.3%|0%| |Microsoft.Extensions.DependencyInjection.WebFrameworkServiceCollectionExten
sions|100%||
HomeInventory.Web.UserManagement - 100% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**HomeInventory.Web.UserManagement**|**100%**|****| |HomeInventory.Web.Modules.UserManagementModule|100%|| |HomeInventory.Web.UserManagement.AssemblyReference|100%|| |HomeInventory.Web.UserManagement.UserManagementContractsMappings|100%||