mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Fix age filtering regression (#778)
* Show filter control in loading/error * Add performer age unit tests * Fix addWhere regression
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"database/sql"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
@@ -207,6 +208,46 @@ func TestPerformerDestroyPerformerImage(t *testing.T) {
|
||||
assert.Nil(t, storedImage)
|
||||
}
|
||||
|
||||
func TestPerformerQueryAge(t *testing.T) {
|
||||
const age = 19
|
||||
ageCriterion := models.IntCriterionInput{
|
||||
Value: age,
|
||||
Modifier: models.CriterionModifierEquals,
|
||||
}
|
||||
|
||||
verifyPerformerAge(t, ageCriterion)
|
||||
|
||||
ageCriterion.Modifier = models.CriterionModifierNotEquals
|
||||
verifyPerformerAge(t, ageCriterion)
|
||||
|
||||
ageCriterion.Modifier = models.CriterionModifierGreaterThan
|
||||
verifyPerformerAge(t, ageCriterion)
|
||||
|
||||
ageCriterion.Modifier = models.CriterionModifierLessThan
|
||||
verifyPerformerAge(t, ageCriterion)
|
||||
}
|
||||
|
||||
func verifyPerformerAge(t *testing.T, ageCriterion models.IntCriterionInput) {
|
||||
qb := models.NewPerformerQueryBuilder()
|
||||
performerFilter := models.PerformerFilterType{
|
||||
Age: &ageCriterion,
|
||||
}
|
||||
|
||||
performers, _ := qb.Query(&performerFilter, nil)
|
||||
|
||||
now := time.Now()
|
||||
for _, performer := range performers {
|
||||
bd := performer.Birthdate.String
|
||||
d, _ := time.Parse("2006-01-02", bd)
|
||||
age := now.Year() - d.Year()
|
||||
if now.YearDay() < d.YearDay() {
|
||||
age = age - 1
|
||||
}
|
||||
|
||||
verifyInt(t, age, ageCriterion)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO Update
|
||||
// TODO Destroy
|
||||
// TODO Find
|
||||
|
||||
Reference in New Issue
Block a user