diff --git a/JournalApp.Tests/CalendarTests.razor b/JournalApp.Tests/CalendarTests.razor index 9a73d39..4eea3fc 100644 --- a/JournalApp.Tests/CalendarTests.razor +++ b/JournalApp.Tests/CalendarTests.razor @@ -18,9 +18,9 @@ } [Fact] - public void SwitchYear() + public async Task SwitchYear() { - var cut = RenderComponent(p => + var cut = Render(p => p.Add(x => x.OpenToDateString, "20000101") ); @@ -28,30 +28,30 @@ // Back. var year = cut.Instance.SelectedYear; - cut.Find(".switcher .previous-button").Click(); + await cut.Find(".switcher .previous-button").ClickAsync(); cut.Instance.SelectedYear.Should().Be(year - 1); // Next. year = cut.Instance.SelectedYear; - cut.Find(".switcher .next-button").Click(); + await cut.Find(".switcher .next-button").ClickAsync(); cut.Instance.SelectedYear.Should().Be(year + 1); // Current. cut.Instance.SelectedYear.Should().NotBe(DateTime.Now.Year); - cut.Find(".year-button").Click(); + await cut.Find(".year-button").ClickAsync(); cut.Instance.SelectedYear.Should().Be(DateTime.Now.Year); // Can't go further. year = cut.Instance.SelectedYear; cut.Find(".switcher .next-button").HasAttribute("disabled").Should().BeTrue(); - cut.Find(".switcher .next-button").Click(); + await cut.Find(".switcher .next-button").ClickAsync(); cut.Instance.SelectedYear.Should().Be(year); } [Fact] public async Task CalendarViewMoodBlockCount() { - var cut = RenderComponent(p => + var cut = Render(p => p.Add(x => x.OpenToDateString, "20230101") ); cut.Instance.SelectedYear.Should().Be(2023); @@ -67,7 +67,7 @@ // 2023, fully filled out leap year. cut.FindAll(".calendar-view .calendar-day-cell > .calendar-day-with-mood").Count.Should().Be(filledDays); - cut.Find(".switcher .previous-button").Click(); + await cut.Find(".switcher .previous-button").ClickAsync(); cut.Instance.SelectedYear.Should().Be(2022); // 2022, none filled. @@ -81,7 +81,7 @@ _culture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Wednesday; Thread.CurrentThread.CurrentCulture = _culture; - var cut = RenderComponent(p => + var cut = Render(p => p.Add(x => x.OpenToDateString, "20230101") ); cut.Instance.SelectedYear.Should().Be(2023); diff --git a/JournalApp.Tests/DataPointViewTests.razor b/JournalApp.Tests/DataPointViewTests.razor index 7c44769..5519fc4 100644 --- a/JournalApp.Tests/DataPointViewTests.razor +++ b/JournalApp.Tests/DataPointViewTests.razor @@ -3,7 +3,7 @@ @code { [Fact] - public void Mood() + public async Task Mood() { var category = new DataPointCategory { @@ -25,19 +25,19 @@ var cut = layout.FindComponent(); // Click the emoji button to open the popover - cut.Find(".emoji-button").Click(); + await cut.Find(".emoji-button").ClickAsync(); layout.FindAll("div.mud-popover-open").Count.Should().Be(1); // Click the first emoji button in the popover var emojiButtons = layout.FindAll(".emoji-popover-content .emoji-button"); - emojiButtons[0].Click(); + await emojiButtons[0].ClickAsync(); point.Mood.Should().Be("🤔"); } [Fact] - public void Mood_SobEmoji_ShowsMotivationalQuote() + public async Task Mood_SobEmoji_ShowsMotivationalQuote() { var category = new DataPointCategory { @@ -58,14 +58,14 @@ var cut = layout.FindComponent(); // Open the mood popover - cut.Find(".emoji-button").Click(); + await cut.Find(".emoji-button").ClickAsync(); // Find and click the sob emoji (😭 is the last item in DataPoint.Moods) var sobEmoji = DataPoint.Moods[^1]; // Get the last mood (sob emoji) sobEmoji.Should().Be("😭"); // Verify it's the sob emoji var emojiButtons = layout.FindAll(".emoji-popover-content .emoji-button"); - emojiButtons[^1].Click(); // Click the last emoji button (sob emoji) + await emojiButtons[^1].ClickAsync(); // Click the last emoji button (sob emoji) // Verify mood was set point.Mood.Should().Be(sobEmoji); @@ -75,7 +75,7 @@ } [Fact] - public void Sleep() + public async Task Sleep() { var category = new DataPointCategory { @@ -87,14 +87,14 @@ var point = DataPoint.Create(day, category); point.SleepHours = 8.5m; - var cut = RenderComponent(p => + var cut = Render(p => p.Add(x => x.Point, point) ); cut.Find(".sleep-hours").TextContent.Should().Be("08.5"); for (var i = 0; i < 50; i++) - cut.Find(".less-sleep").Click(); + await cut.Find(".less-sleep").ClickAsync(); point.SleepHours.Should().Be(0); cut.Find(".sleep-hours").TextContent.Should().Be("00.0"); @@ -102,7 +102,7 @@ cut.Find(".more-sleep").HasAttribute("disabled").Should().BeFalse(); for (var i = 0; i < 50; i++) - cut.Find(".more-sleep").Click(); + await cut.Find(".more-sleep").ClickAsync(); point.SleepHours.Should().Be(24); cut.Find(".sleep-hours").TextContent.Should().Be("24.0"); @@ -111,7 +111,7 @@ } [Fact] - public void Scale() + public async Task Scale() { var category = new DataPointCategory { @@ -122,24 +122,24 @@ var day = Day.Create(new(2024, 01, 01)); var point = DataPoint.Create(day, category); - var cut = RenderComponent(p => + var cut = Render(p => p.Add(x => x.Point, point) ); point.ScaleIndex.Should().Be(null); cut.FindAll(".mud-rating-item").Count.Should().Be(5); - cut.FindAll(".mud-rating-item")[2].Click(); + await cut.FindAll(".mud-rating-item")[2].ClickAsync(); point.ScaleIndex.Should().Be(3); - cut.FindAll(".mud-rating-item")[2].Click(); + await cut.FindAll(".mud-rating-item")[2].ClickAsync(); point.ScaleIndex.Should().Be(null); } [Theory] [InlineData(PointType.LowToHigh)] [InlineData(PointType.MildToSevere)] - public void ScaleEnums(PointType type) + public async Task ScaleEnums(PointType type) { var category = new DataPointCategory { @@ -150,7 +150,7 @@ var day = Day.Create(new(2024, 01, 01)); var point = DataPoint.Create(day, category); - var cut = RenderComponent(p => + var cut = Render(p => p.Add(x => x.Point, point) ); @@ -158,19 +158,19 @@ cut.FindAll(".mud-toggle-item").Count.Should().Be(4); cut.FindAll(".mud-toggle-item-selected").Count.Should().Be(0); - cut.FindAll(".mud-toggle-item")[1].Click(); + await cut.FindAll(".mud-toggle-item")[1].ClickAsync(); cut.FindAll(".mud-toggle-item")[1].ClassList.Should().Contain("mud-toggle-item-selected"); point.ScaleIndex.Should().Be(1); - cut.FindAll(".mud-toggle-item")[2].Click(); + await cut.FindAll(".mud-toggle-item")[2].ClickAsync(); cut.FindAll(".mud-toggle-item")[2].ClassList.Should().Contain("mud-toggle-item-selected"); point.ScaleIndex.Should().Be(3); - cut.FindAll(".mud-toggle-item")[3].Click(); + await cut.FindAll(".mud-toggle-item")[3].ClickAsync(); cut.FindAll(".mud-toggle-item")[3].ClassList.Should().Contain("mud-toggle-item-selected"); point.ScaleIndex.Should().Be(5); - cut.FindAll(".mud-toggle-item")[3].Click(); + await cut.FindAll(".mud-toggle-item")[3].ClickAsync(); cut.FindAll(".mud-toggle-item")[3].ClassList.Should().NotContain("mud-toggle-item-selected"); point.ScaleIndex.Should().Be(null); } @@ -187,7 +187,7 @@ var day = Day.Create(new(2024, 01, 01)); var point = DataPoint.Create(day, category); - var cut = RenderComponent(p => + var cut = Render(p => p.Add(x => x.Point, point) ); @@ -208,7 +208,7 @@ var day = Day.Create(new(2024, 01, 01)); var point = DataPoint.Create(day, category); - var cut = RenderComponent(p => + var cut = Render(p => p.Add(x => x.Point, point) ); @@ -218,7 +218,7 @@ } [Fact] - public void Note() + public async Task Note() { var category = new DataPointCategory { @@ -239,25 +239,25 @@ var cut = layout.FindComponent(); - cut.Find("button[aria-label='Edit note']").Click(); + await cut.Find("button[aria-label='Edit note']").ClickAsync(); var noteEditor = layout.FindComponent(); noteEditor.Find("textarea").Input("123"); - layout.Find(".submit-button").Click(); + await layout.Find(".submit-button").ClickAsync(); point.Text.Should().Be("123"); - cut.Find("button[aria-label='Edit note']").Click(); + await cut.Find("button[aria-label='Edit note']").ClickAsync(); noteEditor = layout.FindComponent(); noteEditor.Find("textarea").Input("EXTRA TEXT THAT WILL BE DISCARDED"); - layout.Find(".cancel-button").Click(); + await layout.Find(".cancel-button").ClickAsync(); point.Text.Should().Be("123"); } [Fact] - public void Medication() + public async Task Medication() { var category = new DataPointCategory { @@ -287,20 +287,20 @@ // A changed dose should get reset to default when clicking No. point.MedicationDose--; - cut.FindAll(".mud-toggle-item")[0].Click(); + await cut.FindAll(".mud-toggle-item")[0].ClickAsync(); cut.FindAll(".mud-toggle-item")[0].ClassList.Should().Contain("mud-toggle-item-selected"); point.Bool.Should().Be(false); point.MedicationDose.Should().Be(point.Category.MedicationDose); - cut.FindAll(".mud-toggle-item")[1].Click(); + await cut.FindAll(".mud-toggle-item")[1].ClickAsync(); cut.FindAll(".mud-toggle-item")[1].ClassList.Should().Contain("mud-toggle-item-selected"); point.Bool.Should().Be(true); // A changed dose should get reset to default when unselecting. point.MedicationDose--; - cut.FindAll(".mud-toggle-item")[1].Click(); + await cut.FindAll(".mud-toggle-item")[1].ClickAsync(); cut.FindAll(".mud-toggle-item")[1].ClassList.Should().NotContain("mud-toggle-item-selected"); point.Bool.Should().Be(null); @@ -308,7 +308,7 @@ } [Fact] - public void MedicationEditDose() + public async Task MedicationEditDose() { var category = new DataPointCategory { @@ -337,30 +337,30 @@ cut.FindAll(".mud-toggle-item-selected").Count.Should().Be(0); // Change dose to empty via dialog. - cut.Find(".mud-link").Click(); + await cut.Find(".mud-link").ClickAsync(); var doseEditor = layout.FindComponent(); doseEditor.Find("input").Input(""); - layout.Find(".submit-button").Click(); + await layout.Find(".submit-button").ClickAsync(); // Empty dose resets to default and selects No. point.MedicationDose.Should().Be(point.Category.MedicationDose); cut.FindAll(".mud-toggle-item")[0].ClassList.Should().Contain("mud-toggle-item-selected"); // Change dose via dialog. - cut.Find(".mud-link").Click(); + await cut.Find(".mud-link").ClickAsync(); doseEditor = layout.FindComponent(); doseEditor.Find("input").Input("99"); - layout.Find(".submit-button").Click(); + await layout.Find(".submit-button").ClickAsync(); // Submitting dose is the same as Yes. point.MedicationDose.Should().Be(99); cut.FindAll(".mud-toggle-item")[1].ClassList.Should().Contain("mud-toggle-item-selected"); // Cancel dialog. - cut.Find(".mud-link").Click(); + await cut.Find(".mud-link").ClickAsync(); doseEditor = layout.FindComponent(); doseEditor.Find("input").Input("88"); - layout.Find(".cancel-button").Click(); + await layout.Find(".cancel-button").ClickAsync(); // Same as before point.MedicationDose.Should().Be(99); @@ -393,7 +393,7 @@ } [Fact] - public void MedicationEditDoseDialogCloses() + public async Task MedicationEditDoseDialogCloses() { var category = new DataPointCategory { @@ -420,15 +420,15 @@ layout.FindAll(".mud-dialog").Count.Should().Be(0); // Submit. - cut.Find(".mud-link").Click(); + await cut.Find(".mud-link").ClickAsync(); layout.FindAll(".mud-dialog").Count.Should().Be(1); - layout.Find(".submit-button").Click(); + await layout.Find(".submit-button").ClickAsync(); layout.FindAll(".mud-dialog").Count.Should().Be(0); // Cancel. - cut.Find(".mud-link").Click(); + await cut.Find(".mud-link").ClickAsync(); layout.FindAll(".mud-dialog").Count.Should().Be(1); - layout.Find(".cancel-button").Click(); + await layout.Find(".cancel-button").ClickAsync(); layout.FindAll(".mud-dialog").Count.Should().Be(0); } diff --git a/JournalApp.Tests/IndexTests.razor b/JournalApp.Tests/IndexTests.razor index ed17048..e825fab 100644 --- a/JournalApp.Tests/IndexTests.razor +++ b/JournalApp.Tests/IndexTests.razor @@ -11,7 +11,7 @@ } [Fact] - public void CanSwitchDays() + public async Task CanSwitchDays() { var layout = Render( @ @@ -26,15 +26,15 @@ selectedDayNumber().Should().Be(nowDayNumber); - layout.Find(".day-switcher-back").Click(); + await layout.Find(".day-switcher-back").ClickAsync(); selectedDayNumber().Should().Be(nowDayNumber - 1); - layout.Find(".day-switcher-forward").Click(); + await layout.Find(".day-switcher-forward").ClickAsync(); selectedDayNumber().Should().Be(nowDayNumber); } [Fact] - public void CannotGoPastTomorrow() + public async Task CannotGoPastTomorrow() { var layout = Render( @ @@ -49,17 +49,17 @@ // We can go to tomorrow. layout.Find(".day-switcher-forward").HasAttribute("disabled").Should().BeFalse(); - layout.Find(".day-switcher-forward").Click(); + await layout.Find(".day-switcher-forward").ClickAsync(); selectedDayNumber().Should().Be(nowDayNumber + 1); // We cannot go past tomorrow layout.Find(".day-switcher-forward").HasAttribute("disabled").Should().BeTrue(); - layout.Find(".day-switcher-forward").Click(); + await layout.Find(".day-switcher-forward").ClickAsync(); selectedDayNumber().Should().Be(nowDayNumber + 1); } [Fact] - public void DataIsSavedWhileSwitchingDays() + public async Task DataIsSavedWhileSwitchingDays() { var dbf = Services.GetService>(); const string weightCategoryGuid = "480dc07d-1330-486f-9b30-ec83a3d4e6f0"; @@ -82,7 +82,7 @@ weightInput().GetAttribute("value").Should().Be("-1"); // Go back to trigger save of current day state. - layout.Find(".day-switcher-back").Click(); + await layout.Find(".day-switcher-back").ClickAsync(); layout.WaitForAssertion(() => selectedDayNumber().Should().Be(originalDayNumber - 1)); layout.WaitForAssertion(() => weightInput().GetAttribute("value").Should().NotBe("-1")); @@ -95,7 +95,7 @@ } // Return to original day and ensure UI reflects saved value. - layout.Find(".day-switcher-forward").Click(); + await layout.Find(".day-switcher-forward").ClickAsync(); layout.WaitForAssertion(() => selectedDayNumber().Should().Be(originalDayNumber)); // Assert that the weight is back to it's changed value from the original day. diff --git a/JournalApp.Tests/JaTestContext.cs b/JournalApp.Tests/JaTestContext.cs index ceb4ad7..92f65c3 100644 --- a/JournalApp.Tests/JaTestContext.cs +++ b/JournalApp.Tests/JaTestContext.cs @@ -4,7 +4,7 @@ namespace JournalApp.Tests; -public abstract class JaTestContext : TestContext, IAsyncLifetime +public abstract class JaTestContext : BunitContext, IAsyncLifetime { private SqliteConnection _dbConnection; @@ -21,13 +21,15 @@ public virtual Task InitializeAsync() return Task.CompletedTask; } - public virtual async Task DisposeAsync() + async Task IAsyncLifetime.DisposeAsync() { if (_dbConnection != null) { await _dbConnection.CloseAsync(); await _dbConnection.DisposeAsync(); } + + await base.DisposeAsync(); } public void AddDbContext() diff --git a/JournalApp.Tests/JournalApp.Tests.csproj b/JournalApp.Tests/JournalApp.Tests.csproj index 08e8604..52fe2a9 100644 --- a/JournalApp.Tests/JournalApp.Tests.csproj +++ b/JournalApp.Tests/JournalApp.Tests.csproj @@ -14,10 +14,10 @@ - + - + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/JournalApp.Tests/ManageCategoriesTests.razor b/JournalApp.Tests/ManageCategoriesTests.razor index a6ff334..bacdd21 100644 --- a/JournalApp.Tests/ManageCategoriesTests.razor +++ b/JournalApp.Tests/ManageCategoriesTests.razor @@ -11,7 +11,7 @@ } [Fact] - public void EditDialog_Open() + public async Task EditDialog_Open() { var dbf = Services.GetService>(); var guid = "de394b38-9007-4349-ae31-429541aab947"; // Physical activity. @@ -31,18 +31,18 @@ } layout.Find($"#manage-category-{guid} > .manage-category-edit-button").HasAttribute("disabled").Should().BeFalse(); - layout.Find($"#manage-category-{guid} > .manage-category-edit-button").Click(); + await layout.Find($"#manage-category-{guid} > .manage-category-edit-button").ClickAsync(); var editDialog = layout.FindComponent(); // Assert. Category().Name.Should().Be("Physical activity"); editDialog.FindAll(".mud-input-text input")[0].GetAttribute("value").Should().Be("Physical activity"); - layout.Find(".submit-button").Click(); + await layout.Find(".submit-button").ClickAsync(); } [Fact] - public void EditDialog_ShouldNotOpenWhenCategoryIsDisabled() + public async Task EditDialog_ShouldNotOpenWhenCategoryIsDisabled() { var dbf = Services.GetService>(); var guid = "0fb54aff-9ecc-4c17-bab5-b908b794cea9"; // Anxiety. @@ -56,12 +56,12 @@ ); layout.Find($"#manage-category-{guid} > .manage-category-edit-button").HasAttribute("disabled").Should().BeTrue(); - layout.Find($"#manage-category-{guid} > .manage-category-edit-button").Click(); + await layout.Find($"#manage-category-{guid} > .manage-category-edit-button").ClickAsync(); layout.HasComponent().Should().BeFalse(); } [Fact] - public void EditDialog_ShouldNotOpenWhenCategoryIsReadOnly() + public async Task EditDialog_ShouldNotOpenWhenCategoryIsReadOnly() { var dbf = Services.GetService>(); var guid = "d90d89fb-f5b9-47cf-ae4e-3ec0d635e783"; // Overall mood. @@ -75,12 +75,12 @@ ); layout.Find($"#manage-category-{guid} > .manage-category-edit-button").HasAttribute("disabled").Should().BeTrue(); - layout.Find($"#manage-category-{guid} > .manage-category-edit-button").Click(); + await layout.Find($"#manage-category-{guid} > .manage-category-edit-button").ClickAsync(); layout.HasComponent().Should().BeFalse(); } [Fact] - public void EditDialog_UpdatesList() + public async Task EditDialog_UpdatesList() { var dbf = Services.GetService>(); var guid = "de394b38-9007-4349-ae31-429541aab947"; // Physical activity. @@ -99,18 +99,18 @@ return db.Categories.Single(c => c.Guid == new Guid(guid)); } - layout.Find($"#manage-category-{guid} > .manage-category-edit-button").Click(); + await layout.Find($"#manage-category-{guid} > .manage-category-edit-button").ClickAsync(); Category().Name.Should().Be("Physical activity"); layout.FindAll(".category-dialog .mud-input-text input")[0].Input("New name"); // Submit changes and confirm they have changed on the main list. - layout.Find(".category-dialog .submit-button").Click(); + await layout.Find(".category-dialog .submit-button").ClickAsync(); layout.Find($"#manage-category-{guid} > .manage-category-edit-button").TextContent.Should().Be("New name"); } [Fact] - public void EditDialog_Delete() + public async Task EditDialog_Delete() { var dbf = Services.GetService>(); var guid = "de394b38-9007-4349-ae31-429541aab947"; // Physical activity. @@ -136,12 +136,12 @@ var initialCount = layout.FindAll(".manage-category-edit-button").Count; - layout.Find($"#manage-category-{guid} > .manage-category-edit-button").Click(); + await layout.Find($"#manage-category-{guid} > .manage-category-edit-button").ClickAsync(); layout.WaitForAssertion(() => layout.HasComponent().Should().BeTrue()); - layout.Find(".category-dialog .delete-button").Click(); + await layout.Find(".category-dialog .delete-button").ClickAsync(); layout.WaitForAssertion(() => layout.Find(".mud-message-box__yes-button")); - layout.Find(".mud-message-box__yes-button").Click(); + await layout.Find(".mud-message-box__yes-button").ClickAsync(); layout.WaitForAssertion(() => layout.HasComponent().Should().BeFalse()); layout.WaitForAssertion(() => layout.FindAll(".manage-category-edit-button").Count.Should().Be(initialCount - 1)); @@ -154,7 +154,7 @@ } [Fact] - public void AddNewCategory() + public async Task AddNewCategory() { var layout = Render( @ @@ -167,19 +167,19 @@ var initialCount = layout.FindAll(".manage-category-edit-button").Count; // Open the dialog to create a new category. - layout.Find(".add-category-button").Click(); + await layout.Find(".add-category-button").ClickAsync(); layout.Markup.Should().Contain("New element"); // Set up the new category. layout.FindAll(".category-dialog .mud-input-text input")[0].Input("New name"); // Submit changes and confirm there is a new category in the list. - layout.Find(".category-dialog .submit-button").Click(); + await layout.Find(".category-dialog .submit-button").ClickAsync(); layout.FindAll(".manage-category-edit-button").Count.Should().Be(initialCount + 1); } [Fact] - public void AddNewMedication() + public async Task AddNewMedication() { var layout = Render( @ @@ -192,14 +192,14 @@ var initialCount = layout.FindAll(".manage-category-edit-button").Count; // Open the dialog to create a new category. - layout.Find(".add-category-button").Click(); + await layout.Find(".add-category-button").ClickAsync(); layout.Markup.Should().Contain("New medication"); // Set up the new category. layout.FindAll(".category-dialog .mud-input-text input")[0].Input("New name"); // Submit changes and confirm there is a new category in the list. - layout.Find(".category-dialog .submit-button").Click(); + await layout.Find(".category-dialog .submit-button").ClickAsync(); layout.FindAll(".manage-category-edit-button").Count.Should().Be(initialCount + 1); } @@ -235,7 +235,7 @@ } [Fact] - public void MoveUpToTop() + public async Task MoveUpToTop() { var dbf = Services.GetService>(); var guid = "0fb54aff-9ecc-4c17-bab5-b908b794cea9"; // Anxiety. @@ -246,11 +246,11 @@ return db.Categories.Single(c => c.Guid == new Guid(guid)); } - var cut = RenderComponent(); + var cut = Render(); for (int i = 6; i > 1; i--) { - cut.Find($"#manage-category-{guid} > .manage-category-up-button").Click(); + await cut.Find($"#manage-category-{guid} > .manage-category-up-button").ClickAsync(); Category().Index.Should().Be(i - 1); } diff --git a/JournalApp.Tests/SafetyPlanTests.razor b/JournalApp.Tests/SafetyPlanTests.razor index 410edae..b8186ab 100644 --- a/JournalApp.Tests/SafetyPlanTests.razor +++ b/JournalApp.Tests/SafetyPlanTests.razor @@ -13,7 +13,7 @@ Purpose = "My purpose is to finish these tests", }; - var cut = RenderComponent(); + var cut = Render(); // Assert state. cut.Instance.Plan.Purpose.Should().Be("My purpose is to finish these tests"); @@ -31,7 +31,7 @@ Purpose = "My purpose is to finish these tests", }; - var cut = RenderComponent(); + var cut = Render(); // Assert initial state. cut.Instance.Plan.Purpose.Should().Be("My purpose is to finish these tests"); @@ -42,8 +42,8 @@ cut.Instance.Plan.ProfessionalContacts = "988 (USA)"; // Leave and come back. - DisposeComponents(); - cut = RenderComponent(); + cut.Dispose(); + cut = Render(); // Assert that all changes persisted. preferenceService.SafetyPlan.Purpose.Should().Be("Actually it's puppies"); diff --git a/JournalApp/MauiProgram.cs b/JournalApp/MauiProgram.cs index 75657ea..619c7ea 100644 --- a/JournalApp/MauiProgram.cs +++ b/JournalApp/MauiProgram.cs @@ -16,9 +16,12 @@ public static MauiApp CreateMauiApp() var builder = MauiApp.CreateBuilder() .UseMauiApp() - .UseMauiCommunityToolkit() .ConfigureFonts(fonts => fonts.AddFont("Roboto-Regular.ttf", "RobotoRegular")); + #pragma warning disable CA1416 + builder.UseMauiCommunityToolkit(); + #pragma warning restore CA1416 + // Enable Blazor WebView. builder.Services.AddMauiBlazorWebView(); diff --git a/JournalApp/Pages/SafetyPlanning/SafetyPlanItem.razor b/JournalApp/Pages/SafetyPlanning/SafetyPlanItem.razor index 0dc24a3..2eb406e 100644 --- a/JournalApp/Pages/SafetyPlanning/SafetyPlanItem.razor +++ b/JournalApp/Pages/SafetyPlanning/SafetyPlanItem.razor @@ -3,14 +3,12 @@
@Subtitle -
@code { - string _text; - [CascadingParameter] IMudDialogInstance MudDialog { get; set; } [Parameter] @@ -23,19 +21,17 @@ public string Placeholder { get; set; } [Parameter] - public string Text - { - get => _text; - set - { - if (_text == value) - return; - - _text = value; - TextChanged.InvokeAsync(value); - } - } + public string Text { get; set; } = string.Empty; [Parameter] public EventCallback TextChanged { get; set; } + + async Task OnTextChanged(string value) + { + if (Text == value) + return; + + Text = value; + await TextChanged.InvokeAsync(value); + } }