code.vegaprotocol.io/vega@v0.79.0/wallet/tests/sc_import_network_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 "os" 20 "path/filepath" 21 "testing" 22 23 vgrand "code.vegaprotocol.io/vega/libs/rand" 24 25 "github.com/stretchr/testify/require" 26 ) 27 28 func TestImportNetwork(t *testing.T) { 29 // given 30 home := t.TempDir() 31 networkFile1 := NewFile(t, home, "my-network-1.toml", FakeNetwork("my-network-1")) 32 33 // when 34 importNetworkResp1, err := NetworkImport(t, []string{ 35 "--home", home, 36 "--output", "json", 37 "--from-file", networkFile1, 38 }) 39 40 // then 41 require.NoError(t, err) 42 AssertImportNetwork(t, importNetworkResp1). 43 WithName("my-network-1"). 44 LocatedUnder(home) 45 46 // when 47 listNetsResp1, err := NetworkList(t, []string{ 48 "--home", home, 49 "--output", "json", 50 }) 51 52 // then 53 require.NoError(t, err) 54 AssertListNetwork(t, listNetsResp1). 55 WithNetworks("my-network-1") 56 57 // given 58 networkFile2 := NewFile(t, home, "my-network-2.toml", FakeNetwork("my-network-2")) 59 60 // when 61 importNetworkResp2, err := NetworkImport(t, []string{ 62 "--home", home, 63 "--output", "json", 64 "--from-file", networkFile2, 65 }) 66 67 // then 68 require.NoError(t, err) 69 AssertImportNetwork(t, importNetworkResp2). 70 WithName("my-network-2"). 71 LocatedUnder(home) 72 73 // when 74 listNetsResp2, err := NetworkList(t, []string{ 75 "--home", home, 76 "--output", "json", 77 }) 78 79 // then 80 require.NoError(t, err) 81 AssertListNetwork(t, listNetsResp2). 82 WithNetworks("my-network-1", "my-network-2") 83 } 84 85 func TestForceImportNetwork(t *testing.T) { 86 // given 87 home := t.TempDir() 88 networkFile := NewFile(t, home, "my-network.toml", FakeNetwork("my-network")) 89 90 // when 91 importNetworkResp1, err := NetworkImport(t, []string{ 92 "--home", home, 93 "--output", "json", 94 "--from-file", networkFile, 95 }) 96 97 // then 98 require.NoError(t, err) 99 AssertImportNetwork(t, importNetworkResp1). 100 WithName("my-network"). 101 LocatedUnder(home) 102 103 // when 104 importNetworkResp2, err := NetworkImport(t, []string{ 105 "--home", home, 106 "--output", "json", 107 "--from-file", networkFile, 108 }) 109 110 // then 111 require.Error(t, err) 112 require.Nil(t, importNetworkResp2) 113 114 // when 115 importNetworkResp3, err := NetworkImport(t, []string{ 116 "--home", home, 117 "--output", "json", 118 "--from-file", networkFile, 119 "--force", 120 }) 121 122 // then 123 require.NoError(t, err) 124 AssertImportNetwork(t, importNetworkResp3). 125 WithName("my-network"). 126 LocatedUnder(home) 127 128 // when 129 listNetsResp, err := NetworkList(t, []string{ 130 "--home", home, 131 "--output", "json", 132 }) 133 134 // then 135 require.NoError(t, err) 136 AssertListNetwork(t, listNetsResp). 137 WithNetworks("my-network") 138 } 139 140 func TestImportNetworkWithNewName(t *testing.T) { 141 // given 142 home := t.TempDir() 143 networkFile := NewFile(t, home, "my-network.toml", FakeNetwork("my-network")) 144 145 // when 146 importNetworkResp1, err := NetworkImport(t, []string{ 147 "--home", home, 148 "--output", "json", 149 "--from-file", networkFile, 150 }) 151 152 // then 153 require.NoError(t, err) 154 AssertImportNetwork(t, importNetworkResp1). 155 WithName("my-network"). 156 LocatedUnder(home) 157 158 // when 159 listNetsResp1, err := NetworkList(t, []string{ 160 "--home", home, 161 "--output", "json", 162 }) 163 164 // then 165 require.NoError(t, err) 166 AssertListNetwork(t, listNetsResp1). 167 WithNetworks("my-network") 168 169 // given 170 networkName := vgrand.RandomStr(5) 171 172 // when 173 importNetworkResp2, err := NetworkImport(t, []string{ 174 "--home", home, 175 "--output", "json", 176 "--from-file", networkFile, 177 "--with-name", networkName, 178 }) 179 180 // then 181 require.NoError(t, err) 182 AssertImportNetwork(t, importNetworkResp2). 183 WithName(networkName). 184 LocatedUnder(home) 185 186 // when 187 listNetsResp2, err := NetworkList(t, []string{ 188 "--home", home, 189 "--output", "json", 190 }) 191 192 // then 193 require.NoError(t, err) 194 AssertListNetwork(t, listNetsResp2). 195 WithNetworks("my-network", networkName) 196 } 197 198 func TestRenameANetworkFileRenamesNetwork(t *testing.T) { 199 // given 200 home := t.TempDir() 201 networkFile := NewFile(t, home, "my-network.toml", FakeNetwork("my-network")) 202 203 // when 204 importNetworkResp, err := NetworkImport(t, []string{ 205 "--home", home, 206 "--output", "json", 207 "--from-file", networkFile, 208 }) 209 210 // then 211 require.NoError(t, err) 212 AssertImportNetwork(t, importNetworkResp). 213 WithName("my-network"). 214 LocatedUnder(home) 215 216 // when 217 newNetworkName := "renamed-network" 218 require.NoError(t, 219 os.Rename( 220 importNetworkResp.FilePath, 221 filepath.Join(filepath.Dir(importNetworkResp.FilePath), newNetworkName+".toml"), 222 ), 223 ) 224 225 // when 226 listNetsResp, err := NetworkList(t, []string{ 227 "--home", home, 228 "--output", "json", 229 }) 230 231 // then 232 require.NoError(t, err) 233 AssertListNetwork(t, listNetsResp). 234 WithNetworks(newNetworkName) 235 }