Files
mp-qvyun/backend/modules/commands/discover/discover_medias_test.go
2024-12-07 18:48:05 +08:00

90 lines
2.0 KiB
Go

package discover
import (
"os"
"testing"
"backend/common/media_store"
"backend/common/service/testx"
"backend/modules/medias"
"backend/providers/postgres"
. "github.com/smartystreets/goconvey/convey"
"github.com/stretchr/testify/suite"
"go.uber.org/dig"
)
type DiscoverMediasInjectParams struct {
dig.In
Svc *DiscoverMedias
}
type DiscoverMediasTestSuite struct {
suite.Suite
DiscoverMediasInjectParams
}
func Test_DiscoverMedias(t *testing.T) {
providers := testx.Default(
postgres.DefaultProvider(),
).With(
Provide,
medias.Provide,
)
testx.Serve(providers, t, func(params DiscoverMediasInjectParams) {
suite.Run(t, &DiscoverMediasTestSuite{DiscoverMediasInjectParams: params})
})
}
func (t *DiscoverMediasTestSuite) Test_ffmpegVideoToM3U8() {
Convey("Test_ffmpegVideoToM3U8", t.T(), func() {
output := "/projects/mp-qvyun/backend/fixtures/medias/abc"
os.RemoveAll(output)
err := t.Svc.ffmpegVideoToM3U8("/projects/mp-qvyun/backend/fixtures/medias/video.mp4", output)
So(err, ShouldBeNil)
})
}
func (t *DiscoverMediasTestSuite) Test_item() {
Convey("Test_item", t.T(), func() {
items := []int{}
defer func() {
for _, item := range items {
t.T().Logf("Recovered in f %d", item)
}
}()
for i := 0; i < 4; i++ {
items = append(items, i)
}
})
}
func (t *DiscoverMediasTestSuite) TestDiscoverMedias_getMediaDuration() {
Convey("TestDiscoverMedias_getMediaDuration", t.T(), func() {
duration, err := t.Svc.getMediaDuration("/projects/mp-qvyun/backend/fixtures/medias/video.mp4")
So(err, ShouldBeNil)
t.T().Logf("Duration: %d", duration)
})
}
func (t *DiscoverMediasTestSuite) Test_globMedias() {
Convey("Test_globMedias", t.T(), func() {
store, err := media_store.NewStore("/projects/mp-qvyun/backend/fixtures/processed")
So(err, ShouldBeNil)
hash := "eed0fa530f95531f9fac2a962dfbc7ea"
store.Update(media_store.VideoInfo{
Hash: hash,
Name: "video",
Duration: 10,
})
info, ok := store.HashExists(hash)
So(ok, ShouldBeTrue)
So(info.Name, ShouldEqual, "video")
})
}