// 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]) } }) }