nidus-sync/sql/user_by_username.bob_test.go
Eli Ribble 486c148bf7
Add user sessions and login
This isn't quite perfect, but gets much of the hard work done.
2025-11-05 17:15:33 +00:00

139 lines
3.5 KiB
Go

// Code generated by BobGen psql v0.41.1. DO NOT EDIT.
// This file is meant to be re-generated in place and/or deleted at any time.
package sql
import (
"context"
"fmt"
"strings"
"testing"
"github.com/google/go-cmp/cmp"
"github.com/stephenafamo/bob"
"github.com/stephenafamo/bob/dialect/psql"
testutils "github.com/stephenafamo/bob/test/utils"
)
func TestUserByUsername(t *testing.T) {
t.Run("Base", func(t *testing.T) {
var sb strings.Builder
query := UserByUsername(random_string(nil))
if _, err := query.WriteQuery(t.Context(), &sb, 1); err != nil {
t.Fatal(err)
}
if diff := cmp.Diff(userByUsernameSQL, sb.String()); diff != "" {
t.Fatalf("unexpected result (-got +want):\n%s", diff)
}
})
t.Run("Mod", func(t *testing.T) {
var sb strings.Builder
query := UserByUsername(random_string(nil))
if _, err := psql.Select(query).WriteQuery(t.Context(), &sb, 1); err != nil {
t.Fatal(err)
}
queryDiff, err := testutils.QueryDiff(userByUsernameSQL, sb.String(), formatQuery)
if err != nil {
t.Fatal(err)
}
if queryDiff != "" {
fmt.Println(sb.String())
t.Fatalf("unexpected result (-got +want):\n%s", queryDiff)
}
})
t.Run("Scanning", func(t *testing.T) {
if testDB == nil {
t.Skip("skipping test, no DSN provided")
}
ctxTx, cancel := context.WithCancel(t.Context())
defer cancel()
tx, err := testDB.Begin(ctxTx)
if err != nil {
t.Fatalf("Error starting transaction: %v", err)
}
defer func() {
if err := tx.Rollback(ctxTx); err != nil {
t.Fatalf("Error rolling back transaction: %v", err)
}
}()
query, args, err := bob.Build(ctxTx, psql.Select(UserByUsername(random_string(nil))))
if err != nil {
t.Fatal(err)
}
rows, err := tx.QueryContext(ctxTx, query, args...)
if err != nil {
t.Fatal(err)
}
defer rows.Close()
columns, err := rows.Columns()
if err != nil {
t.Fatal(err)
}
if len(columns) != 12 {
t.Fatalf("expected %d columns, got %d", 12, len(columns))
}
if columns[0] != "id" {
t.Fatalf("expected column %d to be %s, got %s", 0, "id", columns[0])
}
if columns[1] != "arcgis_access_token" {
t.Fatalf("expected column %d to be %s, got %s", 1, "arcgis_access_token", columns[1])
}
if columns[2] != "arcgis_license" {
t.Fatalf("expected column %d to be %s, got %s", 2, "arcgis_license", columns[2])
}
if columns[3] != "arcgis_refresh_token" {
t.Fatalf("expected column %d to be %s, got %s", 3, "arcgis_refresh_token", columns[3])
}
if columns[4] != "arcgis_refresh_token_expires" {
t.Fatalf("expected column %d to be %s, got %s", 4, "arcgis_refresh_token_expires", columns[4])
}
if columns[5] != "arcgis_role" {
t.Fatalf("expected column %d to be %s, got %s", 5, "arcgis_role", columns[5])
}
if columns[6] != "display_name" {
t.Fatalf("expected column %d to be %s, got %s", 6, "display_name", columns[6])
}
if columns[7] != "email" {
t.Fatalf("expected column %d to be %s, got %s", 7, "email", columns[7])
}
if columns[8] != "organization_id" {
t.Fatalf("expected column %d to be %s, got %s", 8, "organization_id", columns[8])
}
if columns[9] != "username" {
t.Fatalf("expected column %d to be %s, got %s", 9, "username", columns[9])
}
if columns[10] != "password_hash_type" {
t.Fatalf("expected column %d to be %s, got %s", 10, "password_hash_type", columns[10])
}
if columns[11] != "password_hash" {
t.Fatalf("expected column %d to be %s, got %s", 11, "password_hash", columns[11])
}
})
}