Merge branch 'phase/36-person-card-tabs'
This commit is contained in:
@@ -101,6 +101,38 @@ public class AppropriatenessSimulationTests
|
||||
Assert.Contains(pupil.Items, item => item.Def == "TShirt" && item.Color == "Red" && item.Location == ItemLocations.Bag);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RedressPerson_WritesApparelChangedRows()
|
||||
{
|
||||
using var school = Open(TuesdayMorning, seed: 31);
|
||||
school.DressRules = school.DressRules with
|
||||
{
|
||||
Students = new DressRulePair(FormPolicies.Regular, ColorPolicies.NoBright),
|
||||
};
|
||||
var pupil = school.Roster!.People.First(person => person.IsStudent && person.LockerRoomId is null);
|
||||
var items = pupil.Items.ToList();
|
||||
items.Add(new InventoryItem("TShirt", "Red", 1f, ItemLocations.Worn));
|
||||
ReplaceItems(pupil, items);
|
||||
|
||||
ApparelDresser.RedressPerson(school, pupil, ApparelMode.Everyday, includeHome: false);
|
||||
|
||||
Assert.Contains(
|
||||
school.DayLog,
|
||||
row => row.PersonId == pupil.Id
|
||||
&& row.Type == PersonLogTypes.ApparelChanged
|
||||
&& row.ThingDef == "TShirt");
|
||||
var page = PersonLogBrowser.Apply(
|
||||
school.DayLog,
|
||||
pupil.Id,
|
||||
new PersonLogQuery(null, Descending: true, Page: 1, PageSize: 20),
|
||||
school.Catalog,
|
||||
"ru");
|
||||
Assert.Contains(page.Entries, entry => entry.Type == PersonLogTypes.ApparelChanged);
|
||||
Assert.Contains(
|
||||
page.Entries,
|
||||
entry => entry.Label.StartsWith("переоделся:", StringComparison.Ordinal));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PendingStrictRule_DoesNotApplyUntilNextMorning()
|
||||
{
|
||||
|
||||
@@ -99,6 +99,25 @@ public class PersonDayLogTests
|
||||
Assert.Equal("UseToilet", page.Entries[0].ThingDef);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ApparelReplaced_FlowsThroughPagedLog()
|
||||
{
|
||||
using var school = OpenEmpty(TuesdayNoon);
|
||||
var person = school.Roster!.People.First();
|
||||
school.AppendDayLog(new PersonLogEvent(person.Id, TuesdayNoon, PersonLogTypes.ApparelReplaced, "Shirt"));
|
||||
|
||||
var page = PersonLogBrowser.Apply(
|
||||
school.DayLog,
|
||||
person.Id,
|
||||
new PersonLogQuery(null, Descending: true, Page: 1, PageSize: 20),
|
||||
school.Catalog,
|
||||
"ru");
|
||||
|
||||
Assert.Single(page.Entries);
|
||||
Assert.Equal(PersonLogTypes.ApparelReplaced, page.Entries[0].Type);
|
||||
Assert.StartsWith("получил новую ", page.Entries[0].Label, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
private static void TickMinutes(School school, int minutes)
|
||||
{
|
||||
for (var i = 0; i < minutes; i++)
|
||||
|
||||
Reference in New Issue
Block a user