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  }