fix: make sure projects are correctly sorted

This commit is contained in:
kolaente 2023-04-03 15:36:47 +02:00
parent 353279cbff
commit db3c7aa8b0
Signed by untrusted user: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 8 additions and 15 deletions

View File

@ -182,12 +182,6 @@ func (p *Project) ReadAll(s *xorm.Session, a web.Auth, search string, page int,
return nil, 0, 0, err
}
// FIXME: I wonder if we could get rid of this extra loop?
allProjects := make(map[int64]*Project, len(prs))
for _, p := range prs {
allProjects[p.ID] = p
}
/////////////////
// Saved Filters
@ -197,7 +191,7 @@ func (p *Project) ReadAll(s *xorm.Session, a web.Auth, search string, page int,
}
if savedFiltersProject != nil {
allProjects[savedFiltersProject.ID] = savedFiltersProject
prs = append(prs, savedFiltersProject)
}
/////////////////
@ -210,12 +204,7 @@ func (p *Project) ReadAll(s *xorm.Session, a web.Auth, search string, page int,
//////////////////////////
// Putting it all together
projectsResult := []*Project{}
for _, p := range allProjects {
projectsResult = append(projectsResult, p)
}
return projectsResult, resultCount, totalItems, err
return prs, resultCount, totalItems, err
}
// ReadOne gets one project by its ID

View File

@ -319,10 +319,12 @@ func TestProject_ReadAll(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, reflect.TypeOf(projects3).Kind(), reflect.Slice)
ls := projects3.([]*Project)
assert.Equal(t, 23, len(ls))
assert.Equal(t, 25, len(ls))
assert.Equal(t, int64(3), ls[0].ID) // Project 3 has a position of 1 and should be sorted first
assert.Equal(t, int64(1), ls[1].ID)
assert.Equal(t, int64(6), ls[2].ID)
assert.Equal(t, int64(-1), ls[23].ID)
assert.Equal(t, int64(-3), ls[24].ID)
_ = s.Close()
})
t.Run("projects for nonexistant user", func(t *testing.T) {
@ -344,8 +346,10 @@ func TestProject_ReadAll(t *testing.T) {
assert.NoError(t, err)
ls := projects3.([]*Project)
assert.Equal(t, 1, len(ls))
assert.Equal(t, 3, len(ls))
assert.Equal(t, int64(10), ls[0].ID)
assert.Equal(t, int64(-1), ls[1].ID)
assert.Equal(t, int64(-3), ls[2].ID)
_ = s.Close()
})
}