2024-04-27 13:11:03 -07:00
|
|
|
package repository_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"git.jamestombleson.com/jtom38/newsbot-api/internal/repository"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestCreateDiscordWebHookRecord(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
created, err := r.Create(context.Background(), 999, "www.discord.com/bad/webhook", "Unit Testing", "memes", true)
|
2024-04-27 13:11:03 -07:00
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if created != 1 {
|
|
|
|
t.Log("failed to create the record")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDiscordWebHookGetById(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
ctx := context.Background()
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
created, err := r.Create(ctx, 999, "www.discord.com/bad/webhook", "Unit Testing", "memes", true)
|
2024-04-27 13:11:03 -07:00
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if created != 1 {
|
|
|
|
t.Log("failed to create the record")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
item, err := r.GetById(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item.ID != 1 {
|
|
|
|
t.Log("got the wrong record back")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDiscordWebHookGetByUrl(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
_, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", "Unit Testing", "memes", true)
|
2024-04-27 13:11:03 -07:00
|
|
|
item, err := r.GetByUrl(ctx, "www.discord.com/bad/webhook")
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item.Url != "www.discord.com/bad/webhook" {
|
|
|
|
t.Log("got the wrong record back")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDiscordWebHookListByServerName(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
serverName := "Unit Testing"
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
_, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, "memes", true)
|
2024-04-27 13:11:03 -07:00
|
|
|
|
|
|
|
item, err := r.ListByServerName(ctx, serverName)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item[0].Server != serverName {
|
|
|
|
t.Log("got the wrong record back")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDiscordWebHookListByServerAndChannel(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
serverName := "Unit Testing"
|
|
|
|
channel := "memes"
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
_, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, true)
|
2024-04-27 13:11:03 -07:00
|
|
|
|
|
|
|
item, err := r.ListByServerAndChannel(ctx, serverName, channel)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item[0].Server != serverName {
|
|
|
|
t.Log("got the wrong wrong server back")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item[0].Channel != channel {
|
|
|
|
t.Log("got the wrong channel back")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDiscordWebHookEnableRecord(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
serverName := "Unit Testing"
|
|
|
|
channel := "memes"
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
_, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, false)
|
2024-04-27 13:11:03 -07:00
|
|
|
|
|
|
|
item, err := r.GetById(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item.Enabled != false {
|
|
|
|
t.Log("the initial record was created wrong")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
_, err = r.Enable(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
updated, err := r.GetById(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item.Enabled == updated.Enabled {
|
|
|
|
t.Log("failed to update the enabled value")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDiscordWebHookDisableRecord(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
serverName := "Unit Testing"
|
|
|
|
channel := "memes"
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
_, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, true)
|
2024-04-27 13:11:03 -07:00
|
|
|
|
|
|
|
item, err := r.GetById(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item.Enabled != true {
|
|
|
|
t.Log("the initial record was created wrong")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
_, err = r.Disable(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
updated, err := r.GetById(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
if item.Enabled == updated.Enabled {
|
|
|
|
t.Log("failed to update the enabled value")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDiscordWebHookSoftDelete(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
serverName := "Unit Testing"
|
|
|
|
channel := "memes"
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
_, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, true)
|
2024-04-27 13:11:03 -07:00
|
|
|
_, err = r.SoftDelete(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
updated, _ := r.GetById(ctx, 1)
|
|
|
|
t.Log(updated.DeletedAt)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDiscordWebHookRestore(t *testing.T) {
|
|
|
|
db, err := setupInMemoryDb()
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
serverName := "Unit Testing"
|
|
|
|
channel := "memes"
|
|
|
|
timeZero := time.Time{}
|
|
|
|
|
|
|
|
r := repository.NewDiscordWebHookRepository(db)
|
2024-05-04 11:58:35 -07:00
|
|
|
_, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, true)
|
2024-04-27 13:11:03 -07:00
|
|
|
item, _ := r.GetById(ctx, 1)
|
|
|
|
if item.DeletedAt != timeZero {
|
|
|
|
t.Log("DeletedAt was not zero")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
_, _ = r.SoftDelete(ctx, 1)
|
|
|
|
softDeleted, _ := r.GetById(ctx, 1)
|
|
|
|
if softDeleted.ID != 1 {
|
|
|
|
t.Log("record went boom")
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
_, err = r.Restore(ctx, 1)
|
|
|
|
if err != nil {
|
|
|
|
t.Log(err)
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
|
|
|
|
updated, _ := r.GetById(ctx, 1)
|
|
|
|
t.Log(updated.DeletedAt)
|
|
|
|
}
|