Skip to content

Commit 5b5afe9

Browse files
committed
ci: keep sqlc refactor checks green
1 parent d3062d3 commit 5b5afe9

6 files changed

Lines changed: 30 additions & 11 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,15 @@ jobs:
7272
- name: Test with coverage
7373
run: go test -count=1 ./... -coverprofile=coverage.out
7474

75+
- name: Exclude generated code from coverage
76+
run: grep -v '^github.com/openclaw/discrawl/internal/store/storedb/' coverage.out > coverage.filtered.out
77+
7578
- name: Test with race detector
7679
run: go test -count=1 -race ./...
7780

7881
- name: Enforce coverage floor
7982
run: |
80-
total="$(go tool cover -func=coverage.out | awk '/^total:/ { sub(/%$/, "", $3); print $3 }')"
83+
total="$(go tool cover -func=coverage.filtered.out | awk '/^total:/ { sub(/%$/, "", $3); print $3 }')"
8184
awk -v total="$total" 'BEGIN {
8285
if (total == "") {
8386
print "missing coverage total"

internal/store/attachments_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ func TestAttachmentMediaUpdatesAndFilters(t *testing.T) {
5656
FetchStatus: "fetched",
5757
}))
5858
require.NoError(t, s.UpdateAttachmentFetchStatus(ctx, "a2", "2026-05-15T12:06:00Z", "failed", "boom"))
59+
require.NoError(t, seedAttachmentForGuild(ctx, s, "g1", "c1", "m1", "a1"))
5960

6061
rows, err := s.ListAttachments(ctx, AttachmentListOptions{MissingOnly: true})
6162
require.NoError(t, err)

