Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions JournalApp.Tests/CalendarTests.razor
Original file line number Diff line number Diff line change
Expand Up @@ -18,40 +18,40 @@
}

[Fact]
public void SwitchYear()
public async Task SwitchYear()
{
var cut = RenderComponent<CalendarPage>(p =>
var cut = Render<CalendarPage>(p =>
p.Add(x => x.OpenToDateString, "20000101")
);

cut.WaitForAssertion(() => cut.Find(".calendar-view"));

// 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<CalendarPage>(p =>
var cut = Render<CalendarPage>(p =>
p.Add(x => x.OpenToDateString, "20230101")
);
cut.Instance.SelectedYear.Should().Be(2023);
Expand All @@ -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.
Expand All @@ -81,7 +81,7 @@
_culture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Wednesday;
Thread.CurrentThread.CurrentCulture = _culture;

var cut = RenderComponent<CalendarPage>(p =>
var cut = Render<CalendarPage>(p =>
p.Add(x => x.OpenToDateString, "20230101")
);
cut.Instance.SelectedYear.Should().Be(2023);
Expand Down
86 changes: 43 additions & 43 deletions JournalApp.Tests/DataPointViewTests.razor
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

@code {
[Fact]
public void Mood()
public async Task Mood()
{
var category = new DataPointCategory
{
Expand All @@ -25,19 +25,19 @@
var cut = layout.FindComponent<DataPointView>();

// 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
{
Expand All @@ -58,14 +58,14 @@
var cut = layout.FindComponent<DataPointView>();

// 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);
Expand All @@ -75,7 +75,7 @@
}

[Fact]
public void Sleep()
public async Task Sleep()
{
var category = new DataPointCategory
{
Expand All @@ -87,22 +87,22 @@
var point = DataPoint.Create(day, category);
point.SleepHours = 8.5m;

var cut = RenderComponent<DataPointView>(p =>
var cut = Render<DataPointView>(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");
cut.Find(".less-sleep").HasAttribute("disabled").Should().BeTrue();
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");
Expand All @@ -111,7 +111,7 @@
}

[Fact]
public void Scale()
public async Task Scale()
{
var category = new DataPointCategory
{
Expand All @@ -122,24 +122,24 @@
var day = Day.Create(new(2024, 01, 01));
var point = DataPoint.Create(day, category);

var cut = RenderComponent<DataPointView>(p =>
var cut = Render<DataPointView>(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
{
Expand All @@ -150,27 +150,27 @@
var day = Day.Create(new(2024, 01, 01));
var point = DataPoint.Create(day, category);

var cut = RenderComponent<DataPointView>(p =>
var cut = Render<DataPointView>(p =>
p.Add(x => x.Point, point)
);

point.ScaleIndex.Should().Be(null);
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);
}
Expand All @@ -187,7 +187,7 @@
var day = Day.Create(new(2024, 01, 01));
var point = DataPoint.Create(day, category);

var cut = RenderComponent<DataPointView>(p =>
var cut = Render<DataPointView>(p =>
p.Add(x => x.Point, point)
);

Expand All @@ -208,7 +208,7 @@
var day = Day.Create(new(2024, 01, 01));
var point = DataPoint.Create(day, category);

var cut = RenderComponent<DataPointView>(p =>
var cut = Render<DataPointView>(p =>
p.Add(x => x.Point, point)
);

Expand All @@ -218,7 +218,7 @@
}

[Fact]
public void Note()
public async Task Note()
{
var category = new DataPointCategory
{
Expand All @@ -239,25 +239,25 @@

var cut = layout.FindComponent<DataPointView>();

cut.Find("button[aria-label='Edit note']").Click();
await cut.Find("button[aria-label='Edit note']").ClickAsync();

var noteEditor = layout.FindComponent<EditNoteDialog>();
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<EditNoteDialog>();
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
{
Expand Down Expand Up @@ -287,28 +287,28 @@
// 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);

point.MedicationDose.Should().Be(point.Category.MedicationDose);
}

[Fact]
public void MedicationEditDose()
public async Task MedicationEditDose()
{
var category = new DataPointCategory
{
Expand Down Expand Up @@ -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<EditDoseDialog>();
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<EditDoseDialog>();
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<EditDoseDialog>();
doseEditor.Find("input").Input("88");
layout.Find(".cancel-button").Click();
await layout.Find(".cancel-button").ClickAsync();

// Same as before
point.MedicationDose.Should().Be(99);
Expand Down Expand Up @@ -393,7 +393,7 @@
}

[Fact]
public void MedicationEditDoseDialogCloses()
public async Task MedicationEditDoseDialogCloses()
{
var category = new DataPointCategory
{
Expand All @@ -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);
}

Expand Down
Loading
Loading