using LightBDD.Framework; using LightBDD.Framework.Scenarios; using LightBDD.MsTest3; namespace PlanTempus.X.BDD.Scenarios; [TestClass] public partial class OrganizationSetupSpecs : FeatureFixtures.OrganizationSetupSpecs { [Scenario] [TestMethod] public async Task Complete_organization_setup_after_confirmation() { await Runner.RunScenarioAsync( _ => Given_user_has_confirmed_their_email("test@example.com"), _ => When_user_submit_organization_name_and_valid_password("Acme Corp", "ValidP@ssw0rd"), _ => Then_a_new_organization_should_be_created_with_expected_properties(), _ => And_the_user_should_be_linked_to_the_organization_in_user_organizations(), _ => And_tenant_tables_should_be_created_for_the_organization(), _ => And_user_should_be_logged_into_the_system() ); } [Scenario] [TestMethod] public async Task Prevent_organization_setup_without_password() { await Runner.RunScenarioAsync( _ => Given_user_has_confirmed_their_email("test@example.com"), _ => When_user_submit_organization_name_without_password("Acme Corp"), _ => Then_organization_setup_should_fail_with_error("Password required") ); } [Scenario] [TestMethod] public async Task Handle_multiple_organization_creations() { await Runner.RunScenarioAsync( _ => Given_user_has_completed_initial_setup("test@example.com"), _ => When_user_create_a_new_organization("Second Org"), _ => Then_a_new_organization_entry_should_be_created(), _ => And_the_user_should_be_linked_to_both_organizations() ); } }