aboutsummaryrefslogtreecommitdiff
path: root/internal/db/orgs_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/orgs_test.go')
-rw-r--r--internal/db/orgs_test.go57
1 files changed, 50 insertions, 7 deletions
diff --git a/internal/db/orgs_test.go b/internal/db/orgs_test.go
index 623f43f8..ecc4cfcd 100644
--- a/internal/db/orgs_test.go
+++ b/internal/db/orgs_test.go
@@ -31,6 +31,7 @@ func TestOrgs(t *testing.T) {
test func(t *testing.T, db *orgs)
}{
{"List", orgsList},
+ {"SearchByName", orgsSearchByName},
} {
t.Run(tc.name, func(t *testing.T) {
t.Cleanup(func() {
@@ -57,16 +58,11 @@ func orgsList(t *testing.T, db *orgs) {
// TODO: Use Orgs.Create to replace SQL hack when the method is available.
org1, err := usersStore.Create(ctx, "org1", "org1@example.com", CreateUserOptions{})
require.NoError(t, err)
- err = db.Exec(
- dbutil.Quote("UPDATE %s SET type = ? WHERE id = ?", "user"),
- UserTypeOrganization, org1.ID,
- ).Error
- require.NoError(t, err)
org2, err := usersStore.Create(ctx, "org2", "org2@example.com", CreateUserOptions{})
require.NoError(t, err)
err = db.Exec(
- dbutil.Quote("UPDATE %s SET type = ? WHERE id = ?", "user"),
- UserTypeOrganization, org2.ID,
+ dbutil.Quote("UPDATE %s SET type = ? WHERE id IN (?, ?)", "user"),
+ UserTypeOrganization, org1.ID, org2.ID,
).Error
require.NoError(t, err)
@@ -121,3 +117,50 @@ func orgsList(t *testing.T, db *orgs) {
})
}
}
+
+func orgsSearchByName(t *testing.T, db *orgs) {
+ ctx := context.Background()
+
+ // TODO: Use Orgs.Create to replace SQL hack when the method is available.
+ usersStore := NewUsersStore(db.DB)
+ org1, err := usersStore.Create(ctx, "org1", "org1@example.com", CreateUserOptions{FullName: "Acme Corp"})
+ require.NoError(t, err)
+ org2, err := usersStore.Create(ctx, "org2", "org2@example.com", CreateUserOptions{FullName: "Acme Corp 2"})
+ require.NoError(t, err)
+ err = db.Exec(
+ dbutil.Quote("UPDATE %s SET type = ? WHERE id IN (?, ?)", "user"),
+ UserTypeOrganization, org1.ID, org2.ID,
+ ).Error
+ require.NoError(t, err)
+
+ t.Run("search for username org1", func(t *testing.T) {
+ orgs, count, err := db.SearchByName(ctx, "G1", 1, 1, "")
+ require.NoError(t, err)
+ require.Len(t, orgs, int(count))
+ assert.Equal(t, int64(1), count)
+ assert.Equal(t, org1.ID, orgs[0].ID)
+ })
+
+ t.Run("search for username org2", func(t *testing.T) {
+ orgs, count, err := db.SearchByName(ctx, "G2", 1, 1, "")
+ require.NoError(t, err)
+ require.Len(t, orgs, int(count))
+ assert.Equal(t, int64(1), count)
+ assert.Equal(t, org2.ID, orgs[0].ID)
+ })
+
+ t.Run("search for full name acme", func(t *testing.T) {
+ orgs, count, err := db.SearchByName(ctx, "ACME", 1, 10, "")
+ require.NoError(t, err)
+ require.Len(t, orgs, int(count))
+ assert.Equal(t, int64(2), count)
+ })
+
+ t.Run("search for full name acme ORDER BY id DESC LIMIT 1", func(t *testing.T) {
+ orgs, count, err := db.SearchByName(ctx, "ACME", 1, 1, "id DESC")
+ require.NoError(t, err)
+ require.Len(t, orgs, 1)
+ assert.Equal(t, int64(2), count)
+ assert.Equal(t, org2.ID, orgs[0].ID)
+ })
+}