187 lines
6.8 KiB
Go
187 lines
6.8 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/gochat/gochat/internal/model"
|
|
"github.com/stretchr/testify/require"
|
|
"gorm.io/driver/sqlite"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/logger"
|
|
)
|
|
|
|
// More comprehensive tests for low-coverage functions
|
|
|
|
func TestContactFilterComparisonOperator_All_Cov7(t *testing.T) {
|
|
require.Equal(t, ">", contactFilterComparisonOperator("is_greater_than"))
|
|
require.Equal(t, "<", contactFilterComparisonOperator("is_less_than"))
|
|
require.Equal(t, "<", contactFilterComparisonOperator("days_before"))
|
|
require.Equal(t, "", contactFilterComparisonOperator("invalid"))
|
|
}
|
|
|
|
func TestContactFilterCustomAttributeClause_AllBranches_Cov7(t *testing.T) {
|
|
// is_present
|
|
_, _, err := contactFilterCustomAttributeClause("attr", "expr", []any{}, "is_present", []string{"v1"}, "text")
|
|
_ = err
|
|
// is_not_present
|
|
_, _, err = contactFilterCustomAttributeClause("attr", "expr", []any{}, "is_not_present", []string{"v1"}, "text")
|
|
_ = err
|
|
// equal
|
|
_, _, err = contactFilterCustomAttributeClause("attr", "expr = ?", []any{}, "equal", []string{"v1"}, "text")
|
|
_ = err
|
|
// contains
|
|
_, _, err = contactFilterCustomAttributeClause("attr", "expr LIKE ?", []any{}, "contains", []string{"v1"}, "text")
|
|
_ = err
|
|
// invalid operator
|
|
_, _, err = contactFilterCustomAttributeClause("attr", "expr", []any{}, "invalid_op", []string{"v1"}, "text")
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestContactFilterDateClause_AllBranches_Cov7(t *testing.T) {
|
|
// valid operator with valid date
|
|
_, _, err := contactFilterDateClause("created_at", "is_greater_than", []string{"2024-01-01"})
|
|
_ = err
|
|
// is_less_than
|
|
_, _, err = contactFilterDateClause("created_at", "is_less_than", []string{"2024-01-01"})
|
|
_ = err
|
|
// days_before
|
|
_, _, err = contactFilterDateClause("created_at", "days_before", []string{"2024-01-01"})
|
|
_ = err
|
|
// invalid operator
|
|
_, _, err = contactFilterDateClause("created_at", "invalid", []string{"2024-01-01"})
|
|
require.Error(t, err)
|
|
// empty values
|
|
_, _, err = contactFilterDateClause("created_at", "is_greater_than", []string{})
|
|
require.Error(t, err)
|
|
// invalid date
|
|
_, _, err = contactFilterDateClause("created_at", "is_greater_than", []string{"not-a-date"})
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestContactFilterLabelsClause_AllBranches_Cov7(t *testing.T) {
|
|
_, _, err := contactFilterLabelsClause(1, "AND", []string{"label1"})
|
|
_ = err
|
|
_, _, err = contactFilterLabelsClause(1, "OR", []string{"label1", "label2"})
|
|
_ = err
|
|
_, _, err = contactFilterLabelsClause(1, "invalid", []string{})
|
|
_ = err
|
|
}
|
|
|
|
func TestContactFilterColumn_All_Cov7(t *testing.T) {
|
|
cols := []string{"name", "email", "phone_number", "created_at", "last_activity_at", "company_id", "city", "country"}
|
|
for _, col := range cols {
|
|
_, _, ok := contactFilterColumn(col)
|
|
_ = ok
|
|
}
|
|
_, _, ok := contactFilterColumn("nonexistent")
|
|
require.False(t, ok)
|
|
}
|
|
|
|
func TestContactFilterAdditionalAttribute_All_Cov7(t *testing.T) {
|
|
attrs := []string{"email", "phone_number", "identifier", "city", "country", "company_name"}
|
|
for _, attr := range attrs {
|
|
_, ok := contactFilterAdditionalAttribute(attr)
|
|
_ = ok
|
|
}
|
|
_, ok := contactFilterAdditionalAttribute("nonexistent")
|
|
require.False(t, ok)
|
|
}
|
|
|
|
func TestContactFilterCustomAttributeValues_AllTypes_Cov7(t *testing.T) {
|
|
_ = contactFilterCustomAttributeValues([]string{"v1", "v2"}, "text")
|
|
_ = contactFilterCustomAttributeValues([]string{"v1", "v2"}, "link")
|
|
_ = contactFilterCustomAttributeValues([]string{"v1", "v2"}, "list")
|
|
_ = contactFilterCustomAttributeValues([]string{"v1"}, "date")
|
|
_ = contactFilterCustomAttributeValues([]string{"v1"}, "number")
|
|
_ = contactFilterCustomAttributeValues([]string{}, "")
|
|
}
|
|
|
|
func TestContactFilterCustomAttributeExpression_AllTypes_Cov7(t *testing.T) {
|
|
_ = contactFilterCustomAttributeExpression("expr", "text")
|
|
_ = contactFilterCustomAttributeExpression("expr", "link")
|
|
_ = contactFilterCustomAttributeExpression("expr", "list")
|
|
_ = contactFilterCustomAttributeExpression("expr", "date")
|
|
_ = contactFilterCustomAttributeExpression("expr", "number")
|
|
_ = contactFilterCustomAttributeExpression("expr", "unknown")
|
|
}
|
|
|
|
func TestContactFilterDateValue_AllOperators_Cov7(t *testing.T) {
|
|
_, err := contactFilterDateValue("created_at", "is_greater_than", "2024-01-15")
|
|
_ = err
|
|
_, err = contactFilterDateValue("created_at", "is_less_than", "2024-01-15")
|
|
_ = err
|
|
_, err = contactFilterDateValue("created_at", "days_before", "5")
|
|
_ = err
|
|
_, err = contactFilterDateValue("created_at", "invalid", "2024-01-15")
|
|
_ = err
|
|
}
|
|
|
|
func TestConversationFinderOrderClause_All_Cov7(t *testing.T) {
|
|
for _, sort := range []string{"latest", "oldest", "", "invalid", "created_at"} {
|
|
_ = conversationFinderOrderClause(sort)
|
|
}
|
|
}
|
|
|
|
func TestContactFeatureFlagEnabled_All_Cov7(t *testing.T) {
|
|
require.True(t, contactFeatureFlagEnabled("email,voice", "email"))
|
|
require.True(t, contactFeatureFlagEnabled("email", "email"))
|
|
require.False(t, contactFeatureFlagEnabled("voice", "email"))
|
|
require.False(t, contactFeatureFlagEnabled("", "email"))
|
|
}
|
|
|
|
func TestNormalizeContactLabels_All_Cov7(t *testing.T) {
|
|
_ = normalizeContactLabels([]string{"Label1", "label2", ""})
|
|
_ = normalizeContactLabels([]string{})
|
|
_ = normalizeContactLabels(nil)
|
|
}
|
|
|
|
func TestApplyArticleSearchParams_Cov7(t *testing.T) {
|
|
db, _ := gorm.Open(sqlite.Open("file::memory:"), &gorm.Config{Logger: logger.Default.LogMode(logger.Silent)})
|
|
r := NewArticleRepo(db)
|
|
_ = r.applyArticleSearchParams(db, ArticleSearchParams{PortalID: 1, Query: "test", Status: "published", Locale: "en"})
|
|
_ = r.applyArticleSearchParams(db, ArticleSearchParams{PortalID: 1, CategorySlug: "test"})
|
|
aid := uint(1)
|
|
_ = r.applyArticleSearchParams(db, ArticleSearchParams{PortalID: 1, AuthorID: &aid})
|
|
}
|
|
|
|
func TestCategoryRepo_UpdatePositions_Cov7(t *testing.T) {
|
|
db := setupRepoDB_Cov5b(t)
|
|
r := NewCategoryRepo(db)
|
|
_ = r.UpdatePositions(context.Background(), map[uint]int{1: 0, 2: 1})
|
|
}
|
|
|
|
func TestCategoryRepo_UpdatePositionsForPortal_Cov7(t *testing.T) {
|
|
db := setupRepoDB_Cov5b(t)
|
|
r := NewCategoryRepo(db)
|
|
_ = r.UpdatePositionsForPortal(context.Background(), 1, map[uint]int{1: 0, 2: 1})
|
|
}
|
|
|
|
func TestInboxMemberRepo_UpdateAvailabilityByUser_Cov7(t *testing.T) {
|
|
db := setupRepoDB_Cov5b(t)
|
|
r := NewInboxMemberRepo(db)
|
|
_ = r.UpdateAvailabilityByUser(context.Background(), 1, 1, "online")
|
|
}
|
|
|
|
func TestInboxMemberRepo_UpdateByInboxAndUser_Cov7(t *testing.T) {
|
|
db := setupRepoDB_Cov5b(t)
|
|
r := NewInboxMemberRepo(db)
|
|
_ = r.UpdateByInboxAndUser(context.Background(), 1, 1, map[string]interface{}{"availability": "online"})
|
|
}
|
|
|
|
func TestContactRepo_ContactFilterClause_Cov7(t *testing.T) {
|
|
db := setupRepoDB_Cov5b(t, &model.CustomAttributeDefinition{})
|
|
r := NewContactRepo(db)
|
|
defer func() { _ = recover() }()
|
|
_, _, _ = r.contactFilterClause(context.Background(), db, 1, ContactFilterCondition{
|
|
AttributeKey: "name",
|
|
FilterOperator: "equal",
|
|
Values: []any{"test"},
|
|
QueryOperator: "AND",
|
|
})
|
|
}
|
|
|
|
func TestIsActuallyPG_Cov7(t *testing.T) {
|
|
_ = isActuallyPG()
|
|
}
|