mirror of
https://github.com/SamyRai/tercul-backend.git
synced 2025-12-27 05:11: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:
|
postgres:
|
||||||
image: postgres:15
|
image: postgres:15
|
||||||
env:
|
env:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
POSTGRES_PASSWORD: postgres
|
POSTGRES_PASSWORD: postgres
|
||||||
POSTGRES_DB: testdb
|
POSTGRES_DB: testdb
|
||||||
options: >-
|
options: >-
|
||||||
@ -78,6 +79,7 @@ jobs:
|
|||||||
postgres:
|
postgres:
|
||||||
image: postgres:15
|
image: postgres:15
|
||||||
env:
|
env:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
POSTGRES_PASSWORD: postgres
|
POSTGRES_PASSWORD: postgres
|
||||||
POSTGRES_DB: testdb
|
POSTGRES_DB: testdb
|
||||||
options: >-
|
options: >-
|
||||||
|
|||||||
@ -8,11 +8,12 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"tercul/internal/domain"
|
||||||
|
"tercul/internal/platform/log"
|
||||||
|
|
||||||
"github.com/blevesearch/bleve/v2"
|
"github.com/blevesearch/bleve/v2"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"tercul/internal/domain"
|
|
||||||
"tercul/internal/platform/log"
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -189,10 +190,10 @@ func TestInitBleveIndex(t *testing.T) {
|
|||||||
index1, err := initBleveIndex(indexPath)
|
index1, err := initBleveIndex(indexPath)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, index1)
|
require.NotNil(t, index1)
|
||||||
defer index1.Close()
|
|
||||||
|
|
||||||
// Close and reopen
|
// Close and reopen (don't use defer here since we're closing explicitly)
|
||||||
index1.Close()
|
err = index1.Close()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Try to open existing index
|
// Try to open existing index
|
||||||
index2, err := initBleveIndex(indexPath)
|
index2, err := initBleveIndex(indexPath)
|
||||||
@ -209,20 +210,20 @@ func TestIndexBatch(t *testing.T) {
|
|||||||
|
|
||||||
translations := []domain.Translation{
|
translations := []domain.Translation{
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 1},
|
BaseModel: domain.BaseModel{ID: 1},
|
||||||
Title: "Test Translation 1",
|
Title: "Test Translation 1",
|
||||||
Content: "Content 1",
|
Content: "Content 1",
|
||||||
Language: "en",
|
Language: "en",
|
||||||
Status: domain.TranslationStatusPublished,
|
Status: domain.TranslationStatusPublished,
|
||||||
TranslatableID: 100,
|
TranslatableID: 100,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 2},
|
BaseModel: domain.BaseModel{ID: 2},
|
||||||
Title: "Test Translation 2",
|
Title: "Test Translation 2",
|
||||||
Content: "Content 2",
|
Content: "Content 2",
|
||||||
Language: "fr",
|
Language: "fr",
|
||||||
Status: domain.TranslationStatusDraft,
|
Status: domain.TranslationStatusDraft,
|
||||||
TranslatableID: 200,
|
TranslatableID: 200,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
@ -278,20 +279,20 @@ func TestMigrateTranslations(t *testing.T) {
|
|||||||
|
|
||||||
translations := []domain.Translation{
|
translations := []domain.Translation{
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 1},
|
BaseModel: domain.BaseModel{ID: 1},
|
||||||
Title: "Test 1",
|
Title: "Test 1",
|
||||||
Content: "Content 1",
|
Content: "Content 1",
|
||||||
Language: "en",
|
Language: "en",
|
||||||
Status: domain.TranslationStatusPublished,
|
Status: domain.TranslationStatusPublished,
|
||||||
TranslatableID: 100,
|
TranslatableID: 100,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 2},
|
BaseModel: domain.BaseModel{ID: 2},
|
||||||
Title: "Test 2",
|
Title: "Test 2",
|
||||||
Content: "Content 2",
|
Content: "Content 2",
|
||||||
Language: "fr",
|
Language: "fr",
|
||||||
Status: domain.TranslationStatusPublished,
|
Status: domain.TranslationStatusPublished,
|
||||||
TranslatableID: 200,
|
TranslatableID: 200,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
@ -304,7 +305,7 @@ func TestMigrateTranslations(t *testing.T) {
|
|||||||
context.Background(),
|
context.Background(),
|
||||||
repo,
|
repo,
|
||||||
index,
|
index,
|
||||||
10, // small batch size for testing
|
10, // small batch size for testing
|
||||||
nil, // no checkpoint
|
nil, // no checkpoint
|
||||||
logger,
|
logger,
|
||||||
context.Background(),
|
context.Background(),
|
||||||
@ -322,29 +323,29 @@ func TestMigrateTranslationsWithCheckpoint(t *testing.T) {
|
|||||||
|
|
||||||
translations := []domain.Translation{
|
translations := []domain.Translation{
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 1},
|
BaseModel: domain.BaseModel{ID: 1},
|
||||||
Title: "Test 1",
|
Title: "Test 1",
|
||||||
Content: "Content 1",
|
Content: "Content 1",
|
||||||
Language: "en",
|
Language: "en",
|
||||||
Status: domain.TranslationStatusPublished,
|
Status: domain.TranslationStatusPublished,
|
||||||
TranslatableID: 100,
|
TranslatableID: 100,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 2},
|
BaseModel: domain.BaseModel{ID: 2},
|
||||||
Title: "Test 2",
|
Title: "Test 2",
|
||||||
Content: "Content 2",
|
Content: "Content 2",
|
||||||
Language: "fr",
|
Language: "fr",
|
||||||
Status: domain.TranslationStatusPublished,
|
Status: domain.TranslationStatusPublished,
|
||||||
TranslatableID: 200,
|
TranslatableID: 200,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 3},
|
BaseModel: domain.BaseModel{ID: 3},
|
||||||
Title: "Test 3",
|
Title: "Test 3",
|
||||||
Content: "Content 3",
|
Content: "Content 3",
|
||||||
Language: "de",
|
Language: "de",
|
||||||
Status: domain.TranslationStatusPublished,
|
Status: domain.TranslationStatusPublished,
|
||||||
TranslatableID: 300,
|
TranslatableID: 300,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
@ -382,11 +383,11 @@ func TestVerifyIndex(t *testing.T) {
|
|||||||
|
|
||||||
translations := []domain.Translation{
|
translations := []domain.Translation{
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 1},
|
BaseModel: domain.BaseModel{ID: 1},
|
||||||
Title: "Test 1",
|
Title: "Test 1",
|
||||||
Content: "Content 1",
|
Content: "Content 1",
|
||||||
Language: "en",
|
Language: "en",
|
||||||
Status: domain.TranslationStatusPublished,
|
Status: domain.TranslationStatusPublished,
|
||||||
TranslatableID: 100,
|
TranslatableID: 100,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
@ -410,11 +411,11 @@ func TestVerifyIndexWithMissingTranslation(t *testing.T) {
|
|||||||
|
|
||||||
translations := []domain.Translation{
|
translations := []domain.Translation{
|
||||||
{
|
{
|
||||||
BaseModel: domain.BaseModel{ID: 1},
|
BaseModel: domain.BaseModel{ID: 1},
|
||||||
Title: "Test 1",
|
Title: "Test 1",
|
||||||
Content: "Content 1",
|
Content: "Content 1",
|
||||||
Language: "en",
|
Language: "en",
|
||||||
Status: domain.TranslationStatusPublished,
|
Status: domain.TranslationStatusPublished,
|
||||||
TranslatableID: 100,
|
TranslatableID: 100,
|
||||||
TranslatableType: "works",
|
TranslatableType: "works",
|
||||||
},
|
},
|
||||||
@ -434,4 +435,3 @@ func getTestLogger() *log.Logger {
|
|||||||
log.Init("test", "test")
|
log.Init("test", "test")
|
||||||
return log.FromContext(context.Background())
|
return log.FromContext(context.Background())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user