Documentation
¶
Index ¶
- func AuthenticatedContext(user *model.User, profile *model.Profile) context.Context
- func CreateTestExpense(t *testing.T, db *sqlx.DB, spaceID, userID, desc string, ...) *model.Expense
- func CreateTestInvitation(t *testing.T, db *sqlx.DB, spaceID, inviterID, email string) *model.SpaceInvitation
- func CreateTestListItem(t *testing.T, db *sqlx.DB, listID, name, createdBy string) *model.ListItem
- func CreateTestMoneyAccount(t *testing.T, db *sqlx.DB, spaceID, name, createdBy string) *model.MoneyAccount
- func CreateTestPaymentMethod(t *testing.T, db *sqlx.DB, spaceID, name string, typ model.PaymentMethodType, ...) *model.PaymentMethod
- func CreateTestProfile(t *testing.T, db *sqlx.DB, userID, name string) *model.Profile
- func CreateTestShoppingList(t *testing.T, db *sqlx.DB, spaceID, name string) *model.ShoppingList
- func CreateTestSpace(t *testing.T, db *sqlx.DB, ownerID, name string) *model.Space
- func CreateTestTag(t *testing.T, db *sqlx.DB, spaceID, name string, color *string) *model.Tag
- func CreateTestToken(t *testing.T, db *sqlx.DB, userID, tokenType, tokenString string, ...) *model.Token
- func CreateTestTransfer(t *testing.T, db *sqlx.DB, accountID string, amount decimal.Decimal, ...) *model.AccountTransfer
- func CreateTestUser(t *testing.T, db *sqlx.DB, email string, passwordHash *string) *model.User
- func CreateTestUserWithProfile(t *testing.T, db *sqlx.DB, email, name string) (*model.User, *model.Profile)
- func ForEachDB(t *testing.T, fn func(t *testing.T, dbi DBInfo))
- func NewAuthenticatedRequest(t *testing.T, method, target string, user *model.User, profile *model.Profile, ...) *http.Request
- func NewHTMXRequest(req *http.Request) *http.Request
- func TestConfig() *config.Config
- type DBInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AuthenticatedContext ¶
AuthenticatedContext returns a context with user, profile, config, and CSRF token injected.
func CreateTestExpense ¶
func CreateTestExpense(t *testing.T, db *sqlx.DB, spaceID, userID, desc string, amount decimal.Decimal, typ model.ExpenseType) *model.Expense
CreateTestExpense inserts an expense directly into the database.
func CreateTestInvitation ¶
func CreateTestInvitation(t *testing.T, db *sqlx.DB, spaceID, inviterID, email string) *model.SpaceInvitation
CreateTestInvitation inserts a space invitation directly into the database.
func CreateTestListItem ¶
CreateTestListItem inserts a list item directly into the database.
func CreateTestMoneyAccount ¶
func CreateTestMoneyAccount(t *testing.T, db *sqlx.DB, spaceID, name, createdBy string) *model.MoneyAccount
CreateTestMoneyAccount inserts a money account directly into the database.
func CreateTestPaymentMethod ¶
func CreateTestPaymentMethod(t *testing.T, db *sqlx.DB, spaceID, name string, typ model.PaymentMethodType, createdBy string) *model.PaymentMethod
CreateTestPaymentMethod inserts a payment method directly into the database.
func CreateTestProfile ¶
CreateTestProfile inserts a profile directly into the database.
func CreateTestShoppingList ¶
CreateTestShoppingList inserts a shopping list directly into the database.
func CreateTestSpace ¶
CreateTestSpace inserts a space and adds the owner as a member.
func CreateTestTag ¶
CreateTestTag inserts a tag directly into the database.
func CreateTestToken ¶
func CreateTestToken(t *testing.T, db *sqlx.DB, userID, tokenType, tokenString string, expiresAt time.Time) *model.Token
CreateTestToken inserts a token directly into the database.
func CreateTestTransfer ¶
func CreateTestTransfer(t *testing.T, db *sqlx.DB, accountID string, amount decimal.Decimal, direction model.TransferDirection, createdBy string) *model.AccountTransfer
CreateTestTransfer inserts an account transfer directly into the database.
func CreateTestUser ¶
CreateTestUser inserts a user directly into the database.
func CreateTestUserWithProfile ¶
func CreateTestUserWithProfile(t *testing.T, db *sqlx.DB, email, name string) (*model.User, *model.Profile)
CreateTestUserWithProfile creates both a user and a profile.
func ForEachDB ¶
ForEachDB runs the given test function against both SQLite and PostgreSQL. PostgreSQL tests are skipped when BUDGIT_TEST_POSTGRES_URL is unset.
func NewAuthenticatedRequest ¶
func NewAuthenticatedRequest(t *testing.T, method, target string, user *model.User, profile *model.Profile, formValues url.Values) *http.Request
NewAuthenticatedRequest creates an HTTP request with auth context and optional form values. CSRF token is automatically added to form values for POST requests.
func NewHTMXRequest ¶
NewHTMXRequest adds HX-Request header to a request.
func TestConfig ¶
TestConfig returns a minimal config for tests. No env vars needed.