node build fixed
This commit is contained in:
80
seanime-2.9.10/internal/library/anime/test_helpers.go
Normal file
80
seanime-2.9.10/internal/library/anime/test_helpers.go
Normal file
@@ -0,0 +1,80 @@
|
||||
package anime
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type MockHydratedLocalFileOptions struct {
|
||||
FilePath string
|
||||
LibraryPath string
|
||||
MediaId int
|
||||
MetadataEpisode int
|
||||
MetadataAniDbEpisode string
|
||||
MetadataType LocalFileType
|
||||
}
|
||||
|
||||
func MockHydratedLocalFile(opts MockHydratedLocalFileOptions) *LocalFile {
|
||||
lf := NewLocalFile(opts.FilePath, opts.LibraryPath)
|
||||
lf.MediaId = opts.MediaId
|
||||
lf.Metadata = &LocalFileMetadata{
|
||||
AniDBEpisode: opts.MetadataAniDbEpisode,
|
||||
Episode: opts.MetadataEpisode,
|
||||
Type: opts.MetadataType,
|
||||
}
|
||||
return lf
|
||||
}
|
||||
|
||||
// MockHydratedLocalFiles creates a slice of LocalFiles based on the provided options
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// MockHydratedLocalFiles(
|
||||
// MockHydratedLocalFileOptions{
|
||||
// FilePath: "/mnt/anime/One Piece/One Piece - 1070.mkv",
|
||||
// LibraryPath: "/mnt/anime/",
|
||||
// MetadataEpisode: 1070,
|
||||
// MetadataAniDbEpisode: "1070",
|
||||
// MetadataType: LocalFileTypeMain,
|
||||
// },
|
||||
// MockHydratedLocalFileOptions{
|
||||
// ...
|
||||
// },
|
||||
// )
|
||||
func MockHydratedLocalFiles(opts ...[]MockHydratedLocalFileOptions) []*LocalFile {
|
||||
lfs := make([]*LocalFile, 0, len(opts))
|
||||
for _, opt := range opts {
|
||||
for _, o := range opt {
|
||||
lfs = append(lfs, MockHydratedLocalFile(o))
|
||||
}
|
||||
}
|
||||
return lfs
|
||||
}
|
||||
|
||||
type MockHydratedLocalFileWrapperOptionsMetadata struct {
|
||||
MetadataEpisode int
|
||||
MetadataAniDbEpisode string
|
||||
MetadataType LocalFileType
|
||||
}
|
||||
|
||||
// MockGenerateHydratedLocalFileGroupOptions generates a slice of MockHydratedLocalFileOptions based on a template string and metadata
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// MockGenerateHydratedLocalFileGroupOptions("/mnt/anime/", "One Piece/One Piece - %ep.mkv", 21, []MockHydratedLocalFileWrapperOptionsMetadata{
|
||||
// {MetadataEpisode: 1070, MetadataAniDbEpisode: "1070", MetadataType: LocalFileTypeMain},
|
||||
// })
|
||||
func MockGenerateHydratedLocalFileGroupOptions(libraryPath string, template string, mId int, m []MockHydratedLocalFileWrapperOptionsMetadata) []MockHydratedLocalFileOptions {
|
||||
opts := make([]MockHydratedLocalFileOptions, 0, len(m))
|
||||
for _, metadata := range m {
|
||||
opts = append(opts, MockHydratedLocalFileOptions{
|
||||
FilePath: strings.ReplaceAll(template, "%ep", strconv.Itoa(metadata.MetadataEpisode)),
|
||||
LibraryPath: libraryPath,
|
||||
MediaId: mId,
|
||||
MetadataEpisode: metadata.MetadataEpisode,
|
||||
MetadataAniDbEpisode: metadata.MetadataAniDbEpisode,
|
||||
MetadataType: metadata.MetadataType,
|
||||
})
|
||||
}
|
||||
return opts
|
||||
}
|
||||
Reference in New Issue
Block a user