package repository_test import ( "context" "os" "path" "testing" "queryorchestration/internal/database/repository" "queryorchestration/internal/serviceconfig" "queryorchestration/internal/test" "github.com/jackc/pgx/v5/pgtype" "github.com/stretchr/testify/assert" ) func TestTextExtraction(t *testing.T) { if testing.Short() { t.Skip("Skipping long test in short mode") } ctx := context.Background() cfg := &serviceconfig.BaseConfig{} test.SetCfgProvider(t, cfg) cfg.SetBasePath(path.Join(os.Getenv("PWD"), "../../..")) _, textup := test.CreateDB(t, ctx, &test.CreateDatabaseConfig{ Cfg: cfg, RunMigrations: true, }) defer textup() queries := cfg.GetDBQueries() clientId, err := queries.CreateClient(ctx, &repository.CreateClientParams{ Name: "example_client", Externalid: "EXAMPLE", }) assert.NoError(t, err) hash := "example_hash" id, err := queries.CreateDocument(ctx, &repository.CreateDocumentParams{ Clientid: clientId, Hash: hash, }) assert.NoError(t, err) assert.NotEmpty(t, id) bucket := "example_bucket" key := "example_key" cleanid, err := queries.AddDocumentClean(ctx, &repository.AddDocumentCleanParams{ Documentid: id, Bucket: &bucket, Key: &key, Mimetype: repository.NullCleanmimetype{ Valid: true, Cleanmimetype: repository.CleanmimetypeApplicationPdf, }, }) assert.NoError(t, err) err = queries.AddDocumentCleanEntry(ctx, &repository.AddDocumentCleanEntryParams{ Cleanid: cleanid, Version: 1, }) assert.NoError(t, err) isextract, err := queries.IsDocumentTextExtracted(ctx, id) assert.NoError(t, err) assert.False(t, isextract) err = queries.AddDocumentTextEntry(ctx, &repository.AddDocumentTextEntryParams{ Version: 1, Bucket: bucket, Key: key, Cleanentryid: cleanid, }) assert.NoError(t, err) isextract, err = queries.IsDocumentTextExtracted(ctx, id) assert.NoError(t, err) assert.True(t, isextract) text, err := queries.GetTextEntryByDocId(ctx, id) assert.NoError(t, err) assert.Equal(t, id, text.Documentid) assert.Equal(t, bucket, text.Bucket) assert.Equal(t, key, text.Key) assert.Equal(t, int64(1), text.Version) assert.NotEqual(t, pgtype.UUID{}, text.ID) assert.True(t, text.ID.Valid) }