Swipe Issues (#1745)
* Updated theme support to be able to customize the tile color dynamically from a theme via --tile-color. In addition, --theme-color will update apple-mobile-web-app-status-bar-style as well as the non-apple variants * Removed --manga-reader-bg-color as it wasn't used anywhere. Fixed double pagination on swipe. * Cleaned up some dead threshold code for swipe. * Started refactoring tests to use an abstract test class. Stopping because I should do on the .net 7 branch to avoid large merge conflicts. Tests need to be re-designed so they can run in parallel. * Fixed a bug in reading lists where when deleting an item, order could be miscalculated. * Started adding new information for stat service. Refactored time spent reading to be more accurate by taking average time against how much of the chapter the user has read. * Hooked up total time reading at server stat level. Don't show fancy graphs on mobile. * Added new stats for v0.7 * Added a test for Clearing want to read * Fixed a few tests that weren't resetting state between runs * Fixed some broken unit tests * Ensure all Series queries sort by a case invariant string. * Added more aggressive caching of images. This will result in a min delay on pages after a cover is changed. * Fixed a bug where if during new word count calculation, new word count is zero, restoring the old count wasn't working. * Cleaned up some of the code for getting time estimates * Fixed a bug where triggering swipe right wasn't working when there was no scroll * Delete the temp folder for creating a download after a full zip is created.
This commit is contained in:
parent
3d6de68089
commit
549e52b458
26 changed files with 488 additions and 339 deletions
|
@ -181,6 +181,96 @@ public class ReadingListServiceTests
|
|||
Assert.Equal(2, readingList.Items.Single(i => i.ChapterId == 2).Order);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task UpdateReadingListItemPosition_MoveLastToFirst_TwoItemsShouldShift_ThenDeleteSecond_OrderShouldBeCorrect()
|
||||
{
|
||||
await ResetDb();
|
||||
_context.AppUser.Add(new AppUser()
|
||||
{
|
||||
UserName = "majora2007",
|
||||
ReadingLists = new List<ReadingList>(),
|
||||
Libraries = new List<Library>()
|
||||
{
|
||||
new Library()
|
||||
{
|
||||
Name = "Test LIb",
|
||||
Type = LibraryType.Book,
|
||||
Series = new List<Series>()
|
||||
{
|
||||
new Series()
|
||||
{
|
||||
Name = "Test",
|
||||
Metadata = DbFactory.SeriesMetadata(new List<CollectionTag>()),
|
||||
Volumes = new List<Volume>()
|
||||
{
|
||||
new Volume()
|
||||
{
|
||||
Name = "0",
|
||||
Chapters = new List<Chapter>()
|
||||
{
|
||||
new Chapter()
|
||||
{
|
||||
Number = "1",
|
||||
AgeRating = AgeRating.Everyone,
|
||||
},
|
||||
new Chapter()
|
||||
{
|
||||
Number = "2",
|
||||
AgeRating = AgeRating.X18Plus
|
||||
},
|
||||
new Chapter()
|
||||
{
|
||||
Number = "3",
|
||||
AgeRating = AgeRating.X18Plus
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync("majora2007", AppUserIncludes.ReadingLists);
|
||||
var readingList = new ReadingList();
|
||||
user.ReadingLists = new List<ReadingList>()
|
||||
{
|
||||
readingList
|
||||
};
|
||||
|
||||
// Existing (order, chapterId): (0, 1), (1, 2), (2, 3)
|
||||
await _readingListService.AddChaptersToReadingList(1, new List<int>() {1, 2, 3}, readingList);
|
||||
await _unitOfWork.CommitAsync();
|
||||
Assert.Equal(3, readingList.Items.Count);
|
||||
|
||||
// From 3 to 1
|
||||
// New (order, chapterId): (0, 3), (1, 2), (2, 1)
|
||||
await _readingListService.UpdateReadingListItemPosition(new UpdateReadingListPosition()
|
||||
{
|
||||
FromPosition = 2, ToPosition = 0, ReadingListId = 1, ReadingListItemId = 3
|
||||
});
|
||||
|
||||
|
||||
|
||||
Assert.Equal(3, readingList.Items.Count);
|
||||
Assert.Equal(0, readingList.Items.Single(i => i.ChapterId == 3).Order);
|
||||
Assert.Equal(1, readingList.Items.Single(i => i.ChapterId == 1).Order);
|
||||
Assert.Equal(2, readingList.Items.Single(i => i.ChapterId == 2).Order);
|
||||
|
||||
// New (order, chapterId): (0, 3), (2, 1): Delete 2nd item
|
||||
await _readingListService.DeleteReadingListItem(new UpdateReadingListPosition()
|
||||
{
|
||||
ReadingListId = 1, ReadingListItemId = readingList.Items.Single(i => i.ChapterId == 2).Id
|
||||
});
|
||||
|
||||
Assert.Equal(2, readingList.Items.Count);
|
||||
Assert.Equal(0, readingList.Items.Single(i => i.ChapterId == 3).Order);
|
||||
Assert.Equal(1, readingList.Items.Single(i => i.ChapterId == 1).Order);
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue