Migrate from User to Account domain concept

Renames core domain entities and services from "User" to "Account"

Refactors project-wide namespaces, classes, and database tables to use "Account" terminology
Updates related components, services, and database schema to reflect new domain naming
Standardizes naming conventions across authentication and organization setup features
This commit is contained in:
Janus C. H. Knudsen 2026-01-09 22:14:46 +01:00
parent e5e7c1c19f
commit 88812177a9
29 changed files with 288 additions and 298 deletions

View file

@ -0,0 +1,90 @@
using LightBDD.Framework;
using LightBDD.Framework.Scenarios;
using LightBDD.MsTest3;
using PlanTempus.X.Services;
using Shouldly;
namespace PlanTempus.X.BDD.FeatureFixtures;
[TestClass]
[FeatureDescription(@"As a new user
I want to register with my email
So I can start using the system")]
public partial class AccountRegistrationSpecs : FeatureFixture
{
protected Account _currentAccount;
protected string _currentEmail;
protected Exception _registrationError;
IAccountService _accountService;
IEmailService _emailService;
IOrganizationService _organizationService;
public async Task Given_no_account_exists_with_email(string email)
{
// Ensure account doesn't exist with email
var account = await _accountService.GetAccountByEmailAsync(email);
account.ShouldBeNull();
_currentEmail = email;
}
public async Task When_I_submit_registration_with_email_and_password(string email, string password)
{
try
{
_currentAccount = await _accountService.CreateAccountAsync(email, password);
_currentEmail = email;
}
catch (Exception ex)
{
_registrationError = ex;
}
}
public async Task When_I_submit_registration_with_email(string email)
{
try
{
_currentAccount = await _accountService.CreateAccountAsync(email, "TestPassword123!");
_currentEmail = email;
}
catch (Exception ex)
{
_registrationError = ex;
}
}
public async Task Then_a_new_account_should_be_created_with_email_and_confirmation_status(string email, bool confirmationStatus)
{
_currentAccount.ShouldNotBeNull();
_currentAccount.Email.ShouldBe(email);
_currentAccount.EmailConfirmed.ShouldBe(confirmationStatus);
await Task.CompletedTask;
}
public async Task Then_a_confirmation_email_should_be_sent()
{
var emailSent = _emailService.WasConfirmationEmailSent(_currentEmail);
emailSent.ShouldBeTrue();
await Task.CompletedTask;
}
public async Task Given_an_account_already_exists_with_email(string email)
{
// Create an account first to ensure it exists
_currentAccount = await _accountService.CreateAccountAsync(email, "ExistingPassword123!");
_currentAccount.ShouldNotBeNull();
_currentEmail = email;
await Task.CompletedTask;
}
public async Task Then_registration_should_fail_with_error(string expectedErrorMessage)
{
_registrationError.ShouldNotBeNull();
_registrationError.Message.ShouldBe(expectedErrorMessage);
await Task.CompletedTask;
}
}