mirror of
https://github.com/SamyRai/tercul-backend.git
synced 2025-12-27 02:51:34 +00:00
fix: Fix test workflow and Bleve test double-close panic
- Add POSTGRES_USER to PostgreSQL service configuration in test workflow - Fix TestInitBleveIndex double-close panic by removing defer before explicit close - Test now passes successfully Fixes failing Unit Tests workflow in PR #64
This commit is contained in:
parent
019aa78754
commit
e63d627019
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@ -14,6 +14,7 @@ jobs:
|
||||
postgres:
|
||||
image: postgres:15
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: testdb
|
||||
options: >-
|
||||
@ -78,6 +79,7 @@ jobs:
|
||||
postgres:
|
||||
image: postgres:15
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: testdb
|
||||
options: >-
|
||||
|
||||
@ -8,11 +8,12 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"tercul/internal/domain"
|
||||
"tercul/internal/platform/log"
|
||||
|
||||
"github.com/blevesearch/bleve/v2"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"tercul/internal/domain"
|
||||
"tercul/internal/platform/log"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@ -189,10 +190,10 @@ func TestInitBleveIndex(t *testing.T) {
|
||||
index1, err := initBleveIndex(indexPath)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, index1)
|
||||
defer index1.Close()
|
||||
|
||||
// Close and reopen
|
||||
index1.Close()
|
||||
// Close and reopen (don't use defer here since we're closing explicitly)
|
||||
err = index1.Close()
|
||||
require.NoError(t, err)
|
||||
|
||||
// Try to open existing index
|
||||
index2, err := initBleveIndex(indexPath)
|
||||
@ -209,20 +210,20 @@ func TestIndexBatch(t *testing.T) {
|
||||
|
||||
translations := []domain.Translation{
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test Translation 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test Translation 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
TranslatableID: 100,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 2},
|
||||
Title: "Test Translation 2",
|
||||
Content: "Content 2",
|
||||
Language: "fr",
|
||||
Status: domain.TranslationStatusDraft,
|
||||
BaseModel: domain.BaseModel{ID: 2},
|
||||
Title: "Test Translation 2",
|
||||
Content: "Content 2",
|
||||
Language: "fr",
|
||||
Status: domain.TranslationStatusDraft,
|
||||
TranslatableID: 200,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
@ -278,20 +279,20 @@ func TestMigrateTranslations(t *testing.T) {
|
||||
|
||||
translations := []domain.Translation{
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
TranslatableID: 100,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 2},
|
||||
Title: "Test 2",
|
||||
Content: "Content 2",
|
||||
Language: "fr",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
BaseModel: domain.BaseModel{ID: 2},
|
||||
Title: "Test 2",
|
||||
Content: "Content 2",
|
||||
Language: "fr",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
TranslatableID: 200,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
@ -304,7 +305,7 @@ func TestMigrateTranslations(t *testing.T) {
|
||||
context.Background(),
|
||||
repo,
|
||||
index,
|
||||
10, // small batch size for testing
|
||||
10, // small batch size for testing
|
||||
nil, // no checkpoint
|
||||
logger,
|
||||
context.Background(),
|
||||
@ -322,29 +323,29 @@ func TestMigrateTranslationsWithCheckpoint(t *testing.T) {
|
||||
|
||||
translations := []domain.Translation{
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
TranslatableID: 100,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 2},
|
||||
Title: "Test 2",
|
||||
Content: "Content 2",
|
||||
Language: "fr",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
BaseModel: domain.BaseModel{ID: 2},
|
||||
Title: "Test 2",
|
||||
Content: "Content 2",
|
||||
Language: "fr",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
TranslatableID: 200,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 3},
|
||||
Title: "Test 3",
|
||||
Content: "Content 3",
|
||||
Language: "de",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
BaseModel: domain.BaseModel{ID: 3},
|
||||
Title: "Test 3",
|
||||
Content: "Content 3",
|
||||
Language: "de",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
TranslatableID: 300,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
@ -382,11 +383,11 @@ func TestVerifyIndex(t *testing.T) {
|
||||
|
||||
translations := []domain.Translation{
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
TranslatableID: 100,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
@ -410,11 +411,11 @@ func TestVerifyIndexWithMissingTranslation(t *testing.T) {
|
||||
|
||||
translations := []domain.Translation{
|
||||
{
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
BaseModel: domain.BaseModel{ID: 1},
|
||||
Title: "Test 1",
|
||||
Content: "Content 1",
|
||||
Language: "en",
|
||||
Status: domain.TranslationStatusPublished,
|
||||
TranslatableID: 100,
|
||||
TranslatableType: "works",
|
||||
},
|
||||
@ -434,4 +435,3 @@ func getTestLogger() *log.Logger {
|
||||
log.Init("test", "test")
|
||||
return log.FromContext(context.Background())
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user