code.vegaprotocol.io/vega@v0.79.0/wallet/tests/sc_update_passphrase_test.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package tests_test 17 18 import ( 19 "testing" 20 21 vgrand "code.vegaprotocol.io/vega/libs/rand" 22 23 "github.com/stretchr/testify/assert" 24 "github.com/stretchr/testify/require" 25 ) 26 27 func TestUpdatePassphrase(t *testing.T) { 28 // given 29 home := t.TempDir() 30 _, passphraseFilePath := NewPassphraseFile(t, home) 31 walletName := vgrand.RandomStr(5) 32 33 // when 34 createWalletResp, err := WalletCreate(t, []string{ 35 "--home", home, 36 "--output", "json", 37 "--wallet", walletName, 38 "--passphrase-file", passphraseFilePath, 39 }) 40 41 // then 42 require.NoError(t, err) 43 AssertCreateWallet(t, createWalletResp). 44 WithName(walletName). 45 LocatedUnder(home) 46 47 // when 48 listKeysResp, err := KeyList(t, []string{ 49 "--home", home, 50 "--output", "json", 51 "--wallet", walletName, 52 "--passphrase-file", passphraseFilePath, 53 }) 54 55 // 56 require.NoError(t, err) 57 require.NotNil(t, listKeysResp) 58 require.Len(t, listKeysResp.Keys, 1) 59 assert.Equal(t, listKeysResp.Keys[0].PublicKey, createWalletResp.Key.PublicKey) 60 61 // given 62 _, newPassphraseFilePath := NewPassphraseFile(t, home) 63 64 // when 65 err = PassphraseUpdate(t, []string{ 66 "--home", home, 67 "--output", "json", 68 "--wallet", walletName, 69 "--passphrase-file", passphraseFilePath, 70 "--new-passphrase-file", newPassphraseFilePath, 71 }) 72 73 // then 74 require.NoError(t, err) 75 76 // when unlocking wallet with previous passphrase 77 listKeysResp, err = KeyList(t, []string{ 78 "--home", home, 79 "--output", "json", 80 "--wallet", walletName, 81 "--passphrase-file", passphraseFilePath, 82 }) 83 84 // then 85 require.Error(t, err) 86 require.Nil(t, listKeysResp) 87 88 // when unlocking wallet with new passphrase 89 listKeysResp, err = KeyList(t, []string{ 90 "--home", home, 91 "--output", "json", 92 "--wallet", walletName, 93 "--passphrase-file", newPassphraseFilePath, 94 }) 95 96 // 97 require.NoError(t, err) 98 require.NotNil(t, listKeysResp) 99 require.Len(t, listKeysResp.Keys, 1) 100 assert.Equal(t, listKeysResp.Keys[0].PublicKey, createWalletResp.Key.PublicKey) 101 }