mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
* Move all public connectors to ce/plugins * Update tooling to account for new go modules under ce * Ensure we test all CE plugins in CI * Move Dummypay to ce/plugins for simplicity's sake in the generation scripts * Use versioned pkg/domain in plugins * Ensure that renovate updates all CE plugins in a single PR when pkg/domain tags are pushed to github * Ensure Justfile commands work over all CE plugins * Copy ce plugin go.mods in dev.Dockerfile * Only add a go.mod for new plugins if they are ce * Ensure generated generic client structs are named correctly for submodule * Add coverprofile for each ce plugin * Add set -e for Justfile for loops over plugins * Infer go version from flake.nix in connector template tool
72 lines
2.0 KiB
Go
72 lines
2.0 KiB
Go
package hmac
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGenerateReturnsAnHMACString(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
headers, _ := GenerateHeaders("api_key", "api_secret", "", false)
|
|
expectedSignature := "Signature keyId=\"api_key\",algorithm=\"hmac-sha1\",headers=\"date x-mod-nonce\",signature=\""
|
|
assert.Equal(t, expectedSignature, headers["Authorization"][0:86], "generate should return the hmac headers")
|
|
}
|
|
|
|
func TestGenerateReturnsADateHeader(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
timestamp := time.Date(2020, 1, 2, 15, 4, 5, 0, time.UTC)
|
|
|
|
headers := constructHeadersMap("api_key", "api_secret", "", false, timestamp)
|
|
|
|
expectedDate := "Thu, 02 Jan 2020 15:04:05 UTC"
|
|
|
|
assert.Equal(t, expectedDate, headers["Date"])
|
|
}
|
|
|
|
func TestGenerateReturnsANonceHeaderWithExpectedValue(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
nonce := "thisIsTheNonce"
|
|
headers, _ := GenerateHeaders("api_key", "api_secret", nonce, false)
|
|
assert.Equal(t, nonce, headers["x-mod-nonce"])
|
|
}
|
|
|
|
func TestGenerateReturnsARetryHeaderWithTrueIfRetryIsExpected(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
headers, _ := GenerateHeaders("api_key", "api_secret", "", true)
|
|
assert.Equal(t, "true", headers["x-mod-retry"])
|
|
}
|
|
|
|
func TestGenerateReturnsARetryHeaderWithFalseIfRetryIsNotExpected(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
headers, _ := GenerateHeaders("api_key", "api_secret", "", false)
|
|
assert.Equal(t, "false", headers["x-mod-retry"])
|
|
}
|
|
|
|
func TestGenerateReturnsAGeneratedNonceHeaderIfNonceIsEmpty(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
headers, _ := GenerateHeaders("api_key", "api_secret", "", false)
|
|
assert.True(t, headers["x-mod-nonce"] != "", "x-mod-nonce header should have been populated")
|
|
}
|
|
|
|
func TestGenerateThrowsErrorIfApiKeyIsNull(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
_, err := GenerateHeaders("", "api_secret", "", false)
|
|
assert.ErrorIs(t, err, ErrInvalidCredentials)
|
|
}
|
|
|
|
func TestGenerateThrowsErrorIfApiSecretIsNull(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
_, err := GenerateHeaders("api_key", "", "", false)
|
|
assert.ErrorIs(t, err, ErrInvalidCredentials)
|
|
}
|