(Feat): Initial Commit
Some checks failed
Build & Test / build-test (push) Has been cancelled
Build & Test / swagger-codegen-cli (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled

This commit is contained in:
2026-07-03 19:41:31 +05:30
commit 7e940c83a7
461 changed files with 45002 additions and 0 deletions

97
internal/test/fixtures/fixtures_test.go vendored Normal file
View File

@@ -0,0 +1,97 @@
package fixtures_test
import (
"database/sql"
"testing"
"allaboutapps.dev/aw/go-starter/internal/models"
"allaboutapps.dev/aw/go-starter/internal/test"
"allaboutapps.dev/aw/go-starter/internal/test/fixtures"
"github.com/aarondl/null/v8"
"github.com/aarondl/sqlboiler/v4/boil"
_ "github.com/lib/pq"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestFixturesReload(t *testing.T) {
test.WithTestDatabase(t, func(db *sql.DB) {
err := fixtures.Fixtures().User1.Reload(t.Context(), db)
require.NoError(t, err)
})
}
func TestInsert(t *testing.T) {
test.WithTestDatabase(t, func(db *sql.DB) {
userNew := models.User{
ID: "6d00d09b-fab3-43d8-a163-279fe7ba533e",
IsActive: true,
Username: null.StringFrom("userNew@example.com"),
Password: null.StringFrom("$argon2id$v=19$m=65536,t=1,p=4$RFO8ulg2c2zloG0029pAUQ$2Po6NUIhVCMm9vivVDuzo7k5KVWfZzJJfeXzC+n+row"),
Scopes: []string{"app"},
}
err := userNew.Insert(t.Context(), db, boil.Infer())
require.NoError(t, err)
})
}
func TestUpdate(t *testing.T) {
test.WithTestDatabase(t, func(db *sql.DB) {
originalUser1 := fixtures.Fixtures().User1
updatedUser1 := *originalUser1
updatedUser1.Username = null.StringFrom("user_updated@example.com")
if updatedUser1.Username == originalUser1.Username {
t.Fatalf("names match!")
}
_, err := updatedUser1.Update(t.Context(), db, boil.Infer())
if err != nil {
t.Error("failed to update")
}
// Attention, this actually mutates our user1 fixture!!!
err = originalUser1.Reload(t.Context(), db)
if err != nil {
t.Error("failed to reload")
}
if updatedUser1.Username != originalUser1.Username {
t.Fatalf("names don't match!")
}
})
// with another testdatabase:
test.WithTestDatabase(t, func(db *sql.DB) {
originalUser1 := fixtures.Fixtures().User1
// ensure our fixture is the same again!
if originalUser1.Username != null.StringFrom("user1@example.com") {
err := originalUser1.Reload(t.Context(), db)
if err != nil {
t.Error("failed to reload")
}
if originalUser1.Username != null.StringFrom("user1@example.com") {
t.Fatalf("fixture even not the same after reload!")
}
t.Fatalf("fixture was modified!")
}
})
}
func TestInsertableInterface(t *testing.T) {
var user any = &models.AppUserProfile{
UserID: "62b13d29-5c4e-420e-b991-a631d3938776",
}
_, ok := user.(fixtures.Insertable)
assert.True(t, ok, "AppUserProfile should implement the Insertable interface")
}