Skip to content

Commit

Permalink
stellar#4222: fixed json string to postgres conversion
Browse files Browse the repository at this point in the history
  • Loading branch information
sreuland committed Feb 28, 2022
1 parent 7e5aba4 commit d027070
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 20 deletions.
5 changes: 3 additions & 2 deletions services/horizon/internal/db2/history/filter_rules.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package history

import (
"context"
"fmt"

sq "github.com/Masterminds/squirrel"
"github.com/stellar/go/support/errors"
Expand Down Expand Up @@ -61,9 +62,9 @@ func (q *Q) DeleteFilterByName(ctx context.Context, name string) error {

func (q *Q) UpsertFilterConfig(ctx context.Context, config FilterConfig) error {
updateCols := map[string]interface{}{
filterRulesLastModifiedColumnName: sq.Expr("extract(epoch from now() at time zone 'utc')"),
filterRulesLastModifiedColumnName: sq.Expr(`extract(epoch from now() at time zone 'utc')`),
filterRulesEnabledColumnName: config.Enabled,
filterRulesColumnName: config.Rules,
filterRulesColumnName: sq.Expr(fmt.Sprintf(`'%v'::json`, config.Rules)),
filterRulesTypeColumnName: config.Name,
}

Expand Down
36 changes: 18 additions & 18 deletions services/horizon/internal/db2/history/filter_rules_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,23 @@ var (
}
)

func TestInsertConfig(t *testing.T) {
func TestInsertFilterConfig(t *testing.T) {
tt := test.Start(t)
defer tt.Finish()
test.ResetHorizonDB(t, tt.HorizonDB)
q := &Q{tt.HorizonSession()}

err := q.UpsertFilterConfig(tt.Ctx, fc1)
assert.NoError(t, err)
fc1, err = q.GetFilterByName(tt.Ctx, "test data")
fc1Result, err := q.GetFilterByName(tt.Ctx, "test data")
assert.NoError(t, err)
tt.Assert.True(fc1.LastModified > 0)
tt.Assert.Equal(fc1.Name, "test data")
tt.Assert.Equal(fc1.Enabled, false)
tt.Assert.Equal(fc1.Rules, "{}")
tt.Assert.True(fc1Result.LastModified > 0)
tt.Assert.Equal(fc1Result.Name, "test data")
tt.Assert.Equal(fc1Result.Enabled, false)
tt.Assert.Equal(fc1Result.Rules, "{}")
}

func TestGetAll(t *testing.T) {
func TestGetAllFilterConfigs(t *testing.T) {
tt := test.Start(t)
defer tt.Finish()
test.ResetHorizonDB(t, tt.HorizonDB)
Expand Down Expand Up @@ -64,26 +64,26 @@ func TestRemoveFilterConfig(t *testing.T) {
assert.Error(t, err)
}

func TestUpdateExisting(t *testing.T) {
func TestUpdateExistingFilterConfig(t *testing.T) {
tt := test.Start(t)
defer tt.Finish()
test.ResetHorizonDB(t, tt.HorizonDB)
q := &Q{tt.HorizonSession()}

err := q.UpsertFilterConfig(tt.Ctx, fc1)
assert.NoError(t, err)
fc1, err = q.GetFilterByName(tt.Ctx, "test data")
fc1Result, err := q.GetFilterByName(tt.Ctx, "test data")
assert.NoError(t, err)
tt.Assert.Equal(fc1.Enabled, false)
tt.Assert.Equal(fc1.Rules, "{}")
tt.Assert.Equal(fc1Result.Enabled, false)
tt.Assert.Equal(fc1Result.Rules, "{}")

fc1.Enabled = true
fc1.Rules = `{"abc": "123"}`
err = q.UpsertFilterConfig(tt.Ctx, fc1)
fc1Result.Enabled = true
fc1Result.Rules = `{"abc": "123"}`
err = q.UpsertFilterConfig(tt.Ctx, fc1Result)
assert.NoError(t, err)
fc1, err = q.GetFilterByName(tt.Ctx, "test data")
fc1Result, err = q.GetFilterByName(tt.Ctx, "test data")
assert.NoError(t, err)
tt.Assert.Equal(fc1.Name, "test data")
tt.Assert.Equal(fc1.Enabled, true)
tt.Assert.Equal(fc1.Rules, `{"abc": "123"}`)
tt.Assert.Equal(fc1Result.Name, "test data")
tt.Assert.Equal(fc1Result.Enabled, true)
tt.Assert.Equal(fc1Result.Rules, `{"abc": "123"}`)
}

0 comments on commit d027070

Please sign in to comment.