code.vegaprotocol.io/vega@v0.79.0/wallet/tests/sc_api_tokens_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 TestListAPITokens(t *testing.T) { 28 // given 29 home := t.TempDir() 30 _, tokensPassphraseFilePath := NewPassphraseFile(t, home) 31 _, walletPassphraseFilePath := NewPassphraseFile(t, home) 32 walletName := vgrand.RandomStr(5) 33 34 // when 35 err := InitAPIToken(t, []string{ 36 "--home", home, 37 "--passphrase-file", tokensPassphraseFilePath, 38 }) 39 40 // then 41 require.NoError(t, err) 42 43 // when 44 listTokensResp1, err := APITokensList(t, []string{ 45 "--home", home, 46 "--passphrase-file", tokensPassphraseFilePath, 47 "--output", "json", 48 }) 49 50 // then 51 require.NoError(t, err) 52 require.NotNil(t, listTokensResp1) 53 require.Len(t, listTokensResp1.Tokens, 0) 54 55 // when 56 createWalletResp, err := WalletCreate(t, []string{ 57 "--home", home, 58 "--output", "json", 59 "--wallet", walletName, 60 "--passphrase-file", walletPassphraseFilePath, 61 "--output", "json", 62 }) 63 64 // then 65 require.NoError(t, err) 66 AssertCreateWallet(t, createWalletResp). 67 WithName(walletName). 68 LocatedUnder(home) 69 70 // when 71 generateAPITokenResp1, err := APITokenGenerate(t, []string{ 72 "--home", home, 73 "--output", "json", 74 "--wallet-name", walletName, 75 "--wallet-passphrase-file", walletPassphraseFilePath, 76 "--tokens-passphrase-file", tokensPassphraseFilePath, 77 "--output", "json", 78 }) 79 80 // then 81 require.NoError(t, err) 82 AssertGenerateAPIToken(t, generateAPITokenResp1) 83 84 // when 85 generateAPITokenResp2, err := APITokenGenerate(t, []string{ 86 "--home", home, 87 "--output", "json", 88 "--wallet-name", walletName, 89 "--wallet-passphrase-file", walletPassphraseFilePath, 90 "--tokens-passphrase-file", tokensPassphraseFilePath, 91 "--output", "json", 92 }) 93 94 // then 95 require.NoError(t, err) 96 AssertGenerateAPIToken(t, generateAPITokenResp2) 97 98 // when 99 listTokensResp2, err := APITokensList(t, []string{ 100 "--home", home, 101 "--passphrase-file", tokensPassphraseFilePath, 102 "--output", "json", 103 }) 104 105 // then 106 require.NoError(t, err) 107 require.NotNil(t, listTokensResp2) 108 require.Len(t, listTokensResp2.Tokens, 2) 109 assert.Equal(t, generateAPITokenResp1.Token, listTokensResp2.Tokens[0].Token) 110 assert.Equal(t, generateAPITokenResp2.Token, listTokensResp2.Tokens[1].Token) 111 112 // when 113 err = APITokenDelete(t, []string{ 114 "--home", home, 115 "--token", generateAPITokenResp1.Token, 116 "--passphrase-file", tokensPassphraseFilePath, 117 "--output", "json", 118 "--force", 119 }) 120 121 // then 122 require.NoError(t, err) 123 124 // when 125 listTokensResp3, err := APITokensList(t, []string{ 126 "--home", home, 127 "--passphrase-file", tokensPassphraseFilePath, 128 "--output", "json", 129 }) 130 131 // then 132 require.NoError(t, err) 133 require.NotNil(t, listTokensResp3) 134 require.Len(t, listTokensResp3.Tokens, 1) 135 assert.Equal(t, generateAPITokenResp2.Token, listTokensResp3.Tokens[0].Token) 136 }