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") }) }