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) created, err := r.Create(context.Background(), 999, "www.discord.com/bad/webhook", "Unit Testing", "memes", true) 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) created, err := r.Create(ctx, 999, "www.discord.com/bad/webhook", "Unit Testing", "memes", true) 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) _, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", "Unit Testing", "memes", true) 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) _, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, "memes", true) 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) _, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, true) 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) _, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, false) 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) _, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, true) 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) _, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, true) _, 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) _, _ = r.Create(ctx, 999, "www.discord.com/bad/webhook", serverName, channel, true) 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) }