internal/store/query.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type SemanticSearchOptions struct {
4545
func (s *Store) GetSyncState(ctx context.Context, scope string) (string, error) {
4646
cursor, err := s.q.GetSyncState(ctx, scope)
4747
if err != nil {
48-
if err == sql.ErrNoRows {
48+
if errors.Is(err, sql.ErrNoRows) {
4949
return "", nil
5050
}
5151
return "", err
@@ -670,18 +670,18 @@ func (s *Store) Status(ctx context.Context, dbPath, defaultGuildID string) (Stat
670670
status.ThreadCount = int(threadCount)
671671

672672
lastSync, err := s.q.GetSyncUpdatedAt(ctx, "sync:last_success")
673-
if err != nil && err != sql.ErrNoRows {
673+
if err != nil && !errors.Is(err, sql.ErrNoRows) {
674674
return Status{}, err
675675
}
676676
status.LastSyncAt = parseTime(lastSync)
677677
lastTail, err := s.q.GetSyncUpdatedAt(ctx, "tail:last_event")
678-
if err != nil && err != sql.ErrNoRows {
678+
if err != nil && !errors.Is(err, sql.ErrNoRows) {
679679
return Status{}, err
680680
}
681681
status.LastTailEventAt = parseTime(lastTail)
682682
if defaultGuildID != "" {
683683
name, err := s.q.GetGuildName(ctx, defaultGuildID)
684-
if err != nil && err != sql.ErrNoRows {
684+
if err != nil && !errors.Is(err, sql.ErrNoRows) {
685685
return Status{}, err
686686
}
687687
status.DefaultGuildName = name

internal/store/sqlc_schema_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestSQLCSchemaMirrorsRuntimeTables(t *testing.T) {
2525

2626
body, err := os.ReadFile(filepath.Join("sqlc", "schema.sql"))
2727
require.NoError(t, err)
28-
for _, stmt := range strings.Split(string(body), ";") {
28+
for stmt := range strings.SplitSeq(string(body), ";") {
2929
stmt = strings.TrimSpace(stmt)
3030
if stmt == "" || strings.HasPrefix(stmt, "--") {
3131
continue
@@ -46,14 +46,14 @@ func TestSQLCSchemaMirrorsRuntimeTables(t *testing.T) {
4646
"embedding_jobs",
4747
"message_embeddings",
4848
} {
49-
require.Equal(t, tableColumns(t, runtimeStore.DB(), table), tableColumns(t, schemaDB, table), table)
49+
require.Equal(t, tableColumns(ctx, t, runtimeStore.DB(), table), tableColumns(ctx, t, schemaDB, table), table)
5050
}
5151
}
5252

53-
func tableColumns(t *testing.T, db *sql.DB, table string) []string {
53+
func tableColumns(ctx context.Context, t *testing.T, db *sql.DB, table string) []string {
5454
t.Helper()
5555

56-
rows, err := db.Query(`pragma table_info(` + table + `)`)
56+
rows, err := db.QueryContext(ctx, `pragma table_info(`+table+`)`)
5757
require.NoError(t, err)
5858
defer func() { _ = rows.Close() }()
5959

internal/store/store_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,20 @@ func TestStoreMaintenanceHelpers(t *testing.T) {
153153
require.NoError(t, err)
154154
require.Equal(t, os.FileMode(0o600), info.Mode().Perm())
155155
require.NoError(t, s.RebuildSearchIndexes(ctx))
156+
messageVersion, err := s.GetSyncState(ctx, "schema:message_fts_rowid_version")
157+
require.NoError(t, err)
158+
require.Equal(t, messageFTSVersion, messageVersion)
159+
memberVersion, err := s.GetSyncState(ctx, "schema:member_fts_rowid_version")
160+
require.NoError(t, err)
161+
require.Equal(t, memberFTSVersion, memberVersion)
162+
require.NoError(t, s.RebuildMessageSearchIndex(ctx))
163+
messageVersion, err = s.GetSyncState(ctx, "schema:message_fts_rowid_version")
164+
require.NoError(t, err)
165+
require.Equal(t, messageFTSVersion, messageVersion)
166+
require.NoError(t, s.RebuildMemberSearchIndex(ctx))
167+
memberVersion, err = s.GetSyncState(ctx, "schema:member_fts_rowid_version")
168+
require.NoError(t, err)
169+
require.Equal(t, memberFTSVersion, memberVersion)
156170
version, err := s.schemaVersion(ctx)
157171
require.NoError(t, err)
158172
require.Equal(t, storeSchemaVersion, version)

internal/store/write.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"database/sql"
66
"encoding/json"
7+
"errors"
78
"time"
89

910
"github.com/openclaw/discrawl/internal/store/storedb"
@@ -295,7 +296,7 @@ func upsertMessageTx(ctx context.Context, tx *sql.Tx, qtx *storedb.Queries, mess
295296
if opts.EnqueueEmbedding {
296297
normalized, err := qtx.GetMessageNormalizedContent(ctx, message.ID)
297298
previousErr = err
298-
if previousErr != nil && previousErr != sql.ErrNoRows {
299+
if previousErr != nil && !errors.Is(previousErr, sql.ErrNoRows) {
299300
return previousErr
300301
}
301302
if previousErr == nil {
@@ -321,7 +322,7 @@ func upsertMessageTx(ctx context.Context, tx *sql.Tx, qtx *storedb.Queries, mess
321322
return err
322323
}
323324
}
324-
queueEmbedding := opts.EnqueueEmbedding && (previousErr == sql.ErrNoRows || previousNormalized.String != message.NormalizedContent || !jobExists)
325+
queueEmbedding := opts.EnqueueEmbedding && (errors.Is(previousErr, sql.ErrNoRows) || previousNormalized.String != message.NormalizedContent || !jobExists)
325326
if queueEmbedding {
326327
if err := qtx.UpsertEmbeddingJobPending(ctx, storedb.UpsertEmbeddingJobPendingParams{MessageID: message.ID, UpdatedAt: now}); err != nil {
327328
return err

0 commit comments

Comments
 (0)