Fix age filtering regression (#778)

* Show filter control in loading/error
* Add performer age unit tests
* Fix addWhere regression
This commit is contained in:
WithoutPants
2020-08-31 18:17:17 +10:00
committed by GitHub
parent b437425a41
commit 16ea6abf91
5 changed files with 95 additions and 34 deletions

View File

@@ -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