Skip to content

Commit 58a84d9

Browse files
authored
fix: relax assets regex (#1059)
* test: added regression tests. (You never know) * feat: relaxed pattern
1 parent edbf9a4 commit 58a84d9

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

pkg/assets/asset.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"regexp"
55
)
66

7-
const Pattern = `[A-Z][A-Z0-9]{0,16}(\/\d{1,6})?`
7+
const Pattern = `[A-Z][A-Z0-9]{0,16}(_[A-Z]{1,16})?(\/\d{1,6})?`
88

99
var Regexp = regexp.MustCompile("^" + Pattern + "$")
1010

pkg/assets/asset_test.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package assets_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/formancehq/ledger/pkg/assets"
7+
"github.com/stretchr/testify/require"
8+
)
9+
10+
func TestValidAssets(t *testing.T) {
11+
require.True(t, assets.IsValid("A"))
12+
require.True(t, assets.IsValid("USD"))
13+
require.True(t, assets.IsValid("USD123"))
14+
require.True(t, assets.IsValid("USD/2"))
15+
require.True(t, assets.IsValid("USD/1234"))
16+
require.True(t, assets.IsValid("EUR/00"))
17+
18+
require.True(t, assets.IsValid("EUR_COL"))
19+
require.True(t, assets.IsValid("EUR_COL/12"))
20+
}
21+
22+
func TestInvalidAsset(t *testing.T) {
23+
require.False(t, assets.IsValid(""))
24+
require.False(t, assets.IsValid("1"))
25+
require.False(t, assets.IsValid("!"))
26+
require.False(t, assets.IsValid("@s"))
27+
require.False(t, assets.IsValid("/2"))
28+
require.False(t, assets.IsValid("USD/"))
29+
require.False(t, assets.IsValid("A//2"))
30+
require.False(t, assets.IsValid("a"))
31+
32+
require.False(t, assets.IsValid("EUR_"))
33+
require.False(t, assets.IsValid("_"))
34+
require.False(t, assets.IsValid("_C"))
35+
require.False(t, assets.IsValid("A_/2"))
36+
}

0 commit comments

Comments
 (0)