diff options
author | Joe Chen <jc@unknwon.io> | 2023-02-07 23:39:00 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-07 23:39:00 +0800 |
commit | 133b9d90441008ee175e1f8e6369e06309e1392a (patch) | |
tree | 70f29798055962f6700ba6a93b023a8328a5eff4 /internal/db/repos_test.go | |
parent | 7c453d5b3632a6bbdbd99205c518303a9e25a4e1 (diff) |
refactor(db): finish migrate methods off `user.go` (#7337)
Diffstat (limited to 'internal/db/repos_test.go')
-rw-r--r-- | internal/db/repos_test.go | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/internal/db/repos_test.go b/internal/db/repos_test.go index 09289729..d6bfcb0d 100644 --- a/internal/db/repos_test.go +++ b/internal/db/repos_test.go @@ -85,7 +85,7 @@ func TestRepos(t *testing.T) { } t.Parallel() - tables := []any{new(Repository), new(Access)} + tables := []any{new(Repository), new(Access), new(Watch), new(User), new(EmailAddress), new(Star)} db := &repos{ DB: dbtest.NewDB(t, "repos", tables...), } @@ -97,7 +97,9 @@ func TestRepos(t *testing.T) { {"Create", reposCreate}, {"GetByCollaboratorID", reposGetByCollaboratorID}, {"GetByCollaboratorIDWithAccessMode", reposGetByCollaboratorIDWithAccessMode}, + {"GetByID", reposGetByID}, {"GetByName", reposGetByName}, + {"Star", reposStar}, {"Touch", reposTouch}, } { t.Run(tc.name, func(t *testing.T) { @@ -154,6 +156,7 @@ func reposCreate(t *testing.T, db *repos) { repo, err = db.GetByName(ctx, repo.OwnerID, repo.Name) require.NoError(t, err) assert.Equal(t, db.NowFunc().Format(time.RFC3339), repo.Created.UTC().Format(time.RFC3339)) + assert.Equal(t, 1, repo.NumWatches) // The owner is watching the repo by default. } func reposGetByCollaboratorID(t *testing.T, db *repos) { @@ -214,6 +217,21 @@ func reposGetByCollaboratorIDWithAccessMode(t *testing.T, db *repos) { assert.Equal(t, AccessModeAdmin, accessModes[repo2.ID]) } +func reposGetByID(t *testing.T, db *repos) { + ctx := context.Background() + + repo1, err := db.Create(ctx, 1, CreateRepoOptions{Name: "repo1"}) + require.NoError(t, err) + + got, err := db.GetByID(ctx, repo1.ID) + require.NoError(t, err) + assert.Equal(t, repo1.Name, got.Name) + + _, err = db.GetByID(ctx, 404) + wantErr := ErrRepoNotExist{args: errutil.Args{"repoID": int64(404)}} + assert.Equal(t, wantErr, err) +} + func reposGetByName(t *testing.T, db *repos) { ctx := context.Background() @@ -232,6 +250,27 @@ func reposGetByName(t *testing.T, db *repos) { assert.Equal(t, wantErr, err) } +func reposStar(t *testing.T, db *repos) { + ctx := context.Background() + + repo1, err := db.Create(ctx, 1, CreateRepoOptions{Name: "repo1"}) + require.NoError(t, err) + usersStore := NewUsersStore(db.DB) + alice, err := usersStore.Create(ctx, "alice", "alice@example.com", CreateUserOptions{}) + require.NoError(t, err) + + err = db.Star(ctx, alice.ID, repo1.ID) + require.NoError(t, err) + + repo1, err = db.GetByID(ctx, repo1.ID) + require.NoError(t, err) + assert.Equal(t, 1, repo1.NumStars) + + alice, err = usersStore.GetByID(ctx, alice.ID) + require.NoError(t, err) + assert.Equal(t, 1, alice.NumStars) +} + func reposTouch(t *testing.T, db *repos) { ctx := context.Background() |