added some tests

This commit is contained in:
2025-09-29 10:20:20 +02:00
parent 6b300dc2f5
commit 7286b9b3e8
13 changed files with 3801 additions and 21 deletions

View File

@@ -489,25 +489,27 @@ class AniWorldApp {
applyFiltersAndSort() {
let filtered = [...this.seriesData];
// Sort by missing episodes first (descending), then by name if alphabetical is enabled
// Sort based on the current sorting mode
filtered.sort((a, b) => {
// Always show series with missing episodes first
if (a.missing_episodes > 0 && b.missing_episodes === 0) return -1;
if (a.missing_episodes === 0 && b.missing_episodes > 0) return 1;
// If both have missing episodes, sort by count (descending)
if (a.missing_episodes > 0 && b.missing_episodes > 0) {
if (a.missing_episodes !== b.missing_episodes) {
return b.missing_episodes - a.missing_episodes;
}
}
// Sort alphabetically if enabled
if (this.sortAlphabetical) {
// Pure alphabetical sorting when A-Z is enabled
return (a.name || a.folder).localeCompare(b.name || b.folder);
}
} else {
// Default sorting: missing episodes first (descending), then by name
// Always show series with missing episodes first
if (a.missing_episodes > 0 && b.missing_episodes === 0) return -1;
if (a.missing_episodes === 0 && b.missing_episodes > 0) return 1;
return 0;
// If both have missing episodes, sort by count (descending)
if (a.missing_episodes > 0 && b.missing_episodes > 0) {
if (a.missing_episodes !== b.missing_episodes) {
return b.missing_episodes - a.missing_episodes;
}
}
// For series with same missing episode status, maintain stable order
return 0;
}
});
// Apply missing episodes filter
@@ -516,6 +518,7 @@ class AniWorldApp {
}
this.filteredSeriesData = filtered;
this.renderSeries();
}
renderSeries() {