123 lines
3.2 KiB
Go
123 lines
3.2 KiB
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/itsscb/df/util"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func createRandomReturnsLog(t *testing.T) ReturnsLog {
|
|
|
|
ret := createRandomReturn(t)
|
|
mail := createRandomMail(t)
|
|
|
|
creator := util.RandomUser()
|
|
|
|
arg := CreateReturnsLogParams{
|
|
Returnid: ret.ID,
|
|
Mailid: mail.ID,
|
|
Status: sql.NullString{
|
|
Valid: true,
|
|
String: util.RandomString(7),
|
|
},
|
|
Creator: creator,
|
|
Changer: creator,
|
|
}
|
|
|
|
returnsLog, err := testQueries.CreateReturnsLog(context.Background(), arg)
|
|
require.NoError(t, err)
|
|
require.NotEmpty(t, returnsLog)
|
|
|
|
require.Equal(t, arg.Returnid, returnsLog.ReturnID)
|
|
require.Equal(t, arg.Mailid, returnsLog.MailID)
|
|
require.Equal(t, arg.Status, returnsLog.Status)
|
|
require.Equal(t, arg.Creator, returnsLog.Creator)
|
|
|
|
require.NotZero(t, returnsLog.ID)
|
|
require.NotZero(t, returnsLog.Created)
|
|
|
|
return returnsLog
|
|
}
|
|
|
|
func TestCreateReturnsLog(t *testing.T) {
|
|
createRandomReturnsLog(t)
|
|
}
|
|
|
|
func TestGetReturnsLog(t *testing.T) {
|
|
newReturnsLog := createRandomReturnsLog(t)
|
|
require.NotEmpty(t, newReturnsLog)
|
|
|
|
returnsLog, err := testQueries.GetReturnsLog(context.Background(), newReturnsLog.ID)
|
|
require.NoError(t, err)
|
|
require.NotEmpty(t, returnsLog)
|
|
|
|
require.Equal(t, newReturnsLog.ReturnID, returnsLog.ReturnID)
|
|
require.Equal(t, newReturnsLog.MailID, returnsLog.MailID)
|
|
require.Equal(t, newReturnsLog.Status, returnsLog.Status)
|
|
require.Equal(t, newReturnsLog.Created, returnsLog.Created)
|
|
require.Equal(t, newReturnsLog.Changer, returnsLog.Changer)
|
|
require.Equal(t, newReturnsLog.Changed, returnsLog.Changed)
|
|
require.Equal(t, newReturnsLog.Creator, returnsLog.Creator)
|
|
|
|
require.WithinDuration(t, newReturnsLog.Created, returnsLog.Created, time.Second)
|
|
}
|
|
|
|
func TestDeleteReturnsLog(t *testing.T) {
|
|
returnsLog1 := createRandomReturnsLog(t)
|
|
err := testQueries.DeleteReturnsLog(context.Background(), returnsLog1.ID)
|
|
require.NoError(t, err)
|
|
|
|
returnsLog2, err := testQueries.GetReturnsLog(context.Background(), returnsLog1.ID)
|
|
require.Error(t, err)
|
|
require.EqualError(t, err, sql.ErrNoRows.Error())
|
|
require.Empty(t, returnsLog2)
|
|
}
|
|
|
|
func TestUpdateReturnsLog(t *testing.T) {
|
|
returnsLog1 := createRandomReturnsLog(t)
|
|
require.NotEmpty(t, returnsLog1)
|
|
|
|
status := util.RandomString(15)
|
|
|
|
arg := UpdateReturnsLogParams{
|
|
ID: returnsLog1.ID,
|
|
Status: sql.NullString{
|
|
String: status,
|
|
Valid: true,
|
|
},
|
|
}
|
|
|
|
returnsLog2, err := testQueries.UpdateReturnsLog(context.Background(), arg)
|
|
require.NoError(t, err)
|
|
require.NotEmpty(t, returnsLog2)
|
|
|
|
require.Equal(t, returnsLog1.ID, returnsLog2.ID)
|
|
require.Equal(t, returnsLog2.ReturnID, returnsLog1.ReturnID)
|
|
require.NotEqual(t, returnsLog1.Status, returnsLog2.Status)
|
|
require.NotEqual(t, returnsLog1.Changed, returnsLog2.Changed)
|
|
require.NotEqual(t, returnsLog1.Changer, returnsLog2.Changer)
|
|
}
|
|
|
|
func TestListReturnsLogs(t *testing.T) {
|
|
for i := 0; i < 10; i++ {
|
|
createRandomReturnsLog(t)
|
|
}
|
|
|
|
arg := ListReturnsLogsParams{
|
|
Limit: 5,
|
|
Offset: 5,
|
|
}
|
|
|
|
returnsLogs, err := testQueries.ListReturnsLogs(context.Background(), arg)
|
|
require.NoError(t, err)
|
|
require.Len(t, returnsLogs, 5)
|
|
|
|
for _, returnsLog := range returnsLogs {
|
|
require.NotEmpty(t, returnsLog)
|
|
}
|
|
}
|