Skip to content

Commit 0a29d6e

Browse files
authored
Merge pull request #412 from onflow/tests/state-test
Tests: state loader tests
2 parents f3eb6a1 + 006eb2c commit 0a29d6e

1 file changed

Lines changed: 82 additions & 2 deletions

File tree

pkg/flowkit/state_test.go

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3736
var 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+
560640
func Test_Saving(t *testing.T) {
561641
s := generateSimpleProject()
562642

0 commit comments

Comments
 (0)