Генерённые функции выдаются в порядке следования в сценарии (часть 2)

Поправлена ошибка нарушения последовательности шагов тестов, сохранённых
в базе  hashicorp/go-memdb@v1.3.2
Проявлялась в Go 1.19.
В Go 1.17, которая в требованиях - проблемы не было.
Этот коммит содержится в:
Softonik 2022-11-26 01:19:35 +03:00
родитель 279f4f6aba
коммит 2e4e7e9a27

Просмотреть файл

@ -2,6 +2,8 @@ package storage
import ( import (
"fmt" "fmt"
"sort"
"strconv"
"sync" "sync"
messages "github.com/cucumber/messages/go/v21" messages "github.com/cucumber/messages/go/v21"
@ -230,6 +232,8 @@ func (s *Storage) MustGetPickleStepResultsByPickleID(pickleID string) (psrs []mo
psrs = append(psrs, v.(models.PickleStepResult)) psrs = append(psrs, v.(models.PickleStepResult))
} }
sort.Sort(stepsSortByPickleStepID(psrs))
return psrs return psrs
} }
@ -255,9 +259,33 @@ func (s *Storage) MustGetPickleStepResultsByStatus(status models.StepResultStatu
psrs = append(psrs, v.(models.PickleStepResult)) psrs = append(psrs, v.(models.PickleStepResult))
} }
sort.Sort(stepsSortByPickleStepID(psrs))
return psrs return psrs
} }
type stepsSortByPickleStepID []models.PickleStepResult
func (s stepsSortByPickleStepID) Len() int {
return len(s)
}
func (s stepsSortByPickleStepID) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func (s stepsSortByPickleStepID) Less(i, j int) bool {
num1, err := strconv.Atoi(s[i].PickleStepID)
if err != nil {
return false
}
num2, err := strconv.Atoi(s[j].PickleStepID)
if err != nil {
return false
}
return num1 < num2
}
// MustInsertFeature will insert a feature and panic on error. // MustInsertFeature will insert a feature and panic on error.
func (s *Storage) MustInsertFeature(f *models.Feature) { func (s *Storage) MustInsertFeature(f *models.Feature) {
s.mustInsert(tableFeature, f) s.mustInsert(tableFeature, f)