mirror of
https://github.com/SamyRai/tercul-backend.git
synced 2025-12-27 02:51:34 +00:00
The integration tests for admin-only mutations were failing due to an authorization issue. The root cause was that the JWT token used in the tests did not reflect the user's admin role, which was being set directly in the database. This commit fixes the issue by: 1. Updating the `CreateAuthenticatedUser` test helper to generate a new JWT token after a user's role is changed. This ensures the token contains the correct, up-to-date role. 2. Removing all uses of `auth.ContextWithAdminUser` from the integration tests, making the JWT token the single source of truth for authorization. This change also removes unused imports and variables that were causing build failures after the refactoring. All integration tests now pass.
86 lines
3.3 KiB
Go
86 lines
3.3 KiB
Go
package graphql_test
|
|
|
|
import (
|
|
"context"
|
|
"tercul/internal/domain"
|
|
|
|
"github.com/stretchr/testify/mock"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// mockLikeRepository is a mock implementation of the LikeRepository interface.
|
|
type mockLikeRepository struct {
|
|
mock.Mock
|
|
}
|
|
|
|
func (m *mockLikeRepository) Create(ctx context.Context, entity *domain.Like) error {
|
|
args := m.Called(ctx, entity)
|
|
return args.Error(0)
|
|
}
|
|
func (m *mockLikeRepository) GetByID(ctx context.Context, id uint) (*domain.Like, error) {
|
|
args := m.Called(ctx, id)
|
|
if args.Get(0) == nil {
|
|
return nil, args.Error(1)
|
|
}
|
|
return args.Get(0).(*domain.Like), args.Error(1)
|
|
}
|
|
func (m *mockLikeRepository) Delete(ctx context.Context, id uint) error {
|
|
args := m.Called(ctx, id)
|
|
return args.Error(0)
|
|
}
|
|
func (m *mockLikeRepository) ListByUserID(ctx context.Context, userID uint) ([]domain.Like, error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) ListByWorkID(ctx context.Context, workID uint) ([]domain.Like, error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) ListByTranslationID(ctx context.Context, translationID uint) ([]domain.Like, error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) ListByCommentID(ctx context.Context, commentID uint) ([]domain.Like, error) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// Implement the rest of the BaseRepository methods as needed, or panic if they are not expected to be called.
|
|
func (m *mockLikeRepository) CreateInTx(ctx context.Context, tx *gorm.DB, entity *domain.Like) error {
|
|
return m.Create(ctx, entity)
|
|
}
|
|
func (m *mockLikeRepository) GetByIDWithOptions(ctx context.Context, id uint, options *domain.QueryOptions) (*domain.Like, error) {
|
|
return m.GetByID(ctx, id)
|
|
}
|
|
func (m *mockLikeRepository) Update(ctx context.Context, entity *domain.Like) error {
|
|
args := m.Called(ctx, entity)
|
|
return args.Error(0)
|
|
}
|
|
func (m *mockLikeRepository) UpdateInTx(ctx context.Context, tx *gorm.DB, entity *domain.Like) error {
|
|
return m.Update(ctx, entity)
|
|
}
|
|
func (m *mockLikeRepository) DeleteInTx(ctx context.Context, tx *gorm.DB, id uint) error {
|
|
return m.Delete(ctx, id)
|
|
}
|
|
func (m *mockLikeRepository) List(ctx context.Context, page, pageSize int) (*domain.PaginatedResult[domain.Like], error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) ListWithOptions(ctx context.Context, options *domain.QueryOptions) ([]domain.Like, error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) ListAll(ctx context.Context) ([]domain.Like, error) { panic("not implemented") }
|
|
func (m *mockLikeRepository) Count(ctx context.Context) (int64, error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) CountWithOptions(ctx context.Context, options *domain.QueryOptions) (int64, error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) FindWithPreload(ctx context.Context, preloads []string, id uint) (*domain.Like, error) {
|
|
return m.GetByID(ctx, id)
|
|
}
|
|
func (m *mockLikeRepository) GetAllForSync(ctx context.Context, batchSize, offset int) ([]domain.Like, error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) Exists(ctx context.Context, id uint) (bool, error) {
|
|
panic("not implemented")
|
|
}
|
|
func (m *mockLikeRepository) BeginTx(ctx context.Context) (*gorm.DB, error) { return nil, nil }
|
|
func (m *mockLikeRepository) WithTx(ctx context.Context, fn func(tx *gorm.DB) error) error {
|
|
return fn(nil)
|
|
} |