mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
* chore: rename RunNextTasks workflow * feat: added a trimmed down type for connector only containing the id * feat: make runNextTask use connectorIdOnly * feat: added isScheduledForDeletion to plugin interface * feat: add scheduledForDeletion at plugin level * feat: refactor manager.Load to take a connector instead of parts of it * feat: saves the connector's scheduledFOrDeletion into the plugin * feat: use plugin.IsScheduledForDeletion instead of loading connector * fix: make e2e tests less flaky * fix: remove config from most request types * feat: (WIP) remove config from runNextTask * fix: remove unneeded method definitions in each plugin * fix: simplify RunNextFlow as anyway we need to change the parameters * fix: add a workflow compatible with previous version for runNextTasks * fix(EN-577): added back RunSendEvents as a deprecated workflow * fix(EN-577): added back RunUpdatePaymentInitiationFromPayment as a deprecated workflow * fix: fix linting directives * fix: replace old usage with refactored one * fix: added back missing deprecated activities * fix: ensure fetch_next_balance works with v3.0 code * fix: simplify a bit the versionning etc * fix: quick refactor before applying solution elsewhere * fix: add back RunSendEvents and RunNextTask child workflows where necessary for backward compatibility * fix: add back missing activity, seems like it's mandatory? * fix: run payment initiation update as child workflow when necessary * fix: missing activy call in test, refine some todos * fix: lint * fix: ensure we always reload plugins into the manager -- so exposing isScheduledForDeletion * fix: ensure we stop storing clear config in temporal * fix: make store config support plain text config * fix: some comments * fix: change runSendEvent workflow to be match what we had in 3.0 * feat: enable worker versionning to avoid workflow from new version to get executed on old code * fix: lint * fix: revert worker versionning * fix: minor code review comments * fix: add context to Encrypt & Decrypt methods * fix: improve lint, add couple tests * fix: use atomic to handle isScheduledForDeletion * fix: make create_events work on migration * fix: avoid returning channel; just send what is needed in runSendEventAsChildWorkflow and runNextTaskAsChildWorkflow * fix: remove extra call to installWorkflow on start plugin * fix: typo in error log line * fix: simplify errChan initialization * fix: clarify feature flag names
60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package storage
|
|
|
|
import (
|
|
"context"
|
|
"encoding/base64"
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestEncryptDecryptRaw(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
st := newStore(t)
|
|
|
|
plain := json.RawMessage(`{"foo":"bar","n":123}`)
|
|
|
|
cipher, err := st.EncryptRaw(context.Background(), plain)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, cipher)
|
|
require.NotEqual(t, string(plain), string(cipher))
|
|
|
|
// Ensure cipher is a JSON string and is valid base64
|
|
var b64 string
|
|
require.NoError(t, json.Unmarshal(cipher, &b64))
|
|
_, err = base64.StdEncoding.DecodeString(b64)
|
|
require.NoError(t, err)
|
|
|
|
back, err := st.DecryptRaw(context.Background(), cipher)
|
|
require.NoError(t, err)
|
|
require.Equal(t, string(plain), string(back))
|
|
}
|
|
|
|
func TestDecryptRaw_NotJSONString(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
st := newStore(t)
|
|
|
|
// Provide a JSON object instead of a JSON string → should be treated as not encrypted
|
|
notString := json.RawMessage(`{"foo":"bar"}`)
|
|
|
|
back, err := st.DecryptRaw(context.Background(), notString)
|
|
require.ErrorIs(t, err, ErrNotEncrypted)
|
|
require.Nil(t, back)
|
|
}
|
|
|
|
func TestDecryptRaw_InvalidBase64String(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
st := newStore(t)
|
|
|
|
// Provide a JSON string that is not valid base64 → should be treated as not encrypted
|
|
invalidB64 := json.RawMessage(`"not_base64_$$$"`)
|
|
|
|
back, err := st.DecryptRaw(context.Background(), invalidB64)
|
|
require.ErrorIs(t, err, ErrNotEncrypted)
|
|
require.Nil(t, back)
|
|
}
|