api/handler/handler_test.go

51 lines
1.0 KiB
Go

package handler
import (
"context"
"testing"
"time"
"github.com/stretchr/testify/assert"
"gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil-api/config"
"gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil-api/lib/log"
db_mock "gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil-api/mocks/db"
"gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil-api/models"
)
var testConfig config.Config
func init() {
testConfig = config.TestConfig()
}
func TestGetNewVideos(t *testing.T) {
// Arrange
l := log.NewNopLogger()
handler := New(l, &db_mock.DBMock{
GetNewVideosFunc: func(ctx context.Context, username string) ([]models.Video, error) {
return []models.Video{
{
ID: "test",
ChannelName: "test",
Title: "test",
PublishedTime: time.Now(),
WatchTime: nil,
},
}, nil
},
})
// Act
resp, err := handler.GetNewVideos(context.TODO(), "username")
// Assert
if assert.NoError(t, err) {
if assert.NotNil(t, resp) {
assert.Equal(t, resp[0].ID, "test")
assert.Equal(t, resp[0].Title, "test")
}
}
}