lens @ 05a8dbf46792adfef007a0ffbcb654026db036fa

 1//go:build integration
 2
 3package sql
 4
 5import (
 6	"context"
 7	"testing"
 8
 9	"github.com/google/go-cmp/cmp"
10
11	"git.sr.ht/~gabrielgio/img/pkg/database/repository"
12)
13
14func TestCreate(t *testing.T) {
15	t.Parallel()
16	db, tearDown := setup(t)
17	defer tearDown()
18
19	userRepository := NewUserRepository(db)
20
21	id, err := userRepository.Create(context.Background(), &repository.CreateUser{
22		Username: "new_username",
23		Name:     "new_name",
24	})
25	if err != nil {
26		t.Fatalf("Error creating: %s", err.Error())
27	}
28
29	got, err := userRepository.Get(context.Background(), id)
30	if err != nil {
31		t.Fatalf("Error getting: %s", err.Error())
32	}
33	want := &repository.User{
34		ID:       id,
35		Username: "new_username",
36		Name:     "new_name",
37	}
38
39	if diff := cmp.Diff(want, got); diff != "" {
40		t.Errorf("%s() mismatch (-want +got):\n%s", "Update", diff)
41	}
42}
43
44func TestUpdate(t *testing.T) {
45	t.Parallel()
46	db, tearDown := setup(t)
47	defer tearDown()
48
49	userRepository := NewUserRepository(db)
50
51	id, err := userRepository.Create(context.Background(), &repository.CreateUser{
52		Username: "username",
53		Name:     "name",
54	})
55	if err != nil {
56		t.Fatalf("Error creating user: %s", err.Error())
57	}
58
59	err = userRepository.Update(context.Background(), id, &repository.UpdateUser{
60		Username: "new_username",
61		Name:     "new_name",
62	})
63	if err != nil {
64		t.Fatalf("Error update user: %s", err.Error())
65	}
66
67	got, err := userRepository.Get(context.Background(), 1)
68	if err != nil {
69		t.Fatalf("Error getting user: %s", err.Error())
70	}
71	want := &repository.User{
72		ID:       id,
73		Username: "new_username",
74		Name:     "new_name",
75	}
76
77	if diff := cmp.Diff(want, got); diff != "" {
78		t.Errorf("%s() mismatch (-want +got):\n%s", "Update", diff)
79	}
80}