using LightBDD.Framework; using LightBDD.Framework.Scenarios; using LightBDD.MsTest3; namespace PlanTempus.X.BDD.Scenarios; [TestClass] public partial class EmailConfirmationSpecs : FeatureFixtures.EmailConfirmationSpecs { [Scenario] [TestMethod] public async Task Confirm_valid_email_address() { await Runner.RunScenarioAsync( _ => Given_an_account_exists_with_unconfirmed_email($"test-{Guid.NewGuid():N}@example.com"), _ => And_a_verification_email_is_queued_in_outbox(), _ => And_the_outbox_message_is_processed(), _ => When_I_confirm_email_with_valid_token(), _ => Then_the_accounts_email_should_be_confirmed() ); } [Scenario] [TestMethod] public async Task Handle_invalid_confirmation_token() { await Runner.RunScenarioAsync( _ => Given_an_account_exists_with_unconfirmed_email($"test-{Guid.NewGuid():N}@example.com"), _ => When_I_confirm_email_with_invalid_token(), _ => Then_I_should_see_an_error_message("Invalid"), _ => And_the_email_remains_unconfirmed() ); } }