@@ -23,15 +23,14 @@ import (
2323 "sort"
2424 "testing"
2525
26+ "github.com/onflow/flow-cli/pkg/flowkit/config"
2627 "github.com/onflow/flow-cli/pkg/flowkit/config/json"
2728
2829 "github.com/onflow/flow-go-sdk"
2930 "github.com/onflow/flow-go-sdk/crypto"
3031 "github.com/spf13/afero"
3132 "github.com/stretchr/testify/assert"
3233 "github.com/thoas/go-funk"
33-
34- "github.com/onflow/flow-cli/pkg/flowkit/config"
3534)
3635
3736var af = afero.Afero {Fs : afero .NewMemMapFs ()}
@@ -557,6 +556,87 @@ func Test_ChangingState(t *testing.T) {
557556 assert .Equal (t , (* pkey ).String (), pk .String ())
558557}
559558
559+ func Test_LoadState (t * testing.T ) {
560+ b := []byte (`{
561+ "accounts": {
562+ "emulator-account": {
563+ "address": "f8d6e0586b0a20c7",
564+ "key": "21c5dfdeb0ff03a7a73ef39788563b62c89adea67bbb21ab95e5f710bd1d40b7"
565+ }
566+ }
567+ }` )
568+
569+ af := afero.Afero {Fs : afero .NewMemMapFs ()}
570+ err := afero .WriteFile (af .Fs , "flow.json" , b , 0644 )
571+ assert .NoError (t , err )
572+
573+ paths := []string {"flow.json" }
574+ state , err := Load (paths , af )
575+ assert .NoError (t , err )
576+
577+ acc , err := state .Accounts ().ByName ("emulator-account" )
578+ assert .NoError (t , err )
579+ assert .Equal (t , acc .Name (), "emulator-account" )
580+ }
581+
582+ func Test_LoadStateMultiple (t * testing.T ) {
583+ b := []byte (`{
584+ "accounts": {
585+ "emulator-account": {
586+ "address": "f8d6e0586b0a20c7",
587+ "key": "21c5dfdeb0ff0347a73ef39788563b62c89adea67bbb21ab95e5f710bd1d40b7"
588+ },
589+ "charlie": {
590+ "address": "0xf3fcd2c1a78f5eee",
591+ "key": "9463ceedf08627108ea0b394c96b18446d1370e7332c91ce332aba1594096ba0"
592+ },
593+ "bob": {
594+ "address": "179b6b1cb6755e31",
595+ "key": "748d21a762aa192976f4d264afe26379b8a63f5d1343773f813a37d4262b9f52"
596+ }
597+ }
598+ }` )
599+
600+ a := []byte (`{
601+ "accounts": {
602+ "alice": {
603+ "address": "179b6b1cb6755e31",
604+ "key": "728d21a7622a29d976f4d264afe26379b8a63f5d1343773f813a37d4262b9f52"
605+ },
606+ "charlie": {
607+ "address": "0xe03daebed8ca0615",
608+ "key": "9463ceedf04427208ea0b394c96b18446d1370e7332c91ce332aba1594096ba0"
609+ }
610+ }
611+ }` )
612+
613+ af := afero.Afero {Fs : afero .NewMemMapFs ()}
614+ err := afero .WriteFile (af .Fs , "flow.json" , b , 0644 )
615+ assert .NoError (t , err )
616+ err = afero .WriteFile (af .Fs , "a.json" , a , 0644 )
617+ assert .NoError (t , err )
618+
619+ paths := []string {"flow.json" , "a.json" }
620+ state , err := Load (paths , af )
621+ assert .NoError (t , err )
622+
623+ acc , err := state .Accounts ().ByName ("emulator-account" )
624+ assert .NoError (t , err )
625+ assert .Equal (t , acc .Address ().String (), "f8d6e0586b0a20c7" )
626+
627+ acc , err = state .Accounts ().ByName ("charlie" )
628+ assert .NoError (t , err )
629+ assert .Equal (t , acc .Address ().String (), "e03daebed8ca0615" )
630+
631+ acc , err = state .Accounts ().ByName ("bob" )
632+ assert .NoError (t , err )
633+ assert .Equal (t , acc .Address ().String (), "179b6b1cb6755e31" )
634+
635+ acc , err = state .Accounts ().ByName ("alice" )
636+ assert .NoError (t , err )
637+ assert .Equal (t , acc .Address ().String (), "179b6b1cb6755e31" )
638+ }
639+
560640func Test_Saving (t * testing.T ) {
561641 s := generateSimpleProject ()
562642
0 commit comments