github.com/status-im/status-go@v1.1.0/multiaccounts/accounts/account_test.go (about) 1 package accounts 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/status-im/status-go/multiaccounts/common" 10 ) 11 12 func TestIsOwnAccount(t *testing.T) { 13 account := Account{Wallet: true, Type: AccountTypeGenerated} 14 require.True(t, account.IsWalletNonWatchOnlyAccount()) 15 16 account = Account{ 17 Type: AccountTypeGenerated, 18 } 19 require.True(t, account.IsWalletNonWatchOnlyAccount()) 20 21 account = Account{ 22 Type: AccountTypeKey, 23 } 24 require.True(t, account.IsWalletNonWatchOnlyAccount()) 25 26 account = Account{ 27 Type: AccountTypeSeed, 28 } 29 require.True(t, account.IsWalletNonWatchOnlyAccount()) 30 31 account = Account{ 32 Type: AccountTypeWatch, 33 } 34 require.False(t, account.IsWalletNonWatchOnlyAccount()) 35 36 account = Account{} 37 require.False(t, account.IsWalletNonWatchOnlyAccount()) 38 } 39 40 func TestUnmarshal(t *testing.T) { 41 data := ` 42 { 43 "key-uid": "0xbc14c321b74652e57c7f26eb30d597ea27cbdf36cba5c85d24f12748153a035e", 44 "public-key": "0x0465f6d4f1172524fc057954c8a3f8e34f991558b3d1097189975062f67adda7835da61acb5cda3348b41d211ed0cb07aba668eb12e19e29d98745bebf68d93b61", 45 "address": "0xf09c9f5Fb9faa22d0C6C593e7157Ceac8B2b0fe4", 46 "colorId": "primary", 47 "wallet": true, 48 "chat": true, 49 "path": "m/44'/60'/0'/0/0", 50 "name": "Status account", 51 "type": "generated", 52 "emoji": "some-emoji", 53 "hidden": true, 54 "clock": 1234, 55 "removed": true, 56 "operable": "fully" 57 } 58 ` 59 var account Account 60 err := json.Unmarshal([]byte(data), &account) 61 require.NoError(t, err) 62 63 require.Equal(t, "0xbc14c321b74652e57c7f26eb30d597ea27cbdf36cba5c85d24f12748153a035e", account.KeyUID) 64 require.Equal(t, []byte("0x0465f6d4f1172524fc057954c8a3f8e34f991558b3d1097189975062f67adda7835da61acb5cda3348b41d211ed0cb07aba668eb12e19e29d98745bebf68d93b61"), account.PublicKey.Bytes()) 65 require.Equal(t, "0xf09c9f5Fb9faa22d0C6C593e7157Ceac8B2b0fe4", account.Address.String()) 66 require.Equal(t, common.CustomizationColorPrimary, account.ColorID) 67 require.Equal(t, true, account.Wallet) 68 require.Equal(t, true, account.Chat) 69 require.Equal(t, "m/44'/60'/0'/0/0", account.Path) 70 require.Equal(t, "Status account", account.Name) 71 require.Equal(t, "generated", account.Type.String()) 72 require.Equal(t, "some-emoji", account.Emoji) 73 require.Equal(t, true, account.Hidden) 74 require.Equal(t, uint64(1234), account.Clock) 75 require.Equal(t, true, account.Removed) 76 require.Equal(t, "fully", account.Operable.String()) 77 }